dom/indexedDB/test/unit/test_overlapping_transactions.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     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 objectStores = [ "foo", "bar" ];
    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   event.target.onsuccess = grabEventAndContinueHandler;
    22   for (let i in objectStores) {
    23     db.createObjectStore(objectStores[i], { autoIncrement: true });
    24   }
    25   let event = yield undefined;
    27   is(db.objectStoreNames.length, objectStores.length,
    28      "Correct objectStoreNames list");
    30   for (let i = 0; i < 50; i++) {
    31     let stepNumber = 0;
    33     request = db.transaction(["foo"], "readwrite")
    34                 .objectStore("foo")
    35                 .add({});
    36     request.onerror = errorHandler;
    37     request.onsuccess = function(event) {
    38       is(stepNumber, 1, "This callback came first");
    39       stepNumber++;
    40       event.target.transaction.oncomplete = grabEventAndContinueHandler;
    41     }
    43     request = db.transaction(["foo"], "readwrite")
    44                 .objectStore("foo")
    45                 .add({});
    46     request.onerror = errorHandler;
    47     request.onsuccess = function(event) {
    48       is(stepNumber, 2, "This callback came second");
    49       stepNumber++;
    50       event.target.transaction.oncomplete = grabEventAndContinueHandler;      
    51     }
    53     request = db.transaction(["foo", "bar"], "readwrite")
    54                 .objectStore("bar")
    55                 .add({});
    56     request.onerror = errorHandler;
    57     request.onsuccess = function(event) {
    58       is(stepNumber, 3, "This callback came third");
    59       stepNumber++;
    60       event.target.transaction.oncomplete = grabEventAndContinueHandler;      
    61     }
    63     request = db.transaction(["foo", "bar"], "readwrite")
    64                 .objectStore("bar")
    65                 .add({});
    66     request.onerror = errorHandler;
    67     request.onsuccess = function(event) {
    68       is(stepNumber, 4, "This callback came fourth");
    69       stepNumber++;
    70       event.target.transaction.oncomplete = grabEventAndContinueHandler;
    71     }
    73     request = db.transaction(["bar"], "readwrite")
    74                 .objectStore("bar")
    75                 .add({});
    76     request.onerror = errorHandler;
    77     request.onsuccess = function(event) {
    78       is(stepNumber, 5, "This callback came fifth");
    79       stepNumber++;
    80       event.target.transaction.oncomplete = grabEventAndContinueHandler;
    81     }
    83     stepNumber++;
    84     yield undefined; yield undefined; yield undefined; yield undefined; yield undefined;
    86     is(stepNumber, 6, "All callbacks received");
    87   }
    89   finishTest();
    90   yield undefined;
    91 }

mercurial