• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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