test_file_sharing.html (2792B)
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 objectStoreInfo = [ 20 { name: "Blobs", options: { } }, 21 { name: "Other Blobs", options: { } }, 22 ]; 23 24 const fileData = { key: 1, file: getRandomFile("random.bin", 100000) }; 25 26 let request = indexedDB.open(name, 1); 27 request.onerror = errorHandler; 28 request.onupgradeneeded = grabEventAndContinueHandler; 29 request.onsuccess = grabEventAndContinueHandler; 30 let event = yield undefined; 31 32 is(event.type, "upgradeneeded", "Got correct event type"); 33 34 let db = event.target.result; 35 db.onerror = errorHandler; 36 37 for (let info of objectStoreInfo) { 38 let objectStore = db.createObjectStore(info.name, info.options); 39 objectStore.add(fileData.file, fileData.key); 40 } 41 42 event = yield undefined; 43 44 is(event.type, "success", "Got correct event type"); 45 46 let refResult; 47 for (let info of objectStoreInfo) { 48 let objectStore = db.transaction([info.name]) 49 .objectStore(info.name); 50 51 request = objectStore.get(fileData.key); 52 request.onsuccess = grabEventAndContinueHandler; 53 event = yield undefined; 54 55 let result = event.target.result; 56 verifyBlob(result, fileData.file, 1); 57 yield undefined; 58 59 if (!refResult) { 60 refResult = result; 61 continue; 62 } 63 64 is(getFilePath(result), getFilePath(refResult), "The same os file"); 65 } 66 67 for (let i = 1; i < objectStoreInfo.length; i++) { 68 let info = objectStoreInfo[i]; 69 70 let objectStore = db.transaction([info.name], READ_WRITE) 71 .objectStore(info.name); 72 73 request = objectStore.add(refResult, 2); 74 request.onsuccess = grabEventAndContinueHandler; 75 event = yield undefined; 76 77 is(event.target.result, 2, "Got correct key"); 78 79 request = objectStore.get(2); 80 request.onsuccess = grabEventAndContinueHandler; 81 event = yield undefined; 82 83 let result = event.target.result; 84 verifyBlob(result, refResult, 1); 85 yield undefined; 86 87 is(getFilePath(result), getFilePath(refResult), "The same os file"); 88 } 89 90 is(bufferCache.length, 2, "Correct length"); 91 92 finishTest(); 93 } 94 </script> 95 <script type="text/javascript" src="file.js"></script> 96 <script type="text/javascript" src="helpers.js"></script> 97 98 </head> 99 100 <body onload="runTest();"></body> 101 102 </html>