• 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 that data inserted into IndexedDB does not get corrupted on disk.");
14if (window.layoutTestController)
15    layoutTestController.waitUntilDone();
16
17function test()
18{
19    request = evalAndLog("webkitIndexedDB.open('data-corruption')");
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
29    request = evalAndLog("db.setVersion('new version')");
30    request.onsuccess = setVersionSuccess;
31    request.onerror = unexpectedErrorCallback;
32}
33
34function setVersionSuccess()
35{
36    debug("setVersionSuccess():");
37    window.trans = evalAndLog("trans = event.target.result");
38    shouldBeTrue("trans !== null");
39    trans.onabort = unexpectedAbortCallback;
40    trans.oncomplete = addData;
41
42    deleteAllObjectStores(db);
43
44    evalAndLog("db.createObjectStore('storeName')");
45}
46
47var testDate = new Date('February 24, 1955 12:00:08');
48
49function addData()
50{
51    debug("addData():");
52    var transaction = evalAndLog("transaction = db.transaction([], webkitIDBTransaction.READ_WRITE)");
53    var request = evalAndLog("request = transaction.objectStore('storeName').add({x: testDate}, 'key')");
54    request.onerror = unexpectedErrorCallback;
55    transaction.oncomplete = getData;
56}
57
58function getData()
59{
60    debug("addData():");
61    var transaction = evalAndLog("transaction = db.transaction([], webkitIDBTransaction.READ_ONLY)");
62    var request = evalAndLog("request = transaction.objectStore('storeName').get('key')");
63    request.onerror = unexpectedErrorCallback;
64    request.onsuccess = doCheck;
65}
66
67function doCheck()
68{
69    shouldBeTrue("event.target.result.x.toString() == testDate.toString()");
70    done();
71}
72
73test();
74
75var successfullyParsed = true;
76
77</script>
78</body>
79</html>
80