2 Any copyright is dedicated to the Public Domain.
3 http://creativecommons.org/publicdomain/zero/1.0/
7 <title>Indexed Database Property Test
</title>
9 <script src=
"/tests/SimpleTest/SimpleTest.js"></script>
10 <link rel=
"stylesheet" type=
"text/css" href=
"/tests/SimpleTest/test.css"/>
12 <script type=
"text/javascript">
15 const READ_WRITE
= "readwrite";
17 const name
= window
.location
.pathname
;
19 const objectStoreInfo
= [
20 { name
: "Blobs", options
: { } },
21 { name
: "Other Blobs", options
: { } },
24 const fileData
= { key
: 1, file
: getRandomFile("random.bin", 100000) };
26 let request
= indexedDB
.open(name
, 1);
27 request
.onerror
= errorHandler
;
28 request
.onupgradeneeded
= grabEventAndContinueHandler
;
29 request
.onsuccess
= grabEventAndContinueHandler
;
30 let event
= yield undefined;
32 is(event
.type
, "upgradeneeded", "Got correct event type");
34 let db
= event
.target
.result
;
35 db
.onerror
= errorHandler
;
37 for (let info
of objectStoreInfo
) {
38 let objectStore
= db
.createObjectStore(info
.name
, info
.options
);
39 objectStore
.add(fileData
.file
, fileData
.key
);
42 event
= yield undefined;
44 is(event
.type
, "success", "Got correct event type");
47 for (let info
of objectStoreInfo
) {
48 let objectStore
= db
.transaction([info
.name
])
49 .objectStore(info
.name
);
51 request
= objectStore
.get(fileData
.key
);
52 request
.onsuccess
= grabEventAndContinueHandler
;
53 event
= yield undefined;
55 let result
= event
.target
.result
;
56 verifyBlob(result
, fileData
.file
, 1);
64 is(getFilePath(result
), getFilePath(refResult
), "The same os file");
67 for (let i
= 1; i
< objectStoreInfo
.length
; i
++) {
68 let info
= objectStoreInfo
[i
];
70 let objectStore
= db
.transaction([info
.name
], READ_WRITE
)
71 .objectStore(info
.name
);
73 request
= objectStore
.add(refResult
, 2);
74 request
.onsuccess
= grabEventAndContinueHandler
;
75 event
= yield undefined;
77 is(event
.target
.result
, 2, "Got correct key");
79 request
= objectStore
.get(2);
80 request
.onsuccess
= grabEventAndContinueHandler
;
81 event
= yield undefined;
83 let result
= event
.target
.result
;
84 verifyBlob(result
, refResult
, 1);
87 is(getFilePath(result
), getFilePath(refResult
), "The same os file");
90 is(bufferCache
.length
, 2, "Correct length");
95 <script type=
"text/javascript" src=
"file.js"></script>
96 <script type=
"text/javascript" src=
"helpers.js"></script>
100 <body onload=
"runTest();"></body>