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

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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 }

mercurial