dom/indexedDB/test/unit/test_index_empty_keyPath.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     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";
    12   const objectStoreData = [
    13     { key: "1", value: "foo" },
    14     { key: "2", value: "bar" },
    15     { key: "3", value: "baz" }
    16   ];
    18   let request = indexedDB.open(name, 1);
    19   request.onerror = errorHandler;
    20   request.onupgradeneeded = grabEventAndContinueHandler;
    21   request.onsuccess = grabEventAndContinueHandler;
    22   let event = yield undefined; // upgradeneeded
    24   let db = event.target.result;
    26   let objectStore = db.createObjectStore("data", { keyPath: null });
    28   // First, add all our data to the object store.
    29   let addedData = 0;
    30   for (let i in objectStoreData) {
    31     request = objectStore.add(objectStoreData[i].value,
    32                               objectStoreData[i].key);
    33     request.onerror = errorHandler;
    34     request.onsuccess = function(event) {
    35       if (++addedData == objectStoreData.length) {
    36         testGenerator.send(event);
    37       }
    38     }
    39   }
    40   event = yield undefined; // testGenerator.send
    42   // Now create the index.
    43   objectStore.createIndex("set", "", { unique: true });
    44   yield undefined; // success
    46   let trans = db.transaction("data", "readwrite");
    47   objectStore = trans.objectStore("data");
    48   index = objectStore.index("set");
    50   let request = index.get("bar");
    51   request.onerror = errorHandler;
    52   request.onsuccess = grabEventAndContinueHandler;
    54   let event = yield undefined;
    56   is(event.target.result, "bar", "Got correct result");
    58   let request = objectStore.add("foopy", 4);
    59   request.onerror = errorHandler;
    60   request.onsuccess = grabEventAndContinueHandler;
    62   yield undefined;
    64   let request = index.get("foopy");
    65   request.onerror = errorHandler;
    66   request.onsuccess = grabEventAndContinueHandler;
    68   let event = yield undefined;
    70   is(event.target.result, "foopy", "Got correct result");
    72   let request = objectStore.add("foopy", 5);
    73   request.addEventListener("error", new ExpectError("ConstraintError", true));
    74   request.onsuccess = unexpectedSuccessHandler;
    76   trans.oncomplete = grabEventAndContinueHandler;
    78   yield undefined;
    79   yield undefined;
    81   finishTest();
    82   yield undefined;
    83 }

mercurial