toolkit/components/downloads/test/schema_migration/test_migration_to_8.js

Fri, 16 Jan 2015 18:13:44 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 18:13:44 +0100
branch
TOR_BUG_9701
changeset 14
925c144e1f1f
permissions
-rw-r--r--

Integrate suggestion from review to improve consistency with existing code.

     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
     3  * file, 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 = 8;
    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 " +
    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     // For the new columns added, check for null or default values
    47     0,
    48   ];
    50   // Make sure the values are correct after the migration
    51   var i = 0;
    52   do_check_eq(data[i], stmt.getString(i++));
    53   do_check_eq(data[i], stmt.getUTF8String(i++));
    54   do_check_eq(data[i], stmt.getUTF8String(i++));
    55   do_check_eq(data[i], stmt.getString(i++));
    56   do_check_eq(data[i], stmt.getInt64(i++));
    57   do_check_eq(data[i], stmt.getInt64(i++));
    58   do_check_eq(data[i], stmt.getInt32(i++));
    59   do_check_eq(data[i], stmt.getUTF8String(i++));
    60   do_check_eq(data[i], stmt.getUTF8String(i++));
    61   do_check_eq(data[i], stmt.getInt64(i++));
    62   do_check_eq(data[i], stmt.getInt64(i++));
    63   do_check_eq(data[i], stmt.getUTF8String(i++));
    64   do_check_eq(data[i], stmt.getUTF8String(i++));
    65   do_check_eq(data[i], stmt.getInt32(i++));
    66   do_check_eq(data[i], stmt.getInt32(i++));
    68   stmt.reset();
    69   stmt.finalize();
    71   cleanup();
    72 }

mercurial