// Copyright (c) 2012 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.
function test()
{
if (document.location.hash === '#part1') {
testPart1();
} else if (document.location.hash === '#part2') {
testPart2();
} else {
result('fail - unexpected hash');
}
}
function testPart1()
{
var delreq = window.indexedDB.deleteDatabase('bug90635');
delreq.onerror = unexpectedErrorCallback;
delreq.onsuccess = function() {
var openreq = window.indexedDB.open('bug90635', 1);
openreq.onerror = unexpectedErrorCallback;
openreq.onblocked = unexpectedBlockedCallback;
openreq.onupgradeneeded = function(e) {
db = openreq.result;
var transaction = openreq.transaction;
transaction.onabort = unexpectedAbortCallback;
db.createObjectStore('store1');
db.createObjectStore('store2', {keyPath: ''});
db.createObjectStore('store3', {keyPath: 'some_path'});
};
openreq.onsuccess = function() {
test_store(db, 'first run');
};
};
}
function testPart2()
{
var openreq = window.indexedDB.open('bug90635');
openreq.onerror = unexpectedErrorCallback;
openreq.onsuccess = function(e) {
var db = openreq.result;
test_store(db, 'second run');
};
}
function test_store(db, msg) {
var transaction = db.transaction(['store1', 'store2', 'store3'], 'readonly');
var store1 = transaction.objectStore('store1');
var store2 = transaction.objectStore('store2');
var store3 = transaction.objectStore('store3');
if (store1.keyPath !== null ||
store2.keyPath !== '' ||
store3.keyPath !== 'some_path') {
result('fail - ' + msg);
} else {
result('pass - ' + msg);
}
}