<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script>
function test()
{
    var inspectorJson = {"domains": [{
        "domain": "Page",
        "types": [{
            "id": "ResourceType",
            "type": "string",
            "enum": ["Document", "XHR", "console-api", "other"]
        }],
        "commands": [{
            "name": "addScriptToEvaluateOnLoad",
            "parameters": [
                {"name": "scriptSource", "type": "string"}
            ],
            "returns": [
                {"name": "identifier", "type": "string"}
            ]
        }],
        "events": [{
            "name": "domContentEventFired",
            "parameters": [
                {"name": "timestamp", "type": "number"}
            ]
        }]
    }]};
    var commands = InspectorBackendClass._generateCommands(inspectorJson);
    InspectorTest.addResult(commands);
    InspectorTest.completeTest();
}
</script>
</head>
<body onload="runTest()">
<p>Tests correctness of code generated by InspectorBackend.</p>
</body>
</html>
