| <!DOCTYPE html> |
| <html> |
| <!-- |
| Copyright 2014 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| <head> |
| <title>IDB test that db's corrupted while open are properly handled Part 2 / 2</title> |
| <script type="text/javascript" src="common.js"></script> |
| <script> |
| |
| function test() { |
| dbname = "corrupted_open_db_detection.html"; |
| request = indexedDB.open(dbname); |
| request.onupgradeneeded = upgradeNeeded; |
| request.onsuccess = onSuccess; |
| request.onerror = unexpectedErrorCallback; |
| request.onblocked = unexpectedBlockedCallback; |
| } |
| |
| var gotUpgradeNeeded = false; |
| function upgradeNeeded(evt) { |
| event = evt; |
| shouldBe("event.dataLoss", "'total'"); |
| shouldBeTrue('event.dataLossMessage.startsWith("IndexedDB (database was corrupt): ")'); |
| gotUpgradeNeeded = true; |
| } |
| |
| function onSuccess(event) { |
| db = event.target.result; |
| debug("The pre-existing leveldb has an objectStore in 'database-basics',"); |
| debug("ensure that it was blown away"); |
| shouldBe("db.objectStoreNames.length", "0"); |
| debug("We should have gotten an upgradeneeded event because the new empty"); |
| debug("database doesn't have a version."); |
| shouldBeTrue("gotUpgradeNeeded"); |
| done(); |
| } |
| |
| </script> |
| </head> |
| <body onLoad="test()"> |
| <div id="status">Starting...</div> |
| </body> |
| </html> |