Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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>
9 <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
12 <script type="text/javascript;version=1.7">
13 function testSteps()
14 {
15 const READ_WRITE = "readwrite";
17 const databaseInfo = [
18 { name: window.location.pathname + "1" },
19 { name: window.location.pathname + "2" }
20 ];
22 const objectStoreName = "Blobs";
24 const testFile = getRandomFile("random.bin", 100000);
26 let databases = [];
27 for each (let info in databaseInfo) {
28 let request = indexedDB.open(info.name, 1);
29 request.onerror = errorHandler;
30 request.onupgradeneeded = grabEventAndContinueHandler;
31 request.onsuccess = grabEventAndContinueHandler;
32 let event = yield undefined;
34 is(event.type, "upgradeneeded", "Got correct event type");
36 let db = event.target.result;
37 db.onerror = errorHandler;
39 db.createObjectStore(objectStoreName, { });
41 event = yield undefined;
43 is(event.type, "success", "Got correct event type");
45 databases.push(db);
46 }
48 let db1 = databases[0];
50 let request = db1.mozCreateFileHandle("random.bin", "binary/random");
51 request.onsuccess = grabEventAndContinueHandler;
52 event = yield undefined;
54 let fileHandle = event.target.result;
55 is(getFileId(fileHandle), 1, "Correct file id");
56 is(fileHandle.name, "random.bin", "Correct name");
57 is(fileHandle.type, "binary/random", "Correct type");
59 let trans = db1.transaction([objectStoreName], READ_WRITE);
60 let objectStore = trans.objectStore(objectStoreName);
62 request = objectStore.add(fileHandle, 42);
63 request.onsuccess = grabEventAndContinueHandler;
64 event = yield undefined;
66 request = objectStore.get(42);
67 request.onsuccess = grabEventAndContinueHandler;
68 event = yield undefined;
70 let result = event.target.result;
71 is(getFileId(result), 1, "Correct file id");
72 is(result.name, fileHandle.name, "Correct name");
73 is(result.type, fileHandle.type, "Correct type");
75 let db2 = databases[1];
77 trans = db2.transaction([objectStoreName], READ_WRITE);
78 objectStore = trans.objectStore(objectStoreName);
80 try {
81 objectStore.add(fileHandle, 42);
82 ok(false, "Should have thrown!");
83 }
84 catch (e) {
85 ok(e instanceof DOMException, "Got exception.");
86 is(e.name, "DataCloneError", "Good error.");
87 is(e.code, DOMException.DATA_CLONE_ERR, "Good error code.");
88 }
90 finishTest();
91 yield undefined;
92 }
93 </script>
94 <script type="text/javascript;version=1.7" src="file.js"></script>
95 <script type="text/javascript;version=1.7" src="helpers.js"></script>
97 </head>
99 <body onload="runTest();"></body>
101 </html>