blob: aabdc55a706a917f73fb965acdd4a7879b086ce2 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>window.performance.now exists</title>
<link rel="author" title="W3C" href="http://www.w3.org/" />
<link rel="help" href="http://www.w3.org/TR/hr-time/#sec-extenstions-performance-interface"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="stylesheet" href="/resources/testharness.css" />
<script>
test(function() {
assert_equals(typeof window.performance, "object");
}, "window.performance is defined", {assert: "The window.performance attribute provides a hosting area for performance related attributes."});
test(function() {
assert_not_equals(window.performance.now, undefined, 'window.performance.now is defined');
}, "High Resolution Time extension to the Performance interface", {assert: "window.performance.now exists"});
test(function() {
assert_equals(typeof window.performance.now, "function", "window.performance.now is a function");
}, "window.performance.now() function", {assert: "window.performance.now is a function"});
test(function() {
assert_equals(typeof window.performance.now(), "number", "window.performance.now() returns a number");
}, "window.performance.now() returns a number", {assert: "The now method MUST return a DOMHighResTimeStamp"});
async_test(function() {
// Check whether the performance.now() method is close to Date() within 30ms (due to inaccuracies)
var initial_hrt = performance.now();
var initial_date = Date.now();
setTimeout(this.step_func(function() {
var final_hrt = performance.now();
var final_date = Date.now();
assert_approx_equals(final_hrt - initial_hrt, final_date - initial_date, 30, 'High resolution time value increased by approximately the same amount as time from date object');
this.done();
}), 2000);
}, 'High resolution time has approximately the right relative magnitude');
</script>
</head>
<body>
<h1>Description</h1>
<p>This test validates that window.performance.now() exist and is a function.</p>
<div id="log"></div>
</body>
</html>