tizen beta release
[framework/web/webkit-efl.git] / LayoutTests / storage / indexeddb / objectstore-removeobjectstore.html
1 <html>
2 <head>
3 <script src="../../fast/js/resources/js-test-pre.js"></script>
4 <script src="resources/shared.js"></script>
5 </head>
6 <body>
7 <p id="description"></p>
8 <div id="console"></div>
9 <script>
10
11 description("Test IndexedDB's webkitIDBObjectStore.deleteObjectStore().");
12 if (window.layoutTestController) 
13     layoutTestController.waitUntilDone();
14
15 function test()
16 {
17     request = evalAndLog("webkitIndexedDB.open('objectstore-removeobjectstore')");
18     request.onsuccess = startSetVersion;
19     request.onerror = unexpectedErrorCallback;
20 }
21
22 function startSetVersion()
23 {
24     db = evalAndLog("db = event.target.result");
25
26     request = evalAndLog("db.setVersion('new version')");
27     request.onsuccess = deleteExisting;
28     request.onerror = unexpectedErrorCallback;
29 }
30
31 function deleteExisting()
32 {
33     window.trans = evalAndLog("trans = event.target.result");
34     shouldBeTrue("trans !== null");
35
36     deleteAllObjectStores(db);
37
38     store = evalAndLog("store = db.createObjectStore('storeName', null)");
39
40     window.index = evalAndLog("store.createIndex('indexName', '')");
41     shouldBeTrue("store.indexNames.contains('indexName')");
42
43     request = evalAndLog("store.add('value', 'key')");
44     request.onsuccess = getValue;
45     request.onerror = unexpectedErrorCallback;
46 }
47
48 function getValue()
49 {
50     transaction = evalAndLog("db.transaction(['storeName'])");
51     transaction.onabort = unexpectedErrorCallback;
52     var store = evalAndLog("store = transaction.objectStore('storeName')");
53
54     request = evalAndLog("store.get('key')");
55     request.onsuccess = addIndex;
56     request.onerror = unexpectedErrorCallback;
57 }
58
59 function addIndex()
60 {
61     shouldBeEqualToString("event.target.result", "value");
62
63     request = evalAndLog("db.setVersion('new version')");
64     request.onsuccess = deleteObjectStore;
65     request.onerror = unexpectedErrorCallback;
66 }
67
68 function deleteObjectStore()
69 {
70     window.trans = evalAndLog("trans = event.target.result");
71     shouldBeTrue("trans !== null");
72     trans.onabort = unexpectedAbortCallback;
73
74     evalAndLog("db.deleteObjectStore('storeName')");
75     createObjectStoreAgain();
76 }
77
78 function createObjectStoreAgain()
79 {
80     evalAndLog("db.createObjectStore('storeName', null)");
81     getValueAgain();
82 }
83
84 function getValueAgain()
85 {
86     transaction = evalAndLog("db.transaction(['storeName'])");
87     transaction.onabort = unexpectedErrorCallback;
88     var store = evalAndLog("store = transaction.objectStore('storeName')");
89
90     request = evalAndLog("store.get('key')");
91     request.onsuccess = verifyNotFound;
92     request.onerror = unexpectedErrorCallback;
93 }
94
95 function verifyNotFound()
96 {
97     shouldBe("event.target.result", "undefined");
98     shouldBeFalse("event.target.source.indexNames.contains('indexName')");
99
100     done();
101 }
102
103 test();
104
105 </script>
106 </body>
107 </html>