dom/indexedDB/test/unit/test_objectStore_remove_values.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   var data = [
    13     { name: "inline key; key generator",
    14       autoIncrement: true,
    15       storedObject: {name: "Lincoln"},
    16       keyName: "id",
    17       keyValue: undefined,
    18     },
    19     { name: "inline key; no key generator",
    20       autoIncrement: false,
    21       storedObject: {id: 1, name: "Lincoln"},
    22       keyName: "id",
    23       keyValue: undefined,
    24     },
    25     { name: "out of line key; key generator",
    26       autoIncrement: true,
    27       storedObject: {name: "Lincoln"},
    28       keyName: undefined,
    29       keyValue: undefined,
    30     },
    31     { name: "out of line key; no key generator",
    32       autoIncrement: false,
    33       storedObject: {name: "Lincoln"},
    34       keyName: null,
    35       keyValue: 1,
    36     }
    37   ];
    39   for (let i = 0; i < data.length; i++) {
    40     let test = data[i];
    42     let request = indexedDB.open(name, i+1);
    43     request.onerror = errorHandler;
    44     request.onupgradeneeded = grabEventAndContinueHandler;
    45     let event = yield undefined;
    47     let db = event.target.result;
    49     let objectStore = db.createObjectStore(test.name,
    50                                            { keyPath: test.keyName,
    51                                              autoIncrement: test.autoIncrement });
    53     request = objectStore.add(test.storedObject, test.keyValue);
    54     request.onerror = errorHandler;
    55     request.onsuccess = grabEventAndContinueHandler;
    56     event = yield undefined;
    58     let id = event.target.result;
    59     request = objectStore.get(id);
    60     request.onerror = errorHandler;
    61     request.onsuccess = grabEventAndContinueHandler;
    62     event = yield undefined;
    64     // Sanity check!
    65     is(test.storedObject.name, event.target.result.name,
    66                   "The correct object was stored.");
    68     request = objectStore.delete(id);
    69     request.onerror = errorHandler;
    70     request.onsuccess = grabEventAndContinueHandler;
    71     event = yield undefined;
    73     // Make sure it was removed.
    74     request = objectStore.get(id);
    75     request.onerror = errorHandler;
    76     request.onsuccess = grabEventAndContinueHandler;
    77     event = yield undefined;
    79     ok(event.target.result === undefined, "Object was deleted");
    80     db.close();
    81   }
    83   finishTest();
    84   yield undefined;
    85 }

mercurial