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

Unified Diff: third_party/WebKit/LayoutTests/storage/indexeddb/getdatabasenames-failed-open.html

Issue 2964743002: Revert "Indexed DB: Remove nonstandard IDBFactory.webkitGetDatabaseNames()" (Closed)
Patch Set: Undeprecate Created 3 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/storage/indexeddb/getdatabasenames-failed-open.html
diff --git a/third_party/WebKit/LayoutTests/storage/indexeddb/getdatabasenames-failed-open.html b/third_party/WebKit/LayoutTests/storage/indexeddb/getdatabasenames-failed-open.html
new file mode 100644
index 0000000000000000000000000000000000000000..3b436f5bf4a8d45080141dd5e2fdf6f9e3ac00ba
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/storage/indexeddb/getdatabasenames-failed-open.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<script src="../../resources/js-test.js"></script>
+<script src="resources/shared.js"></script>
+<script>
+
+description('webkitGetDatabaseNames should only return successfully created databases');
+
+function deleteDatabase(dbname)
+{
+ return new Promise(function(resolve, reject) {
+ var request = indexedDB.deleteDatabase(dbname);
+ request.onsuccess = function() {
+ resolve(request.result);
+ };
+ request.onerror = function() {
+ reject(request.error);
+ };
+ });
+}
+
+function getDatabaseNames()
+{
+ return new Promise(function(resolve, reject) {
+ var request = indexedDB.webkitGetDatabaseNames();
+ request.onsuccess = function() {
+ resolve(request.result);
+ };
+ request.onerror = function() {
+ reject(request.error);
+ };
+ });
+}
+
+function openDatabaseAndAbortUpgrade(dbname)
+{
+ return new Promise(function(resolve, reject) {
+ var request = indexedDB.open(dbname, 1);
+ request.onupgradeneeded = function() {
+ request.transaction.abort();
+ };
+ request.onsuccess = function() {
+ reject(new Error('Open should not succeed'));
+ };
+ request.onerror = function() {
+ resolve();
+ };
+ });
+ }
+
+setDBNameFromPath();
+deleteDatabase(dbname)
+ .then(getDatabaseNames)
+ .then(function(names) {
+ if (names.contains(dbname))
+ throw Error('Database should have been deleted if present');
+
+ return openDatabaseAndAbortUpgrade(dbname);
+ })
+ .then(getDatabaseNames)
+ .then(function(names) {
+ if (names.contains(dbname))
+ throw Error('Database name should not be present');
+
+ testPassed('Database name was not present');
+ finishJSTest();
+ })
+ .catch(function(reason) {
+ testFailed(reason.name + ': ' + reason.message);
+ finishJSTest();
+ });
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698