mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-07-07 10:29:03 +00:00
137 lines
6.4 KiB
HTML
137 lines
6.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<title>window.performance User Timing clearMeasures() method is working properly</title>
|
|
<link rel="author" title="Microsoft" href="http://www.microsoft.com/" />
|
|
<link rel="help" href="http://www.w3.org/TR/user-timing/#dom-performance-clearmeasures"/>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="resources/webperftestharness.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
// test measures
|
|
var measureName1 = "measure1";
|
|
var measureName2 = "measure2";
|
|
var measureName3 = "measureUndefined";
|
|
var measureTestDelay = 200;
|
|
var measureEntryNames;
|
|
var entries;
|
|
|
|
setup({explicit_done: true});
|
|
|
|
test_namespace();
|
|
|
|
function onload_test()
|
|
{
|
|
// test for existance of User Timing and Performance Timeline interface
|
|
if (window.performance.mark == undefined ||
|
|
window.performance.clearMarks == undefined ||
|
|
window.performance.measure == undefined ||
|
|
window.performance.clearMeasures == undefined ||
|
|
window.performance.getEntriesByName == undefined ||
|
|
window.performance.getEntriesByType == undefined ||
|
|
window.performance.getEntries == undefined)
|
|
{
|
|
test_true(false,
|
|
"The User Timing and Performance Timeline interfaces, which are required for this test, " +
|
|
"are defined.");
|
|
|
|
done();
|
|
}
|
|
else
|
|
{
|
|
// create measures using the test delay
|
|
setTimeout(measure_test_cb, measureTestDelay);
|
|
}
|
|
}
|
|
|
|
function measure_test_cb()
|
|
{
|
|
// create the test measures; only create "measure1" and "measure2", "measureUndefined" is a non-existent
|
|
// measure; give "measure1" a startMark of "navigationStart" and "measure2" a startMark of
|
|
// "responseEnd", this way, "measure1" always come first in a PerformanceEntryList returned from a
|
|
// Performance Timeline accessor
|
|
window.performance.measure(measureName1, "navigationStart");
|
|
window.performance.measure(measureName2, "responseEnd");
|
|
|
|
// test that two measures have been created
|
|
entries = window.performance.getEntriesByType("measure");
|
|
test_equals(entries.length, 2, "Two measures have been created for this test.");
|
|
|
|
// clear non-existent measure
|
|
window.performance.clearMeasures(measureName3);
|
|
|
|
// test that "measure1" still exists
|
|
entries = window.performance.getEntriesByName(measureName1);
|
|
test_true(entries[0].name == measureName1,
|
|
"After a call to window.performance.clearMeasures(\"" + measureName3 + "\"), where \"" + measureName3 +
|
|
"\" is a non-existent measure, window.performance.getEntriesByName(\"" + measureName1 + "\") " +
|
|
"returns an object containing the \"" + measureName1 + "\" measure.");
|
|
|
|
// test that "measure2" still exists
|
|
entries = window.performance.getEntriesByName(measureName2);
|
|
test_true(entries[0].name == measureName2,
|
|
"After a call to window.performance.clearMeasures(\"" + measureName3 + "\"), where \"" + measureName3 +
|
|
"\" is a non-existent measure, window.performance.getEntriesByName(\"" + measureName2 + "\") " +
|
|
"returns an object containing the \"" + measureName2 + "\" measure.");
|
|
|
|
// clear existent measure
|
|
window.performance.clearMeasures(measureName1);
|
|
|
|
// test that "measure1" was cleared
|
|
entries = window.performance.getEntriesByName(measureName1);
|
|
pass = true;
|
|
for (var i in entries)
|
|
{
|
|
pass = false;
|
|
}
|
|
test_true(pass,
|
|
"After a call to window.performance.clearMeasures(\"" + measureName1 + "\"), " +
|
|
"window.performance.getEntriesByName(\"" + measureName1 + "\") returns an empty object.");
|
|
|
|
// test that "measure2" still exists
|
|
entries = window.performance.getEntriesByName(measureName2);
|
|
test_true(entries[0].name == measureName2,
|
|
"After a call to window.performance.clearMeasures(\"" + measureName1 + "\"), " +
|
|
"window.performance.getEntriesByName(\"" + measureName2 + "\") returns an object containing the " +
|
|
"\"" + measureName2 + "\" measure.");
|
|
|
|
// clear all measures
|
|
window.performance.clearMeasures();
|
|
|
|
// test that all measures were cleared
|
|
entries = window.performance.getEntriesByType("measure");
|
|
pass = true;
|
|
for (var i in entries)
|
|
{
|
|
pass = false;
|
|
}
|
|
test_true(pass,
|
|
"After a call to window.performance.clearMeasures(), " +
|
|
"window.performance.getEntriesByType(\"measure\") returns an empty object.");
|
|
|
|
done();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="onload_test();">
|
|
<h1>Description</h1>
|
|
<p>This test validates that the performance.clearMeasures() method is working properly. This test creates the
|
|
following measures to test this method:
|
|
<ul>
|
|
<li>"measure1"</li>
|
|
<li>"measure2"</li>
|
|
</ul>
|
|
After creating each measure, performance.clearMeasures() is called three times. First, it is provided with a
|
|
name of "measureUndefined", a non-existent measure, which shouldn't change the state of the Performance
|
|
Timeline. Next, it is provided with a name of "measure2", after which, this measure should no longer be
|
|
present in the Performance Timeline. Finally, performance.clearMeasures() is called without any name
|
|
provided. After this call, no measures should be present in the Performance Timeline. The state of the
|
|
Performance Timeline is tested with the performance.getEntriesByType() and performance.getEntries() methods.
|
|
</p>
|
|
|
|
<div id="log"></div>
|
|
</body>
|
|
</html>
|