<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>window.performance User Timing exists</title>
        <link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
        <link rel="help" href="http://www.w3.org/TR/user-timing/"/>
        <script src="/resources/testharness.js"></script>
        <script src="/resources/testharnessreport.js"></script>
        <script src="resources/webperftestharness.js"></script>

    </head>
    <body>
        <h1>Description</h1>
        <p>This test validates that all of the methods used to interact with the User Timing API are defined.</p>

        <div id="log"></div>

        <script>
        test_namespace();

        test_true(window.performance.mark !== undefined, "window.performance.mark is defined.");
        test_true(window.performance.clearMarks !== undefined, "window.performance.clearMarks is defined.");
        test_true(window.performance.measure !== undefined, "window.performance.measure is defined.");
        test_true(window.performance.clearMeasures !== undefined, "window.performance.clearMeasures is defined.");
        </script>
    </body>
</html>
