<!DOCTYPE html>
<title>IDBObjectStore.delete() - removes all of the records in the range</title>
<link rel="author" title="Microsoft" href="http://www.microsoft.com">
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src=support.js></script>
<script>
    var db
    var open_rq = createdb(async_test())

    open_rq.onupgradeneeded = function(e) {
        db = e.target.result
        var os = db.createObjectStore("store")

        for(var i = 0; i < 10; i++)
            os.add("data" + i, i)
    }

    open_rq.onsuccess = function (e) {
        var os = db.transaction("store", "readwrite")
                   .objectStore("store")

        os.delete( IDBKeyRange.bound(3, 6) )
        os.count().onsuccess = this.step_func(function(e)
        {
            assert_equals(e.target.result, 6, "Count after deleting 3-6 from 10");
            this.done();
        })
    }
</script>

<div id=log></div>
