Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / storage / indexeddb / resources / factory-deletedatabase.js
1 if (this.importScripts) {
2     importScripts('../../../resources/js-test.js');
3     importScripts('shared.js');
4 }
5
6 description("Test IndexedDB's indexedDB.deleteDatabase().");
7
8 indexedDBTest(prepareDatabase, getValue);
9 function prepareDatabase()
10 {
11     db = event.target.result;
12
13     store = evalAndLog("store = db.createObjectStore('storeName', null)");
14
15     self.index = evalAndLog("store.createIndex('indexName', '')");
16     shouldBeTrue("store.indexNames.contains('indexName')");
17
18     request = evalAndLog("store.add('value', 'key')");
19     request.onerror = unexpectedErrorCallback;
20 }
21
22 function getValue()
23 {
24     transaction = evalAndLog("db.transaction('storeName', 'readwrite')");
25     transaction.onabort = unexpectedErrorCallback;
26     var store = evalAndLog("store = transaction.objectStore('storeName')");
27
28     request = evalAndLog("store.get('key')");
29     request.onsuccess = addIndex;
30     request.onerror = unexpectedErrorCallback;
31 }
32
33 function addIndex()
34 {
35     shouldBeEqualToString("event.target.result", "value");
36     evalAndLog("db.close()");
37
38     request = evalAndLog("indexedDB.open(dbname, 2)");
39     request.onsuccess = deleteDatabase;
40     request.onerror = unexpectedErrorCallback;
41 }
42
43 function deleteDatabase()
44 {
45     evalAndLog("db = event.target.result");
46     db.onversionchange = function() { evalAndLog("db.close()"); }
47     request = evalAndLog("request = indexedDB.deleteDatabase(dbname)");
48     request.onsuccess = reopenDatabase;
49     request.onerror = unexpectedErrorCallback;
50 }
51
52 function reopenDatabase()
53 {
54     shouldBeUndefined("request.result");
55     request = evalAndLog("indexedDB.open(dbname, 3)");
56     request.onupgradeneeded = verifyNotFound;
57     request.onerror = unexpectedErrorCallback;
58     request.onblocked = unexpectedBlockedCallback;
59 }
60
61 function verifyNotFound()
62 {
63     db = evalAndLog("db = event.target.result");
64     shouldBe("db.objectStoreNames.length", "0");
65
66     finishJSTest();
67 }