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 13description("Test IndexedDB's webkitIDBObjectStore.clear()."); 14if (window.layoutTestController) 15 layoutTestController.waitUntilDone(); 16 17function test() 18{ 19 request = evalAndLog("webkitIndexedDB.open('objectstore-clear')"); 20 request.onsuccess = startSetVersion; 21 request.onerror = unexpectedErrorCallback; 22} 23 24function startSetVersion() 25{ 26 db = evalAndLog("db = event.target.result"); 27 28 request = evalAndLog("db.setVersion('new version')"); 29 request.onsuccess = deleteExisting; 30 request.onerror = unexpectedErrorCallback; 31} 32 33function deleteExisting() 34{ 35 window.trans = evalAndLog("trans = event.target.result"); 36 shouldBeTrue("trans !== null"); 37 38 deleteAllObjectStores(db); 39 40 store = evalAndLog("store = db.createObjectStore('storeName', null)"); 41 42 window.index = evalAndLog("store.createIndex('indexName', '')"); 43 shouldBeTrue("store.indexNames.contains('indexName')"); 44 45 request = evalAndLog("store.add('value', 'key')"); 46 request.onsuccess = createSecondObjectStoreAndAddValue; 47 request.onerror = unexpectedErrorCallback; 48} 49 50function createSecondObjectStoreAndAddValue() 51{ 52 otherStore = evalAndLog("otherStore = db.createObjectStore('otherStoreName', null)"); 53 54 request = evalAndLog("otherStore.add('value', 'key')"); 55 request.onsuccess = clearObjectStore; 56 request.onerror = unexpectedErrorCallback; 57} 58 59function clearObjectStore() 60{ 61 request = evalAndLog("store.clear()"); 62 request.onsuccess = clearSuccess; 63 request.onerror = unexpectedErrorCallback; 64} 65 66function clearSuccess() 67{ 68 shouldBeUndefined("event.target.result"); 69 70 request = evalAndLog("store.openCursor()"); 71 request.onsuccess = openCursorSuccess; 72 request.onerror = unexpectedErrorCallback; 73} 74 75function openCursorSuccess() 76{ 77 shouldBeNull("event.target.result"); 78 79 index = evalAndLog("index = store.index('indexName')"); 80 request = evalAndLog("index.openKeyCursor()"); 81 request.onsuccess = openKeyCursorSuccess; 82 request.onerror = unexpectedErrorCallback; 83} 84 85function openKeyCursorSuccess() 86{ 87 debug("openKeyCursorSuccess():"); 88 shouldBeNull("event.target.result"); 89 90 transaction = evalAndLog("db.transaction({mode: webkitIDBTransaction.READ_WRITE})"); 91 transaction.onabort = unexpectedErrorCallback; 92 var otherStore = evalAndLog("otherStore = transaction.objectStore('otherStoreName')"); 93 94 request = evalAndLog("otherStore.get('key')"); 95 request.onsuccess = getSuccess; 96 request.onerror = unexpectedErrorCallback; 97} 98 99function getSuccess() 100{ 101 shouldBeEqualToString("event.target.result", "value"); 102 103 done(); 104} 105 106test(); 107 108var successfullyParsed = true; 109</script> 110</body> 111</html> 112