<!DOCTYPE html>
<html>
<head>
<script>
function log(message)
{
    document.getElementById('console').appendChild(document.createTextNode(message + "\n"));
}

function test()
{
    log("Test calling revokeObjectURL with no argument.");
    try {
        var url = URL.revokeObjectURL();
        log("FAIL");
    } catch(err) {
        log("PASS: " + err.message);
    }

    log("Test calling revokeObjectURL with empty URL.");
    URL.revokeObjectURL("");
    log("PASS");

    log("Test calling revokeObjectURL with invalid URL.");
    URL.revokeObjectURL("[foo bar]");
    log("PASS");

    log("Test calling revokeObjectURL with non-existent URL.");
    URL.revokeObjectURL("blob:non-existent");
    log("PASS");

    log("DONE");
}

if (window.testRunner)
    testRunner.dumpAsText();
</script>
</head>
<body onload="test()">
<pre id='console'></pre>
</body>
</html>
