Index: chrome/test/data/indexeddb/bug_90635.js |
diff --git a/chrome/test/data/indexeddb/bug_90635.js b/chrome/test/data/indexeddb/bug_90635.js |
index dd2329987f1672024b7a58147a0b1737684a9a4e..e52254d70a83ce3773fb84bddb5726c7a48d5c86 100644 |
--- a/chrome/test/data/indexeddb/bug_90635.js |
+++ b/chrome/test/data/indexeddb/bug_90635.js |
@@ -5,46 +5,75 @@ |
window.indexedDB = window.indexedDB || window.webkitIndexedDB; |
window.IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction; |
-window.testResult = ''; |
+function unexpectedErrorCallback() |
+{ |
+ document.title = 'fail - unexpected error callback'; |
+} |
+function unexpectedAbortCallback() |
+{ |
+ document.title = 'fail - unexpected abort callback'; |
+} |
function test() |
{ |
- var req = window.indexedDB.open('bug90635'); |
- req.onerror = function(e) { |
- window.testResult = 'fail'; |
- }; |
- req.onsuccess = function(e) { |
- var db = e.target.result; |
- var VERSION = '1'; |
- if (db.version !== VERSION) { |
- var ver = db.setVersion(VERSION); |
- ver.onerror = function(e) { |
- window.testResult = 'fail'; |
- }; |
- ver.onsuccess = function(e) { |
+ if (document.location.hash === '#part1') { |
+ testPart1(); |
+ } else if (document.location.hash === '#part2') { |
+ testPart2(); |
+ } else { |
+ document.title = 'fail - no hash'; |
+ } |
+} |
+ |
+function testPart1() |
+{ |
+ var delreq = window.indexedDB.deleteDatabase('bug90635'); |
+ delreq.onerror = unexpectedErrorCallback; |
+ delreq.onsuccess = function() { |
+ var openreq = window.indexedDB.open('bug90635'); |
+ openreq.onerror = unexpectedErrorCallback; |
+ openreq.onsuccess = function(e) { |
+ var db = openreq.result; |
+ var setverreq = db.setVersion('1'); |
+ setverreq.onerror = unexpectedErrorCallback; |
+ setverreq.onsuccess = function(e) { |
+ var transaction = setverreq.result; |
+ |
db.createObjectStore('store1'); |
db.createObjectStore('store2', {keyPath: ''}); |
db.createObjectStore('store3', {keyPath: 'some_path'}); |
- test_store(db, 'first run'); |
+ |
+ transaction.onabort = unexpectedAbortCallback; |
+ transaction.oncomplete = function() { |
+ test_store(db, 'first run'); |
+ }; |
}; |
- } else { |
- test_store(db, 'second run'); |
- } |
+ }; |
}; |
+} |
+ |
+function testPart2() |
+{ |
+ var openreq = window.indexedDB.open('bug90635'); |
+ openreq.onerror = unexpectedErrorCallback; |
+ openreq.onsuccess = function(e) { |
+ var db = openreq.result; |
+ test_store(db, 'second run'); |
+ }; |
+} |
+ |
+function test_store(db, msg) { |
+ var transaction = db.transaction(['store1', 'store2', 'store3'], |
+ IDBTransaction.READ_ONLY); |
+ var store1 = transaction.objectStore('store1'); |
+ var store2 = transaction.objectStore('store2'); |
+ var store3 = transaction.objectStore('store3'); |
- function test_store(db, msg) { |
- var transaction = db.transaction(['store1', 'store2', 'store3'], |
- IDBTransaction.READ_ONLY); |
- var store1 = transaction.objectStore('store1'); |
- var store2 = transaction.objectStore('store2'); |
- var store3 = transaction.objectStore('store3'); |
- |
- if (store1.keyPath !== null || |
- store2.keyPath !== '' || |
- store3.keyPath !== 'some_path') { |
- window.testResult = 'fail - ' + msg; |
- } else { |
- window.testResult = 'pass - ' + msg; |
- } |
+ if (store1.keyPath !== null || |
+ store2.keyPath !== '' || |
+ store3.keyPath !== 'some_path') { |
+ document.title = 'fail - ' + msg; |
+ } else { |
+ document.title = 'pass - ' + msg; |
} |
} |