OLD | NEW |
---|---|
(Empty) | |
1 <html> | |
2 <head> | |
3 <script src="../inspector-test.js"></script> | |
4 <script src="../resources-test.js"></script> | |
5 <script src="../console-test.js"></script> | |
6 <script src="indexeddb-test.js"></script> | |
7 <script> | |
8 | |
9 var createDatabase = function(databaseName) { | |
dgozman
2017/05/26 19:10:46
function createDatabase(
kristipark
2017/05/26 22:42:15
Done.
| |
10 var callback; | |
11 var promise = new Promise((fulfill) => callback = fulfill); | |
12 var request = indexedDB.open(databaseName); | |
13 request.onerror = function(event) { | |
14 console.error("IndexedDB error: " + event); | |
15 } | |
16 request.onsuccess = function(event) { | |
17 request.result.close(); | |
18 callback(); | |
19 } | |
20 return promise; | |
21 } | |
22 | |
23 var createObjectStore = function(databaseName, objectStoreName, indexName) { | |
dgozman
2017/05/26 19:10:46
function createObjectStore(
kristipark
2017/05/26 22:42:16
Done.
| |
24 var callback; | |
25 var promise = new Promise((fulfill) => callback = fulfill); | |
26 var request = indexedDB.open(databaseName); | |
27 request.onerror = function(event) { | |
28 console.error("IndexedDB error: " + event); | |
29 } | |
30 request.onsuccess = function(event) { | |
31 var db = request.result; | |
32 var version = db.version; | |
33 db.close(); | |
34 | |
35 var upgradeRequest = indexedDB.open(databaseName, version + 1); | |
36 | |
37 upgradeRequest.onupgradeneeded = function(e) { | |
38 var upgradeDb = e.target.result; | |
39 var store = upgradeDb.createObjectStore(objectStoreName, { keyPath: "", autoIncrement: false }); | |
40 store.createIndex(indexName, "", { unique: false, multiEntry: false }); | |
41 callback(); | |
42 } | |
43 upgradeRequest.onsuccess = function(e) { | |
44 var upgradeDb = e.target.result; | |
45 upgradeDb.close(); | |
46 callback(); | |
47 } | |
48 } | |
49 return promise; | |
50 } | |
51 | |
52 window.debugTest = true; | |
dgozman
2017/05/26 19:10:46
Remove?
kristipark
2017/05/26 22:42:16
Done.
| |
53 async function test() | |
54 { | |
55 var databaseName = "testDatabase"; | |
56 var objectStoreName1 = "testObjectStore1"; | |
57 var objectStoreName2 = "testObjectStore2"; | |
58 var indexName = "testIndex"; | |
59 | |
60 var indexedDBModel = InspectorTest.mainTarget.model(Resources.IndexedDBModel ); | |
61 var mainFrameId = InspectorTest.resourceTreeModel.mainFrame.id; | |
62 var securityOrigin = "http://127.0.0.1:8000"; | |
63 var databaseId; | |
64 | |
65 var refreshDatabase = function(databaseId, callback) { | |
dgozman
2017/05/26 19:10:46
function refreshDatabase(
kristipark
2017/05/26 22:42:16
Done.
| |
66 var event = indexedDBModel.addEventListener(Resources.IndexedDBModel.Eve nts.DatabaseLoaded, () => { | |
67 Common.EventTarget.removeEventListeners([event]); | |
68 callback(); | |
69 }); | |
70 indexedDBModel.refreshDatabase(databaseId); | |
dgozman
2017/05/26 19:10:46
It's better to get a view and emulate click on the
kristipark
2017/05/26 22:42:15
Done.
| |
71 } | |
72 | |
73 // Initial tree | |
74 InspectorTest.dumpIndexedDBTree(); | |
75 | |
76 // Create database | |
77 await InspectorTest.evaluateInPageAsync("createDatabase('" + databaseName + "')"); | |
78 var waitUntilAdded = function(callback) { | |
dgozman
2017/05/26 19:10:46
function waitUntilAdded(callback) {
kristipark
2017/05/26 22:42:16
Done.
| |
79 var event = indexedDBModel.addEventListener(Resources.IndexedDBModel.Eve nts.DatabaseAdded, () => { | |
80 Common.EventTarget.removeEventListeners([event]); | |
81 callback(); | |
82 }); | |
83 UI.panels.resources._sidebar.indexedDBListTreeElement.refreshIndexedDB() ; | |
84 } | |
85 await new Promise(waitUntilAdded); | |
86 var idbDatabaseTreeElement = UI.panels.resources._sidebar.indexedDBListTreeE lement._idbDatabaseTreeElements[0]; | |
87 databaseId = idbDatabaseTreeElement._databaseId; | |
88 InspectorTest.addResult("Created database."); | |
89 InspectorTest.dumpIndexedDBTree(); | |
90 | |
91 // Create first objectstore | |
92 await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName1 + "', '" + indexName + "')"); | |
93 await new Promise(resolve => refreshDatabase(databaseId, resolve)); | |
94 InspectorTest.addResult("Created first objectstore."); | |
95 InspectorTest.dumpIndexedDBTree(); | |
96 | |
97 // Create second objectstore | |
98 await InspectorTest.evaluateInPageAsync("createObjectStore('" + databaseName + "', '" + objectStoreName2 + "', '" + indexName + "')"); | |
99 await new Promise(resolve => refreshDatabase(databaseId, resolve)); | |
100 InspectorTest.addResult("Created second objectstore."); | |
101 InspectorTest.dumpIndexedDBTree(); | |
102 | |
103 InspectorTest.completeTest(); | |
104 } | |
105 </script> | |
106 </head> | |
107 <body onload="runTest()"> | |
108 <p>Tests refreshing the database information and data views.</p> | |
109 </body> | |
110 </html> | |
OLD | NEW |