3 <link rel="stylesheet" href="../../fast/js/resources/js-test-style.css">
4 <script src="../../fast/js/resources/js-test-pre.js"></script>
5 <script src="../../fast/js/resources/js-test-post-function.js"></script>
6 <script src="resources/shared.js"></script>
9 <p id="description"></p>
10 <div id="console"></div>
13 description("Test the basics of IndexedDB's IDBDatabase.");
14 if (window.layoutTestController)
15 layoutTestController.waitUntilDone();
19 result = evalAndLog("webkitIndexedDB.open('name', 'description')");
21 result.onsuccess = openSuccess;
22 result.onerror = unexpectedErrorCallback;
25 function openSuccess()
27 verifySuccessEvent(event);
28 window.db = evalAndLog("db = event.result");
30 result = evalAndLog("db.setVersion('new version')");
32 result.onsuccess = setVersionSuccess;
33 result.onerror = unexpectedErrorCallback;
36 function setVersionSuccess()
38 debug("setVersionSuccess():");
39 verifySuccessEvent(event);
40 window.trans = evalAndLog("trans = event.result");
41 shouldBeTrue("trans !== null");
42 trans.onabort = unexpectedAbortCallback;
44 deleteAllObjectStores(db, testSetVersion);
47 function testSetVersion()
49 debug("Testing setVersion.");
50 result = evalAndLog('db.setVersion("version a")');
52 result.onsuccess = setVersionAgain;
53 result.onerror = unexpectedErrorCallback;
56 function setVersionAgain()
58 verifySuccessEvent(event);
60 result = evalAndLog('db.setVersion("version b")');
62 result.onsuccess = createObjectStore;
63 result.onerror = unexpectedErrorCallback;
66 function createObjectStore()
68 verifySuccessEvent(event);
69 shouldBeEqualToString("db.version", "version b");
70 shouldBeEqualToString("db.name", "name");
71 shouldBe("db.objectStores", "[]");
72 shouldBe("db.objectStores.length", "0");
73 shouldBe("db.objectStores.contains('')", "false");
74 shouldBeNull("db.objectStores[0]");
75 shouldBeNull("db.objectStores.item(0)");
77 objectStore = evalAndLog('db.createObjectStore("test123")');
82 function checkObjectStore()
84 shouldBe("db.objectStores", "['test123']");
85 shouldBe("db.objectStores.length", "1");
86 shouldBe("db.objectStores.contains('')", "false");
87 shouldBe("db.objectStores.contains('test456')", "false");
88 shouldBe("db.objectStores.contains('test123')", "true");
91 function commitAndContinue()
93 window.setTimeout(testSetVersionAbort, 0);
96 function testSetVersionAbort()
98 result = evalAndLog('db.setVersion("version c")');
100 result.onsuccess = createAnotherObjectStore;
101 result.onerror = unexpectedErrorCallback;
104 function createAnotherObjectStore()
106 verifySuccessEvent(event);
107 shouldBeEqualToString("db.version", "version c");
108 shouldBeEqualToString("db.name", "name");
111 objectStore = evalAndLog('db.createObjectStore("test456")');
112 var setVersionTrans = evalAndLog("setVersionTrans = event.result");
113 shouldBeTrue("setVersionTrans !== null");
114 setVersionTrans.oncomplete = unexpectedCompleteCallback;
115 setVersionTrans.onabort = checkMetadata;
116 setVersionTrans.abort();
119 function checkMetadata()
121 shouldBeEqualToString("db.version", "version b");
128 var successfullyParsed = true;