summaryrefslogtreecommitdiffstats
path: root/dom/indexedDB/test/unit/test_setVersion.js
blob: f1b50e7bb19a53af619c8e4c45e1ba36a7710cb9 (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
/**
 * Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/
 */

/* exported testGenerator */
var testGenerator = testSteps();

function* testSteps() {
  const name = this.window ? window.location.pathname : "Splendid Test";

  let request = indexedDB.open(name, 1);
  request.onerror = errorHandler;
  request.onsuccess = grabEventAndContinueHandler;
  let event = yield undefined;

  let db = event.target.result;
  db.close();

  // Check default state.
  is(db.version, 1, "Correct default version for a new database.");

  const versions = [7, 42];

  for (let i = 0; i < versions.length; i++) {
    let version = versions[i];

    let request = indexedDB.open(name, version);
    request.onerror = errorHandler;
    request.onupgradeneeded = grabEventAndContinueHandler;
    request.onsuccess = grabEventAndContinueHandler;
    let event = yield undefined;

    let db = event.target.result;

    is(db.version, version, "Database version number updated correctly");
    is(event.target.transaction.mode, "versionchange", "Correct mode");

    // Wait for success
    yield undefined;

    db.close();
  }

  finishTest();
}