test_traffic_jam.js (2998B)
1 /** 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/publicdomain/zero/1.0/ 4 */ 5 6 /* exported testGenerator */ 7 var testGenerator = testSteps(); 8 9 function* testSteps() { 10 const name = this.window ? window.location.pathname : "Splendid Test"; 11 12 let requests = []; 13 function doOpen( 14 version, 15 errorCallback, 16 upgradeNeededCallback, 17 successCallback 18 ) { 19 let request = indexedDB.open(name, version); 20 request.onerror = errorCallback; 21 request.onupgradeneeded = upgradeNeededCallback; 22 request.onsuccess = successCallback; 23 requests.push(request); 24 } 25 26 doOpen( 27 1, 28 errorHandler, 29 grabEventAndContinueHandler, 30 grabEventAndContinueHandler 31 ); 32 doOpen(2, errorHandler, unexpectedSuccessHandler, unexpectedSuccessHandler); 33 34 let event = yield undefined; 35 is(event.type, "upgradeneeded", "expect an upgradeneeded event"); 36 is(event.target, requests[0], "fired at the right request"); 37 38 let db = event.target.result; 39 db.createObjectStore("foo"); 40 41 doOpen(3, errorHandler, unexpectedSuccessHandler, unexpectedSuccessHandler); 42 doOpen(2, errorHandler, unexpectedSuccessHandler, unexpectedSuccessHandler); 43 doOpen(3, errorHandler, unexpectedSuccessHandler, unexpectedSuccessHandler); 44 45 event.target.transaction.oncomplete = grabEventAndContinueHandler; 46 47 event = yield undefined; 48 is(event.type, "complete", "expect a complete event"); 49 is( 50 event.target, 51 requests[0].transaction, 52 "expect it to be fired at the transaction" 53 ); 54 55 event = yield undefined; 56 is(event.type, "success", "expect a success event"); 57 is(event.target, requests[0], "fired at the right request"); 58 event.target.result.close(); 59 60 requests[1].onupgradeneeded = grabEventAndContinueHandler; 61 62 event = yield undefined; 63 is(event.type, "upgradeneeded", "expect an upgradeneeded event"); 64 is(event.target, requests[1], "fired at the right request"); 65 66 requests[1].onsuccess = grabEventAndContinueHandler; 67 68 event = yield undefined; 69 is(event.type, "success", "expect a success event"); 70 is(event.target, requests[1], "fired at the right request"); 71 event.target.result.close(); 72 73 requests[2].onupgradeneeded = grabEventAndContinueHandler; 74 75 event = yield undefined; 76 is(event.type, "upgradeneeded", "expect an upgradeneeded event"); 77 is(event.target, requests[2], "fired at the right request"); 78 79 requests[2].onsuccess = grabEventAndContinueHandler; 80 81 event = yield undefined; 82 is(event.type, "success", "expect a success event"); 83 is(event.target, requests[2], "fired at the right request"); 84 event.target.result.close(); 85 86 requests[3].onerror = null; 87 requests[3].addEventListener("error", new ExpectError("VersionError", true)); 88 89 event = yield undefined; 90 91 requests[4].onsuccess = grabEventAndContinueHandler; 92 93 event = yield undefined; 94 is(event.type, "success", "expect a success event"); 95 is(event.target, requests[4], "fired at the right request"); 96 event.target.result.close(); 97 98 finishTest(); 99 }