test_index_empty_keyPath.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /**
  2. * Any copyright is dedicated to the Public Domain.
  3. * http://creativecommons.org/publicdomain/zero/1.0/
  4. */
  5. var testGenerator = testSteps();
  6. function testSteps()
  7. {
  8. const name = this.window ? window.location.pathname : "Splendid Test";
  9. const objectStoreData = [
  10. { key: "1", value: "foo" },
  11. { key: "2", value: "bar" },
  12. { key: "3", value: "baz" }
  13. ];
  14. let request = indexedDB.open(name, 1);
  15. request.onerror = errorHandler;
  16. request.onupgradeneeded = grabEventAndContinueHandler;
  17. request.onsuccess = grabEventAndContinueHandler;
  18. let event = yield undefined; // upgradeneeded
  19. let db = event.target.result;
  20. let objectStore = db.createObjectStore("data", { keyPath: null });
  21. // First, add all our data to the object store.
  22. let addedData = 0;
  23. for (let i in objectStoreData) {
  24. request = objectStore.add(objectStoreData[i].value,
  25. objectStoreData[i].key);
  26. request.onerror = errorHandler;
  27. request.onsuccess = function(event) {
  28. if (++addedData == objectStoreData.length) {
  29. testGenerator.send(event);
  30. }
  31. }
  32. }
  33. event = yield undefined; // testGenerator.send
  34. // Now create the index.
  35. objectStore.createIndex("set", "", { unique: true });
  36. yield undefined; // success
  37. let trans = db.transaction("data", "readwrite");
  38. objectStore = trans.objectStore("data");
  39. index = objectStore.index("set");
  40. request = index.get("bar");
  41. request.onerror = errorHandler;
  42. request.onsuccess = grabEventAndContinueHandler;
  43. event = yield undefined;
  44. is(event.target.result, "bar", "Got correct result");
  45. request = objectStore.add("foopy", 4);
  46. request.onerror = errorHandler;
  47. request.onsuccess = grabEventAndContinueHandler;
  48. yield undefined;
  49. request = index.get("foopy");
  50. request.onerror = errorHandler;
  51. request.onsuccess = grabEventAndContinueHandler;
  52. event = yield undefined;
  53. is(event.target.result, "foopy", "Got correct result");
  54. request = objectStore.add("foopy", 5);
  55. request.addEventListener("error", new ExpectError("ConstraintError", true));
  56. request.onsuccess = unexpectedSuccessHandler;
  57. trans.oncomplete = grabEventAndContinueHandler;
  58. yield undefined;
  59. yield undefined;
  60. finishTest();
  61. yield undefined;
  62. }