Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
5 function run_test()
6 {
7 // We're testing migration to this version from one version below
8 var targetVersion = 9;
10 // First import the downloads.sqlite file
11 importDatabaseFile("v" + (targetVersion - 1) + ".sqlite");
13 // Init the download manager which will try migrating to the new version
14 var dm = Cc["@mozilla.org/download-manager;1"].
15 getService(Ci.nsIDownloadManager);
16 var dbConn = dm.DBConnection;
18 // Check schema version
19 do_check_true(dbConn.schemaVersion >= targetVersion);
21 // Make sure all the columns are there
22 var stmt = dbConn.createStatement(
23 "SELECT name, source, target, tempPath, startTime, endTime, state, " +
24 "referrer, entityID, currBytes, maxBytes, mimeType, " +
25 "preferredApplication, preferredAction, autoResume, guid " +
26 "FROM moz_downloads " +
27 "WHERE id = 28");
28 stmt.executeStep();
30 // This data is based on the original values in the table
31 var data = [
32 "firefox-3.0a9pre.en-US.linux-i686.tar.bz2",
33 "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0a9pre.en-US.linux-i686.tar.bz2",
34 "file:///Users/Ed/Desktop/firefox-3.0a9pre.en-US.linux-i686.tar.bz2",
35 "/Users/Ed/Desktop/+EZWafFQ.bz2.part",
36 1192469856209164,
37 1192469877017396,
38 Ci.nsIDownloadManager.DOWNLOAD_FINISHED,
39 "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/",
40 "%2210e66c1-8a2d6b-9b33f380%22/9055595/Mon, 15 Oct 2007 11:45:34 GMT",
41 1210772,
42 9055595,
43 "application/x-bzip2",
44 "AAAAAAGqAAIAAQxNYWNpbnRvc2ggSEQAAAAAAAAAAAAAAAAAAAC+91IESCsAAAAHc5UUU3R1ZmZJdCBFeHBhbmRlci5hcHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdzmb3SGI8AAAAAAAAAAP////8AAAkgAAAAAAAAAAAAAAAAAAAAFFN0dWZmSXQgU3RhbmRhcmQgOS4wABAACAAAvveYVAAAABEACAAAvdJs7wAAAAEACAAHc5UAAAAWAAIAQ01hY2ludG9zaCBIRDpBcHBsaWNhdGlvbnM6U3R1ZmZJdCBTdGFuZGFyZCA5LjA6U3R1ZmZJdCBFeHBhbmRlci5hcHAAAA4AKgAUAFMAdAB1AGYAZgBJAHQAIABFAHgAcABhAG4AZABlAHIALgBhAHAAcAAPABoADABNAGEAYwBpAG4AdABvAHMAaAAgAEgARAASADZBcHBsaWNhdGlvbnMvU3R1ZmZJdCBTdGFuZGFyZCA5LjAvU3R1ZmZJdCBFeHBhbmRlci5hcHAAEwABLwD//wAA",
45 2,
46 0,
47 // For the new columns added, check that default values are sensible
48 'ignored-value'
49 ];
51 // Make sure the values are correct after the migration
52 var i = 0;
53 do_check_eq(data[i], stmt.getString(i++));
54 do_check_eq(data[i], stmt.getUTF8String(i++));
55 do_check_eq(data[i], stmt.getUTF8String(i++));
56 do_check_eq(data[i], stmt.getString(i++));
57 do_check_eq(data[i], stmt.getInt64(i++));
58 do_check_eq(data[i], stmt.getInt64(i++));
59 do_check_eq(data[i], stmt.getInt32(i++));
60 do_check_eq(data[i], stmt.getUTF8String(i++));
61 do_check_eq(data[i], stmt.getUTF8String(i++));
62 do_check_eq(data[i], stmt.getInt64(i++));
63 do_check_eq(data[i], stmt.getInt64(i++));
64 do_check_eq(data[i], stmt.getUTF8String(i++));
65 do_check_eq(data[i], stmt.getUTF8String(i++));
66 do_check_eq(data[i], stmt.getInt32(i++));
67 do_check_eq(data[i], stmt.getInt32(i++));
68 do_check_true(/^[a-zA-Z0-9\-_]{12}$/.test(stmt.getString(i++)));
70 stmt.reset();
71 stmt.finalize();
73 cleanup();
74 }