Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(543)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/web-platform-tests/IndexedDB/support.js

Issue 1984023002: Move web-platform-tests to wpt (part 1 of 2) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 var databaseName = "database";
2 var databaseVersion = 1;
3
4 /* Delete created databases
5 *
6 * Go through each finished test, see if it has an associated database. Close
7 * that and delete the database. */
8 add_completion_callback(function(tests)
9 {
10 for (var i in tests)
11 {
12 if(tests[i].db)
13 {
14 tests[i].db.close();
15 window.indexedDB.deleteDatabase(tests[i].db.name);
16 }
17 }
18 });
19
20 function fail(test, desc) {
21 return test.step_func(function(e) {
22 if (e && e.message && e.target.error)
23 assert_unreached(desc + " (" + e.target.error.name + ": " + e.messag e + ")");
24 else if (e && e.message)
25 assert_unreached(desc + " (" + e.message + ")");
26 else if (e && e.target.readyState === 'done' && e.target.error)
27 assert_unreached(desc + " (" + e.target.error.name + ")");
28 else
29 assert_unreached(desc);
30 });
31 }
32
33 function createdb(test, dbname, version)
34 {
35 var rq_open = createdb_for_multiple_tests(dbname, version);
36 return rq_open.setTest(test);
37 }
38
39 function createdb_for_multiple_tests(dbname, version) {
40 var rq_open,
41 fake_open = {},
42 test = null,
43 dbname = (dbname ? dbname : "testdb-" + new Date().getTime() + Math.rand om() );
44
45 if (version)
46 rq_open = window.indexedDB.open(dbname, version);
47 else
48 rq_open = window.indexedDB.open(dbname);
49
50 function auto_fail(evt, current_test) {
51 /* Fail handlers, if we haven't set on/whatever/, don't
52 * expect to get event whatever. */
53 rq_open.manually_handled = {}
54
55 rq_open.addEventListener(evt, function(e) {
56 if (current_test !== test) {
57 return;
58 }
59
60 test.step(function() {
61 if (!rq_open.manually_handled[evt]) {
62 assert_unreached("unexpected open." + evt + " event");
63 }
64
65 if (e.target.result + "" == "[object IDBDatabase]" && !this.db) {
66 this.db = e.target.result;
67
68 this.db.onerror = fail(test, "unexpected db.error");
69 this.db.onabort = fail(test, "unexpected db.abort");
70 this.db.onversionchange = fail(test, "unexpected db.versionc hange");
71 }
72 })
73 })
74 rq_open.__defineSetter__("on" + evt, function(h) {
75 rq_open.manually_handled[evt] = true;
76 if (!h)
77 rq_open.addEventListener(evt, function() {});
78 else
79 rq_open.addEventListener(evt, test.step_func(h));
80 })
81 }
82
83 // add a .setTest method to the DB object
84 Object.defineProperty(rq_open, 'setTest', {
85 enumerable: false,
86 value: function(t) {
87 test = t;
88
89 auto_fail("upgradeneeded", test);
90 auto_fail("success", test);
91 auto_fail("blocked", test);
92 auto_fail("error", test);
93
94 return this;
95 }
96 });
97
98 return rq_open;
99 }
100
101 function assert_key_equals(actual, expected, description) {
102 assert_equals(indexedDB.cmp(actual, expected), 0, description);
103 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698