1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/dom/indexedDB/test/unit/test_odd_result_order.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,76 @@ 1.4 +/** 1.5 + * Any copyright is dedicated to the Public Domain. 1.6 + * http://creativecommons.org/publicdomain/zero/1.0/ 1.7 + */ 1.8 + 1.9 +var testGenerator = testSteps(); 1.10 + 1.11 +function testSteps() 1.12 +{ 1.13 + const data = { key: 5, index: 10 }; 1.14 + 1.15 + let request = indexedDB.open(this.window ? window.location.pathname : "Splendid Test", 1); 1.16 + request.onerror = errorHandler; 1.17 + request.onupgradeneeded = grabEventAndContinueHandler; 1.18 + let event = yield undefined; 1.19 + 1.20 + let db = event.target.result; 1.21 + 1.22 + ok(db instanceof IDBDatabase, "Got a real database"); 1.23 + 1.24 + db.onerror = errorHandler; 1.25 + 1.26 + let objectStore = db.createObjectStore("foo", { keyPath: "key", 1.27 + autoIncrement: true }); 1.28 + let index = objectStore.createIndex("foo", "index"); 1.29 + 1.30 + event.target.onsuccess = continueToNextStep; 1.31 + yield undefined; 1.32 + 1.33 + objectStore = db.transaction("foo", "readwrite") 1.34 + .objectStore("foo"); 1.35 + request = objectStore.add(data); 1.36 + request.onsuccess = grabEventAndContinueHandler; 1.37 + event = yield undefined; 1.38 + 1.39 + let key; 1.40 + executeSoon(function() { 1.41 + key = request.result; 1.42 + continueToNextStep(); 1.43 + }); 1.44 + yield undefined; 1.45 + 1.46 + is(key, data.key, "Got the right key"); 1.47 + 1.48 + objectStore = db.transaction("foo").objectStore("foo"); 1.49 + objectStore.get(data.key).onsuccess = grabEventAndContinueHandler; 1.50 + event = yield undefined; 1.51 + 1.52 + let obj; 1.53 + executeSoon(function() { 1.54 + obj = event.target.result; 1.55 + continueToNextStep(); 1.56 + }); 1.57 + yield undefined; 1.58 + 1.59 + is(obj.key, data.key, "Got the right key"); 1.60 + is(obj.index, data.index, "Got the right property value"); 1.61 + 1.62 + objectStore = db.transaction("foo", "readwrite") 1.63 + .objectStore("foo"); 1.64 + request = objectStore.delete(data.key); 1.65 + request.onsuccess = grabEventAndContinueHandler; 1.66 + event = yield undefined; 1.67 + 1.68 + key = undefined; 1.69 + executeSoon(function() { 1.70 + key = request.result; 1.71 + continueToNextStep(); 1.72 + }, 0); 1.73 + yield undefined; 1.74 + 1.75 + ok(key === undefined, "Got the right value"); 1.76 + 1.77 + finishTest(); 1.78 + yield undefined; 1.79 +}