<!DOCTYPE html>
<title>IndexedDB: Regression test - create store/put/delete store should not crash</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
var t = async_test('Create store/put/delete store should not crash');
t.step(function() {
    var dbName = 'db' + location.pathname;
    var deleteRequest = indexedDB.deleteDatabase(dbName);
    deleteRequest.onsuccess = t.step_func(function() {
        var openRequest = indexedDB.open(dbName);
        openRequest.onupgradeneeded = t.step_func(function(e) {
            var db = openRequest.result;
            var store = db.createObjectStore('store');
            store.put('value', 'key');
            db.deleteObjectStore('store');
        });
        openRequest.onsuccess = t.step_func(function(e) {
            var db = openRequest.result;
            assert_array_equals(db.objectStoreNames, []);
            t.done();
        });
    });
});
</script>
