corrupted_open_db_recovery.html revision e5d81f57cb97b3b6b7fccc9c5610d21eb81db09d
1<!DOCTYPE html> 2<html> 3<!-- 4 Copyright 2014 The Chromium Authors. All rights reserved. 5 Use of this source code is governed by a BSD-style license that can be 6 found in the LICENSE file. 7--> 8<head> 9<title>IDB test that db's corrupted while open are properly handled Part 2 / 2</title> 10<script type="text/javascript" src="common.js"></script> 11<script> 12 13function test() { 14 dbname = "corrupted_open_db_detection.html"; 15 request = webkitIndexedDB.open(dbname); 16 request.onupgradeneeded = upgradeNeeded; 17 request.onsuccess = onSuccess; 18 request.onerror = unexpectedErrorCallback; 19 request.onblocked = unexpectedBlockedCallback; 20} 21 22var gotUpgradeNeeded = false; 23function upgradeNeeded(evt) { 24 event = evt; 25 shouldBe("event.dataLoss", "'total'"); 26 shouldBeTrue('event.dataLossMessage.startsWith("IndexedDB (database was corrupt): ")'); 27 gotUpgradeNeeded = true; 28} 29 30function onSuccess(event) { 31 db = event.target.result; 32 debug("The pre-existing leveldb has an objectStore in 'database-basics',"); 33 debug("ensure that it was blown away"); 34 shouldBe("db.objectStoreNames.length", "0"); 35 debug("We should have gotten an upgradeneeded event because the new empty"); 36 debug("database doesn't have a version."); 37 shouldBeTrue("gotUpgradeNeeded"); 38 done(); 39} 40 41</script> 42</head> 43<body onLoad="test()"> 44<div id="status">Starting...</div> 45</body> 46</html> 47