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 5function finalTransactionCompleted() 6{ 7 debug('The final transaction completed.'); 8 done(); 9} 10 11function finalTransactionAborted() 12{ 13 fail('The final transaction should not abort.'); 14} 15 16function employeeNotFound() 17{ 18 debug('Employee not found.'); 19 shouldBe("event.target.result", "undefined"); 20} 21 22function newTransactionAborted() 23{ 24 debug('The transaction was aborted.'); 25 26 var finalTransaction = db.transaction(['employees'], 27 'readonly'); 28 finalTransaction.oncomplete = finalTransactionCompleted; 29 finalTransaction.onabort = finalTransactionAborted; 30 31 var request = finalTransaction.objectStore('employees').get(0); 32 request.onsuccess = employeeNotFound; 33 request.onerror = unexpectedErrorCallback; 34} 35 36function newTransactionCompleted() 37{ 38 fail('The new transaction should not complete.'); 39} 40 41function employeeAdded() 42{ 43 debug('Added an employee inside the transaction.'); 44 newTransaction.abort(); 45} 46 47function onSetVersionComplete() 48{ 49 debug('Creating new transaction.'); 50 window.newTransaction = db.transaction(['employees'], 51 'readwrite'); 52 newTransaction.oncomplete = newTransactionCompleted; 53 newTransaction.onabort = newTransactionAborted; 54 55 var request = newTransaction.objectStore('employees').put( 56 {id: 0, name: 'John Doe', desk: 'LON-BEL-123'}); 57 request.onsuccess = employeeAdded; 58 request.onerror = unexpectedErrorCallback; 59} 60 61function onSetVersion() 62{ 63 // We are now in a set version transaction. 64 window.db = event.target.result; 65 debug('Creating object store.'); 66 deleteAllObjectStores(db); 67 db.createObjectStore('employees', {keyPath: 'id'}); 68} 69 70function test() 71{ 72 if ('webkitIndexedDB' in window) { 73 indexedDB = webkitIndexedDB; 74 IDBCursor = webkitIDBCursor; 75 IDBKeyRange = webkitIDBKeyRange; 76 IDBTransaction = webkitIDBTransaction; 77 } 78 indexedDBTest(onSetVersion, onSetVersionComplete); 79} 80