summaryrefslogtreecommitdiffstats
path: root/chrome/test/data/indexeddb/cursor_test.js
blob: eb6f31c582d383e2724a1ae3d17cadd2d61849e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
function emptyCursorSuccess()
{
  debug('Empty cursor opened successfully.')
  // TODO(bulach): check that we can iterate the cursor.
  done();
}

function openEmptyCursor()
{
  debug('Opening an empty cursor.');
  keyRange = IDBKeyRange.leftBound('InexistentKey');
  result = objectStore.openCursor(keyRange);
  result.onsuccess = emptyCursorSuccess;
  result.onerror = unexpectedErrorCallback;
}

function cursorSuccess()
{
  debug('Cursor opened successfully.');
  shouldBe("event.result.direction", "0");
  shouldBe("event.result.key", "'myKey'");
  shouldBe("event.result.value", "'myValue'");
  openEmptyCursor();
}

function openCursor(objectStore)
{
  debug('Opening cursor');
  var keyRange = IDBKeyRange.leftBound('myKey');
  var result = objectStore.openCursor(keyRange);
  result.onsuccess = cursorSuccess;
  result.onerror = unexpectedErrorCallback;
}

function dataAddedSuccess()
{
  debug('Data added');
  openCursor(objectStore);
}

function populateObjectStore()
{
  debug('Populating object store');
  objectStore = event.result;
  var result = objectStore.add('myValue', 'myKey');
  result.onsuccess = dataAddedSuccess();
  result.onerror = unexpectedErrorCallback;
}

function openSuccess()
{
  debug('Creating object store');
  var db = event.result;
  var result = db.createObjectStore('test');
  result.onsuccess = populateObjectStore;
  result.onerror = unexpectedErrorCallback;
}

function test()
{
  debug('Connecting to indexedDB');
  var result = indexedDB.open('name', 'description');
  result.onsuccess = openSuccess;
  result.onerror = unexpectedErrorCallback;
}