• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
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>
7</head>
8<body>
9<p id="description"></p>
10<div id="console"></div>
11<script>
12
13description("Test IndexedDB's create and removeObjectStore");
14if (window.layoutTestController)
15    layoutTestController.waitUntilDone();
16
17function test()
18{
19    request = evalAndLog("webkitIndexedDB.open('create-and-remove-object-store')");
20    request.onsuccess = openSuccess;
21    request.onerror = unexpectedErrorCallback;
22}
23
24function openSuccess()
25{
26    debug("openSuccess():");
27    window.db = evalAndLog("db = event.target.result");
28    testCreateAndRemove();
29    request = evalAndLog("result = db.setVersion('version 1')");
30    request.onsuccess = cleanDatabase;
31    request.onerror = unexpectedErrorCallback;
32    testCreateAndRemove();
33}
34
35function testCreateAndRemove()
36{
37    debug("Trying create");
38    evalAndExpectException('db.createObjectStore("some os")', "webkitIDBDatabaseException.NOT_ALLOWED_ERR");
39    debug("Trying remove");
40    evalAndExpectException('db.createObjectStore("some os")', "webkitIDBDatabaseException.NOT_ALLOWED_ERR");
41}
42
43function cleanDatabase()
44{
45    deleteAllObjectStores(db);
46
47    os = evalAndLog("db.createObjectStore('tmp')");
48    evalAndExpectException("db.createObjectStore('tmp')", "webkitIDBDatabaseException.CONSTRAINT_ERR");
49
50    trans = evalAndLog("trans = db.transaction({mode: webkitIDBTransaction.READ_WRITE})");
51    request = evalAndLog("trans.objectStore('tmp').get(0)");
52    request.onsuccess = tryOnceMore;
53    request.onerror = unexpectedErrorCallback;
54}
55
56function tryOnceMore()
57{
58    shouldBeUndefined("event.target.result");
59
60    testCreateAndRemove();
61
62    done();
63}
64
65var successfullyParsed = true;
66
67test();
68
69</script>
70</body>
71</html>
72