test_file_transaction_abort.html (1962B)
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 fileData = { key: 1, file: getRandomFile("random.bin", 100000) }; 22 23 { 24 let request = indexedDB.open(name, 1); 25 request.onerror = errorHandler; 26 request.onupgradeneeded = grabEventAndContinueHandler; 27 request.onsuccess = grabEventAndContinueHandler; 28 let event = yield undefined; 29 30 is(event.type, "upgradeneeded", "Got correct event type"); 31 32 let db = event.target.result; 33 db.onerror = errorHandler; 34 35 let objectStore = db.createObjectStore(objectStoreName, { }); 36 37 event = yield undefined; 38 39 is(event.type, "success", "Got correct event type"); 40 41 let trans = db.transaction([objectStoreName], READ_WRITE); 42 objectStore = trans.objectStore(objectStoreName); 43 44 request = objectStore.add(fileData.file, fileData.key); 45 request.onsuccess = grabEventAndContinueHandler; 46 event = yield undefined; 47 48 is(event.target.result, fileData.key, "Got correct key"); 49 50 trans.onabort = grabEventAndContinueHandler; 51 trans.abort(); 52 event = yield undefined; 53 54 is(event.type, "abort", "Got correct event type"); 55 56 is(getFileDBRefCount(name, 1), 0, "Correct db ref count"); 57 58 fileData.file = null; 59 } 60 61 yield* assertEventuallyHasNoFileInfo(name, 1); 62 63 finishTest(); 64 } 65 </script> 66 <script type="text/javascript" src="file.js"></script> 67 <script type="text/javascript" src="helpers.js"></script> 68 69 </head> 70 71 <body onload="runTest();"></body> 72 73 </html>