Home | History | Annotate | Download | only in indexeddb
      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 
      6 function cursorSuccess()
      7 {
      8     debug("Cursor opened successfully.")
      9     // FIXME: check that we can iterate the cursor.
     10     shouldBe("event.target.result.direction", "'next'");
     11     shouldBe("event.target.result.key", "'myKey' + count");
     12     shouldBe("event.target.result.value.keyPath", "'myKey' + count");
     13     shouldBe("event.target.result.value.value", "'myValue' + count");
     14     if (++count >= 5)
     15         done();
     16     else
     17         openCursor();
     18 }
     19 
     20 function openCursor()
     21 {
     22     debug("Opening cursor #" + count);
     23     keyRange = webkitIDBKeyRange.lowerBound("myKey" + count);
     24     request = objectStore.openCursor(keyRange);
     25     request.onsuccess = cursorSuccess;
     26     request.onerror = unexpectedErrorCallback;
     27 }
     28 
     29 function populateObjectStore()
     30 {
     31     debug("Populating object store #" + count);
     32     obj = {'keyPath': 'myKey' + count, 'value': 'myValue' + count};
     33     request = objectStore.add(obj);
     34     request.onerror = unexpectedErrorCallback;
     35     if (++count >= 5) {
     36         count = 0;
     37         request.onsuccess = openCursor;
     38     } else {
     39         request.onsuccess = populateObjectStore;
     40     }
     41 }
     42 
     43 function createObjectStore()
     44 {
     45     debug('createObjectStore');
     46     db = event.target.result;
     47     window.objectStore = db.createObjectStore('test', {keyPath: 'keyPath'});
     48     count = 0;
     49     populateObjectStore();
     50 }
     51 
     52 function test()
     53 {
     54     indexedDBTest(createObjectStore);
     55 }
     56