3 <script src=
"../../resources/js-test.js"></script>
4 <script src=
"resources/shared.js"></script>
7 <iframe id=
"frame0"></iframe>
8 <iframe id=
"frame1"></iframe>
9 <iframe id=
"frame2"></iframe>
12 description("Confirm that blobs can be read back before their records are committed.");
14 indexedDBTest(prepareDatabase
);
15 function prepareDatabase()
17 db
= event
.target
.result
;
18 event
.target
.transaction
.onabort
= unexpectedAbortCallback
;
19 evalAndLog("store = db.createObjectStore('store')");
20 blobAContent
= "Blob A content";
21 blobBContent
= "Blob B content";
22 var blobA
= new Blob([blobAContent
], {"type" : "text/plain"});
23 var blobB
= new Blob([blobBContent
], {"type" : "text/plain"});
25 value
= { a0
: blobA
, a1
: blobA
, b0
: blobB
};
26 evalAndLog("store.put(value, key)");
27 evalAndLog("request = store.get(key)");
28 request
.onsuccess
= didRead
;
33 record
= request
.result
;
34 urlA0
= URL
.createObjectURL(record
.a0
);
35 urlA1
= URL
.createObjectURL(record
.a1
);
36 urlB
= URL
.createObjectURL(record
.b0
);
37 document
.getElementById('frame0').src
= urlA0
;
38 document
.getElementById('frame0').onload
= verification
;
39 document
.getElementById('frame1').src
= urlA1
;
40 document
.getElementById('frame1').onload
= verification
;
41 document
.getElementById('frame2').src
= urlB
;
42 document
.getElementById('frame2').onload
= verification
;
46 function verification()
50 URL
.revokeObjectURL(urlA0
);
51 URL
.revokeObjectURL(urlA1
);
52 URL
.revokeObjectURL(urlB
);
53 shouldBe("document.getElementById('frame0').contentDocument.body.innerText",
55 shouldBe("document.getElementById('frame1').contentDocument.body.innerText",
57 shouldBe("document.getElementById('frame2').contentDocument.body.innerText",