<!DOCTYPE html>
<html>
<head>
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
<script src="resources/audit-utilities.js"></script>
<script>

function test()
{
    let suite = InspectorTest.Audit.createSuite("Audit.setup");

    suite.addTestCase({
        name: "Audit.setup.Invalid.SequentialCalls",
        description: "Check that additional calls to Audit.setup fail.",
        async test() {
            await InspectorTest.Audit.setupAudit();
            await InspectorTest.expectException(async () => {
                await InspectorTest.Audit.setupAudit();
            });
            await InspectorTest.Audit.teardownAudit();
        },
    });

    suite.runTestCasesAndFinish();
}
</script>
</head>
<body onload="runTest()">
    <p>Tests for the Audit.setup command.</p>
</body>
</html>
