<!DOCTYPE html>
<meta charset=utf-8>
<title>IDBObjectStore.count() - returns the number of records in the object store </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, t = async_test();

    var open_rq = createdb(t);

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

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

    open_rq.onsuccess = function(e) {
        var rq = db.transaction("store")
                   .objectStore("store")
                   .count();

        rq.onsuccess = t.step_func(function(e) {
            assert_equals(e.target.result, 10);
            t.done();
        });
    }
</script>

<div id=log></div>
