dom/indexedDB/test/unit/test_remove_objectStore.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     1 /**
     2  * Any copyright is dedicated to the Public Domain.
     3  * http://creativecommons.org/publicdomain/zero/1.0/
     4  */
     6 var testGenerator = testSteps();
     8 function testSteps()
     9 {
    10   const name = this.window ? window.location.pathname : "Splendid Test";
    11   const objectStoreName = "Objects";
    13   let request = indexedDB.open(name, 1);
    14   request.onerror = errorHandler;
    15   request.onupgradeneeded = grabEventAndContinueHandler;
    16   let event = yield undefined;
    18   let db = event.target.result;
    19   is(db.objectStoreNames.length, 0, "Correct objectStoreNames list");
    21   let objectStore = db.createObjectStore(objectStoreName,
    22                                          { keyPath: "foo" });
    24   let addedCount = 0;
    26   for (let i = 0; i < 100; i++) {
    27     request = objectStore.add({foo: i});
    28     request.onerror = errorHandler;
    29     request.onsuccess = function(event) {
    30       if (++addedCount == 100) {
    31         executeSoon(function() { testGenerator.next(); });
    32       }
    33     }
    34   }
    35   yield undefined;
    37   is(db.objectStoreNames.length, 1, "Correct objectStoreNames list");
    38   is(db.objectStoreNames.item(0), objectStoreName, "Correct name");
    40   db.close();
    42   let request = indexedDB.open(name, 2);
    43   request.onerror = errorHandler;
    44   request.onupgradeneeded = grabEventAndContinueHandler;
    45   let event = yield undefined;
    47   let db = event.target.result;
    48   let trans = event.target.transaction;
    50   let oldObjectStore = trans.objectStore(objectStoreName);
    51   isnot(oldObjectStore, null, "Correct object store prior to deleting");
    52   db.deleteObjectStore(objectStoreName);
    53   is(db.objectStoreNames.length, 0, "Correct objectStores list");
    54   try {
    55     trans.objectStore(objectStoreName);
    56     ok(false, "should have thrown");
    57   }
    58   catch(ex) {
    59     ok(ex instanceof DOMException, "Got a DOMException");
    60     is(ex.name, "NotFoundError", "expect a NotFoundError");
    61     is(ex.code, DOMException.NOT_FOUND_ERR, "expect a NOT_FOUND_ERR");
    62   }
    64   objectStore = db.createObjectStore(objectStoreName, { keyPath: "foo" });
    65   is(db.objectStoreNames.length, 1, "Correct objectStoreNames list");
    66   is(db.objectStoreNames.item(0), objectStoreName, "Correct name");
    67   is(trans.objectStore(objectStoreName), objectStore, "Correct new objectStore");
    68   isnot(oldObjectStore, objectStore, "Old objectStore is not new objectStore");
    70   request = objectStore.openCursor();
    71   request.onerror = errorHandler;
    72   request.onsuccess = function(event) {
    73     is(event.target.result, undefined, "ObjectStore shouldn't have any items");
    74     testGenerator.send(event);
    75   }
    76   event = yield undefined;
    78   db.deleteObjectStore(objectStore.name);
    79   is(db.objectStoreNames.length, 0, "Correct objectStores list");
    81   continueToNextStep();
    82   yield undefined;
    84   db.close();
    86   let request = indexedDB.open(name, 3);
    87   request.onerror = errorHandler;
    88   request.onupgradeneeded = grabEventAndContinueHandler;
    89   let event = yield undefined;
    91   let db = event.target.result;
    93   objectStore = db.createObjectStore(objectStoreName, { keyPath: "foo" });
    95   request = objectStore.add({foo:"bar"});
    96   request.onerror = errorHandler;
    97   request.onsuccess = grabEventAndContinueHandler;
    99   db.deleteObjectStore(objectStoreName);
   101   event = yield undefined;
   103   finishTest();
   104   yield undefined;
   105 }

mercurial