test_mutableFileUpgrade.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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 dbNames = [
  9. "No files",
  10. "Blobs and mutable files"
  11. ]
  12. const version = 1;
  13. const objectStoreName = "test";
  14. clearAllDatabases(continueToNextStepSync);
  15. yield undefined;
  16. installPackagedProfile("mutableFileUpgrade_profile");
  17. let request = indexedDB.open(dbNames[0], version);
  18. request.onerror = errorHandler;
  19. request.onupgradeneeded = unexpectedSuccessHandler;
  20. request.onsuccess = grabEventAndContinueHandler;
  21. let event = yield undefined;
  22. is(event.type, "success", "Correct event type");
  23. let db = event.target.result;
  24. db.onerror = errorHandler;
  25. request = db.transaction([objectStoreName])
  26. .objectStore(objectStoreName)
  27. .get(1);
  28. request.onsuccess = grabEventAndContinueHandler;
  29. event = yield undefined;
  30. is(event.target.result, "text", "Correct result");
  31. request = indexedDB.open(dbNames[1], version);
  32. request.onerror = errorHandler;
  33. request.onupgradeneeded = unexpectedSuccessHandler;
  34. request.onsuccess = grabEventAndContinueHandler;
  35. event = yield undefined;
  36. is(event.type, "success", "Correct event type");
  37. db = event.target.result;
  38. db.onerror = errorHandler;
  39. request = db.transaction([objectStoreName])
  40. .objectStore(objectStoreName)
  41. .get(1);
  42. request.onsuccess = grabEventAndContinueHandler;
  43. event = yield undefined;
  44. is(event.target.result, "text", "Correct result");
  45. request = db.transaction([objectStoreName])
  46. .objectStore(objectStoreName)
  47. .get(2);
  48. request.onsuccess = grabEventAndContinueHandler;
  49. event = yield undefined;
  50. verifyBlob(event.target.result, getBlob("blob0"));
  51. yield undefined;
  52. request = db.transaction([objectStoreName])
  53. .objectStore(objectStoreName)
  54. .get(3);
  55. request.onsuccess = grabEventAndContinueHandler;
  56. event = yield undefined;
  57. let result = event.target.result;
  58. verifyBlob(result[0], getBlob("blob1"));
  59. yield undefined;
  60. verifyBlob(result[1], getBlob("blob2"));
  61. yield undefined;
  62. request = db.transaction([objectStoreName])
  63. .objectStore(objectStoreName)
  64. .get(4);
  65. request.onsuccess = grabEventAndContinueHandler;
  66. event = yield undefined;
  67. verifyMutableFile(event.target.result, getFile("mutablefile0", "", ""));
  68. yield undefined;
  69. request = db.transaction([objectStoreName])
  70. .objectStore(objectStoreName)
  71. .get(5);
  72. request.onsuccess = grabEventAndContinueHandler;
  73. event = yield undefined;
  74. result = event.target.result;
  75. verifyMutableFile(result[0], getFile("mutablefile1", "", ""));
  76. yield undefined;
  77. verifyMutableFile(result[1], getFile("mutablefile2", "", ""));
  78. yield undefined;
  79. request = db.transaction([objectStoreName])
  80. .objectStore(objectStoreName)
  81. .get(6);
  82. request.onsuccess = grabEventAndContinueHandler;
  83. event = yield undefined;
  84. result = event.target.result;
  85. verifyBlob(result[0], getBlob("blob3"));
  86. yield undefined;
  87. verifyMutableFile(result[1], getFile("mutablefile3", "", ""));
  88. yield undefined;
  89. finishTest();
  90. yield undefined;
  91. }