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 createObjectStore's various options"); 14if (window.layoutTestController) 15 layoutTestController.waitUntilDone(); 16 17function test() 18{ 19 shouldBeTrue("'webkitIndexedDB' in window"); 20 shouldBeFalse("webkitIndexedDB == null"); 21 22 request = evalAndLog("webkitIndexedDB.open('create-object-store-options', 'description')"); 23 request.onsuccess = openSuccess; 24 request.onerror = unexpectedErrorCallback; 25} 26 27function openSuccess() 28{ 29 db = evalAndLog("db = event.target.result"); 30 31 request = evalAndLog("request = db.setVersion('version 1')"); 32 request.onsuccess = cleanDatabase; 33 request.onerror = unexpectedErrorCallback; 34} 35 36function cleanDatabase() 37{ 38 deleteAllObjectStores(db); 39 40 evalAndLog("db.createObjectStore('a', {keyPath: 'a'})"); 41 evalAndLog("db.createObjectStore('b')"); 42 43 debug("db.createObjectStore('c', {autoIncrement: true});"); 44 db.createObjectStore('c', {autoIncrement: true}); 45 46 trans = evalAndLog("trans = db.transaction([], webkitIDBTransaction.READ_WRITE)"); 47 shouldBe("trans.mode", "webkitIDBTransaction.READ_WRITE"); 48 49 req = evalAndLog("trans.objectStore('a').put({'a': 0})"); 50 req.onsuccess = putB; 51 req.onerror = unexpectedErrorCallback; 52} 53 54function putB() 55{ 56 req = evalAndLog("trans.objectStore('b').put({'a': 0}, 0)"); // OOPS 57 req.onsuccess = getA; 58 req.onerror = unexpectedErrorCallback; 59} 60 61function getA() 62{ 63 req = evalAndLog("trans.objectStore('a').get(0)"); 64 req.onsuccess = getB; 65 req.onerror = unexpectedErrorCallback; 66} 67 68function getB() 69{ 70 shouldBe("event.target.result.a", "{a: 0}"); 71 72 req = evalAndLog("trans.objectStore('b').get(0)"); 73 req.onsuccess = checkB; 74 req.onerror = unexpectedErrorCallback; 75} 76 77function checkB() 78{ 79 shouldBe("event.target.result.a", "{a: 0}"); 80 81 done(); 82} 83 84var successfullyParsed = true; 85 86test(); 87 88</script> 89</body> 90</html> 91