1 <html> 2 <head> 3 <link rel="stylesheet" href="../../fast/js/resources/js-test-style.css"> 4 <script src="../../fast/js/resources/js-test-pre.js"></script> 5 <script src="../../fast/js/resources/js-test-post-function.js"></script> 6 <script src="resources/shared.js"></script> 7 </head> 8 <body> 9 <p id="description"></p> 10 <div id="console"></div> 11 <script> 12 13 description("Test read-only transactions in IndexedDB."); 14 if (window.layoutTestController) 15 layoutTestController.waitUntilDone(); 16 17 function test() 18 { 19 shouldBeTrue("'webkitIndexedDB' in window"); 20 shouldBeFalse("webkitIndexedDB == null"); 21 22 request = evalAndLog("webkitIndexedDB.open('transaction-read-only')"); 23 request.onsuccess = openSuccess; 24 request.onerror = unexpectedErrorCallback; 25 } 26 27 function openSuccess() 28 { 29 debug("openSuccess():"); 30 window.db = evalAndLog("db = event.target.result"); 31 request = evalAndLog("result = db.setVersion('version 1')"); 32 request.onsuccess = cleanDatabase; 33 request.onerror = unexpectedErrorCallback; 34 } 35 36 function cleanDatabase() 37 { 38 deleteAllObjectStores(db); 39 40 event.target.result.oncomplete = setVersionDone; 41 event.target.result.onabort = unexpectedAbortCallback; 42 store = evalAndLog("store = db.createObjectStore('store')"); 43 evalAndLog("store.put('x', 'y')"); 44 } 45 46 function setVersionDone() 47 { 48 trans = evalAndLog("trans = db.transaction()"); 49 evalAndExpectException("trans.objectStore('store').put('a', 'b')", "webkitIDBDatabaseException.READ_ONLY_ERR"); 50 51 trans = evalAndLog("trans = db.transaction()"); 52 evalAndExpectException("trans.objectStore('store').delete('x')", "webkitIDBDatabaseException.READ_ONLY_ERR"); 53 54 trans = evalAndLog("trans = db.transaction()"); 55 cur = evalAndLog("cur = trans.objectStore('store').openCursor()"); 56 cur.onsuccess = gotCursor; 57 cur.onerror = unexpectedErrorCallback; 58 } 59 60 function gotCursor() 61 { 62 shouldBeFalse("!event.target.result"); 63 evalAndExpectException("event.target.result.delete()", "webkitIDBDatabaseException.READ_ONLY_ERR"); 64 65 done(); 66 } 67 68 var successfullyParsed = true; 69 70 test(); 71 72 </script> 73 </body> 74 </html> 75