test_file_replace.html (1920B)
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 name = window.location.pathname; 16 17 const objectStoreName = "Blobs"; 18 19 const blobData = { key: 42, blobs: [] }; 20 21 for (let i = 0; i < 100; i++) { 22 blobData.blobs[i] = getRandomBlob(i); 23 } 24 25 SpecialPowers.pushPrefEnv({ set: [["dom.indexedDB.dataThreshold", -1]] }, 26 continueToNextStep); 27 yield undefined; 28 29 let request = indexedDB.open(name, 1); 30 request.onerror = errorHandler; 31 request.onupgradeneeded = grabEventAndContinueHandler; 32 request.onsuccess = grabEventAndContinueHandler; 33 let event = yield undefined; 34 35 is(event.type, "upgradeneeded", "Got correct event type"); 36 37 let db = event.target.result; 38 db.onerror = errorHandler; 39 40 let objectStore = db.createObjectStore(objectStoreName, { }); 41 42 for (let i = 0; i < blobData.blobs.length; i++) { 43 objectStore.put(blobData.blobs[i], blobData.key); 44 } 45 46 event = yield undefined; 47 48 is(event.type, "success", "Got correct event type"); 49 50 for (let id = 1; id <= 100; id++) { 51 let refs = {}; 52 let dbRefs = {}; 53 let hasFileInfo = utils.getFileReferences(name, id, refs, dbRefs); 54 ok(hasFileInfo, `Expect existing DatabaseFileInfo for ${name}/${id}`); 55 is(refs.value, 1, "Correct ref count"); 56 is(dbRefs.value, id / 100 >> 0, "Correct db ref count"); 57 } 58 59 finishTest(); 60 } 61 </script> 62 <script type="text/javascript" src="file.js"></script> 63 <script type="text/javascript" src="helpers.js"></script> 64 65 </head> 66 67 <body onload="runTest();"></body> 68 69 </html>