1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 function afterCommit() 6 { 7 try { 8 debug("Accessing a committed transaction should throw"); 9 var store = transaction.objectStore('storeName'); 10 } catch (e) { 11 exc = e; 12 shouldBe('exc.code', 'DOMException.INVALID_STATE_ERR'); 13 } 14 done(); 15 } 16 17 function nonExistingKey() 18 { 19 shouldBe("event.target.result", "undefined"); 20 transaction.oncomplete = afterCommit; 21 } 22 23 function gotValue() 24 { 25 value = event.target.result; 26 shouldBeEqualToString('value', 'myValue'); 27 } 28 29 function startTransaction() 30 { 31 debug("Using get in a transaction"); 32 transaction = db.transaction('storeName'); 33 //transaction.onabort = unexpectedErrorCallback; 34 store = transaction.objectStore('storeName'); 35 shouldBeEqualToString("store.name", "storeName"); 36 request = store.get('myKey'); 37 request.onsuccess = gotValue; 38 request.onerror = unexpectedErrorCallback; 39 40 var emptyRequest = store.get('nonExistingKey'); 41 emptyRequest.onsuccess = nonExistingKey; 42 emptyRequest.onerror = unexpectedErrorCallback; 43 } 44 45 function populateObjectStore() 46 { 47 db = event.target.result; 48 deleteAllObjectStores(db); 49 window.objectStore = db.createObjectStore('storeName'); 50 var request = objectStore.add('myValue', 'myKey'); 51 request.onerror = unexpectedErrorCallback; 52 } 53 54 function test() { 55 indexedDBTest(populateObjectStore, startTransaction); 56 } 57