text: // Copyright (c) 2012 The Chromium Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style license that can be
  // found in the LICENSE file.
  
  
  function cursorSuccess()
  {
      debug("Cursor opened successfully.")
      // FIXME: check that we can iterate the cursor.
      shouldBe("event.target.result.direction", "'next'");
      shouldBe("event.target.result.key", "'myKey' + count");
      shouldBe("event.target.result.value.keyPath", "'myKey' + count");
      shouldBe("event.target.result.value.value", "'myValue' + count");
      if (++count >= 5)
          done();
      else
          openCursor();
  }
  
  function openCursor()
  {
      debug("Opening cursor #" + count);
      keyRange = webkitIDBKeyRange.lowerBound("myKey" + count);
      request = objectStore.openCursor(keyRange);
      request.onsuccess = cursorSuccess;
      request.onerror = unexpectedErrorCallback;
  }
  
  function populateObjectStore()
  {
      debug("Populating object store #" + count);
      obj = {'keyPath': 'myKey' + count, 'value': 'myValue' + count};
      request = objectStore.add(obj);
      request.onerror = unexpectedErrorCallback;
      if (++count >= 5) {
          count = 0;
          request.onsuccess = openCursor;
      } else {
          request.onsuccess = populateObjectStore;
      }
  }
  
  function createObjectStore()
  {
      debug('createObjectStore');
      db = event.target.result;
      window.objectStore = db.createObjectStore('test', {keyPath: 'keyPath'});
      count = 0;
      populateObjectStore();
  }
  
  function test()
  {
      indexedDBTest(createObjectStore);
  }
  