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

content / test / data / indexeddb / corrupted_open_db_recovery.html [blame]

<!DOCTYPE html>
<html>
<!--
Copyright 2014 The Chromium Authors
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>