<html>
<head>
<script src="../fast/js/resources/js-test-pre.js"></script>
</head>
<body>
<script>

description("This tests requesting a quota using Quota API.");

function errorCallback(error)
{
    testFailed("Error occurred: " + error);
    finishJSTest();
}

var grantedQuota;
function quotaCallback(newQuota)
{
    grantedQuota = newQuota;

    // We must be given 0 quota, the same amount as we requested.
    shouldBe("grantedQuota", "0");

    finishJSTest();
}

if (navigator.webkitTemporaryStorage) {
    window.jsTestIsAsync = true;

    // Requesting '0' quota for testing (this request must be almost always granted without showing any platform specific notification UI).
    navigator.webkitTemporaryStorage.requestQuota(0, quotaCallback, errorCallback);
}

window.successfullyParsed = true;

</script>
<script src="../fast/js/resources/js-test-post.js"></script>
</body>
</html>
