dom/indexedDB/test/test_filehandle_store_snapshot.html

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:467028956dcb
1 <!--
2 Any copyright is dedicated to the Public Domain.
3 http://creativecommons.org/publicdomain/zero/1.0/
4 -->
5 <html>
6 <head>
7 <title>Indexed Database Property Test</title>
8
9 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
11
12 <script type="text/javascript;version=1.7">
13 function testSteps()
14 {
15 const READ_WRITE = "readwrite";
16
17 const name = window.location.pathname;
18
19 const objectStoreName = "Blobs";
20
21 const testFile = getRandomFile("random.bin", 100000);
22
23 let request = indexedDB.open(name, 1);
24 request.onerror = errorHandler;
25 request.onupgradeneeded = grabEventAndContinueHandler;
26 request.onsuccess = grabEventAndContinueHandler;
27 let event = yield undefined;
28
29 is(event.type, "upgradeneeded", "Got correct event type");
30
31 let db = event.target.result;
32 db.onerror = errorHandler;
33
34 let objectStore = db.createObjectStore(objectStoreName, { });
35
36 event = yield undefined;
37
38 is(event.type, "success", "Got correct event type");
39
40 request = db.mozCreateFileHandle("random.bin", "binary/random");
41 request.onsuccess = grabEventAndContinueHandler;
42 event = yield undefined;
43
44 let fileHandle = event.target.result;
45 fileHandle.onerror = errorHandler;
46
47 let lockedFile = fileHandle.open("readwrite");
48
49 is(getFileId(fileHandle), 1, "Correct file id");
50
51 request = lockedFile.write(testFile);
52 request.onsuccess = grabEventAndContinueHandler;
53 event = yield undefined;
54
55 request = fileHandle.getFile();
56 request.onsuccess = grabEventAndContinueHandler;
57 event = yield undefined;
58
59 let file = event.target.result;
60
61 let trans = db.transaction([objectStoreName], READ_WRITE);
62 let objectStore = trans.objectStore(objectStoreName);
63
64 request = objectStore.add(file, 42);
65 request.onsuccess = grabEventAndContinueHandler;
66 event = yield undefined;
67
68 // At this moment, the file should not be readable anymore.
69 let reader = new FileReader();
70 try {
71 reader.readAsArrayBuffer(file);
72 ok(false, "Should have thrown!");
73 }
74 catch (e) {
75 ok(e instanceof DOMException, "Got exception.");
76 is(e.name, "LockedFileInactiveError", "Good error.");
77 is(e.code, 0, "Good error code.");
78 }
79
80 request = objectStore.get(42);
81 request.onsuccess = grabEventAndContinueHandler;
82 event = yield undefined;
83
84 verifyBlob(event.target.result, testFile, 2);
85 yield undefined;
86
87 finishTest();
88 yield undefined;
89 }
90 </script>
91 <script type="text/javascript;version=1.7" src="file.js"></script>
92 <script type="text/javascript;version=1.7" src="helpers.js"></script>
93
94 </head>
95
96 <body onload="runTest();"></body>
97
98 </html>

mercurial