https://github.com/web-platform-tests/wpt
Raw File
Tip revision: d82577659f6502e95610c654b65ea20a76b22baa authored by David Grogan on 06 July 2018, 23:21:12 UTC
[css-tables] Test for table width when cell is sized between its min/max
Tip revision: d825776
idbversionchangeevent.htm
<!DOCTYPE html>
<title>IDBVersionChangeEvent fired in upgradeneeded, versionchange and deleteDatabase</title>
<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#versionchange--transaction-steps">
<link rel=assert title="Fire a versionchange event at each object in openDatabases that is open. The event must not be fired on objects which has the closePending flag set. The event must use the IDBVersionChangeEvent interface and have the oldVersion property set to db's version and have the newVersion property set to version.">
<link rel=assert title="Fire a upgradeneeded event targeted at request. The event must use the IDBVersionChangeEvent interface and have the oldVersion property set to old version and have the newVersion property set to version.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support.js"></script>

<div id="log"></div>

<script>

    var db,
        t = async_test(document.title, {timeout: 10000});

    t.step(function() {
        var openrq = indexedDB.open('db', 3);

        openrq.onupgradeneeded = t.step_func(function(e) {
            assert_equals(e.oldVersion, 0, "old version (upgradeneeded)");
            assert_equals(e.newVersion, 3, "new version (upgradeneeded)");
            assert_true(e instanceof IDBVersionChangeEvent, "upgradeneeded instanceof IDBVersionChangeEvent");
        });

        openrq.onsuccess = t.step_func(function(e) {
            db = e.target.result;

            db.onversionchange = t.step_func(function(e) {
                assert_equals(e.oldVersion, 3, "old version (versionchange)");
                assert_equals(e.newVersion, null, "new version (versionchange)");
                assert_true(e instanceof IDBVersionChangeEvent, "versionchange instanceof IDBVersionChangeEvent");
                db.close();
            });

            // Errors
            db.onerror = fail(t, "db.error");
            db.onabort = fail(t, "db.abort");

            setTimeout(t.step_func(deleteDB), 10);
        });

        // Errors
        openrq.onerror = fail(t, "open.error");
        openrq.onblocked = fail(t, "open.blocked");

    });

    function deleteDB (e) {
        var deleterq = indexedDB.deleteDatabase('db');

        deleterq.onsuccess = t.step_func(function(e) {
            assert_equals(e.result, undefined, "result (delete.success for nonexistent db)");
            assert_equals(e.oldVersion, 3, "old version (delete.success)");
            assert_equals(e.newVersion, null, "new version (delete.success)");
            assert_true(e instanceof IDBVersionChangeEvent, "delete.success instanceof IDBVersionChangeEvent");

            setTimeout(deleteNonExistentDB, 10);
        });

        // Errors
        deleterq.onerror = fail(t, "delete.error");
        deleterq.onblocked = fail(t, "delete.blocked");
    }

    function deleteNonExistentDB (e) {
        var deleterq = indexedDB.deleteDatabase('db-does-not-exist');

        deleterq.onsuccess = t.step_func(function(e) {
            assert_equals(e.result, undefined, "result (delete.success for nonexistent db)");
            assert_equals(e.oldVersion, 0, "old version (delete.success for nonexistent db)");
            assert_equals(e.newVersion, null, "new version (delete.success for nonexistent db)");
            assert_true(e instanceof IDBVersionChangeEvent, "delete.success instanceof IDBVersionChangeEvent");

            setTimeout(function() { t.done(); }, 10);
        });

        // Errors
        deleterq.onerror = fail(t, "delete.error");
        deleterq.onblocked = fail(t, "delete.blocked");
    }

</script>
back to top