test_file_put_get_values.html (3133B)
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 src="/tests/SimpleTest/SimpleTest.js"></script> 10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> 11 12 <script type="text/javascript"> 13 function* testSteps() 14 { 15 const READ_WRITE = "readwrite"; 16 17 const name = window.location.pathname; 18 19 const objectStoreName = "Blobs"; 20 21 const blobData = { key: 1, blob: getRandomBlob(10000) }; 22 const fileData = { key: 2, file: getRandomFile("random.bin", 100000) }; 23 24 SpecialPowers.pushPrefEnv({ set: [["dom.indexedDB.dataThreshold", -1]] }, 25 continueToNextStep); 26 yield undefined; 27 28 let request = indexedDB.open(name, 1); 29 request.onerror = errorHandler; 30 request.onupgradeneeded = grabEventAndContinueHandler; 31 request.onsuccess = grabEventAndContinueHandler; 32 let event = yield undefined; 33 34 is(event.type, "upgradeneeded", "Got correct event type"); 35 36 let db = event.target.result; 37 db.onerror = errorHandler; 38 39 db.createObjectStore(objectStoreName, { }); 40 41 event = yield undefined; 42 43 is(event.type, "success", "Got correct event type"); 44 45 let objectStore = db.transaction([objectStoreName], READ_WRITE) 46 .objectStore(objectStoreName); 47 request = objectStore.add(blobData.blob, blobData.key); 48 request.onsuccess = grabEventAndContinueHandler; 49 event = yield undefined; 50 51 is(event.target.result, blobData.key, "Got correct key"); 52 53 request = objectStore.get(blobData.key); 54 request.onsuccess = grabEventAndContinueHandler; 55 event = yield undefined; 56 57 verifyBlob(event.target.result, blobData.blob, 1); 58 yield undefined; 59 60 request = db.transaction([objectStoreName]) 61 .objectStore(objectStoreName).get(blobData.key); 62 request.onsuccess = grabEventAndContinueHandler; 63 event = yield undefined; 64 65 verifyBlob(event.target.result, blobData.blob, 1); 66 yield undefined; 67 68 objectStore = db.transaction([objectStoreName], READ_WRITE) 69 .objectStore(objectStoreName); 70 request = objectStore.add(fileData.file, fileData.key); 71 request.onsuccess = grabEventAndContinueHandler; 72 event = yield undefined; 73 74 is(event.target.result, fileData.key, "Got correct key"); 75 76 request = objectStore.get(fileData.key); 77 request.onsuccess = grabEventAndContinueHandler; 78 event = yield undefined; 79 80 verifyBlob(event.target.result, fileData.file, 2); 81 yield undefined; 82 83 request = db.transaction([objectStoreName]) 84 .objectStore(objectStoreName).get(fileData.key); 85 request.onsuccess = grabEventAndContinueHandler; 86 event = yield undefined; 87 88 verifyBlob(event.target.result, fileData.file, 2); 89 yield undefined; 90 91 is(bufferCache.length, 2, "Correct length"); 92 93 finishTest(); 94 } 95 </script> 96 <script type="text/javascript" src="file.js"></script> 97 <script type="text/javascript" src="helpers.js"></script> 98 99 </head> 100 101 <body onload="runTest();"></body> 102 103 </html>