mirror of
https://github.com/servo/servo.git
synced 2025-06-23 16:44:33 +01:00
175 lines
5.4 KiB
HTML
175 lines
5.4 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Sample HTML5 API Tests</title>
|
|
<meta name="timeout" content="6000">
|
|
</head>
|
|
<body onload="load_test_attr.done()">
|
|
<h1>Sample HTML5 API Tests</h1>
|
|
<div id="log"></div>
|
|
<script src="../testharness.js"></script>
|
|
<script src="../testharnessreport.js"></script>
|
|
<script>
|
|
setup_run = false;
|
|
setup(function() {
|
|
setup_run = true;
|
|
});
|
|
test(function() {assert_true(setup_run)}, "Setup function ran");
|
|
|
|
// Two examples for testing events from handler and attributes
|
|
var load_test_event = async_test("window onload event fires when set from the handler");
|
|
|
|
function windowLoad()
|
|
{
|
|
load_test_event.done();
|
|
}
|
|
on_event(window, "load", windowLoad);
|
|
|
|
// see the body onload below
|
|
var load_test_attr = async_test("body element fires the onload event set from the attribute");
|
|
</script>
|
|
<script>
|
|
function bodyElement()
|
|
{
|
|
assert_equals(document.body, document.getElementsByTagName("body")[0]);
|
|
}
|
|
test(bodyElement, "document.body should be the first body element in the document");
|
|
|
|
test(function() {
|
|
assert_equals(1,1);
|
|
assert_equals(NaN, NaN, "NaN case");
|
|
assert_equals(0, 0, "Zero case");
|
|
}, "assert_equals tests")
|
|
|
|
test(function() {
|
|
assert_equals(-0, 0, "Zero case");
|
|
}, "assert_equals tests expected to fail")
|
|
|
|
test(function() {
|
|
assert_not_equals({}, {}, "object case");
|
|
assert_not_equals(-0, 0, "Zero case");
|
|
}, "assert_not_equals tests")
|
|
|
|
function testAssertPass()
|
|
{
|
|
assert_true(true);
|
|
}
|
|
test(testAssertPass, "assert_true expected to pass");
|
|
|
|
function testAssertFalse()
|
|
{
|
|
assert_true(false, "false should not be true");
|
|
}
|
|
test(testAssertFalse, "assert_true expected to fail");
|
|
|
|
function basicAssertArrayEquals()
|
|
{
|
|
assert_array_equals([1, NaN], [1, NaN], "[1, NaN] is equal to [1, NaN]");
|
|
}
|
|
test(basicAssertArrayEquals, "basic assert_array_equals test");
|
|
|
|
function basicAssertObjectEquals()
|
|
{
|
|
assert_object_equals([1, 2, [1, 2]], { 0: 1, 1: 2, 2: { 0: 1, 1: 2} }, "array is equal to object")
|
|
}
|
|
test(basicAssertObjectEquals, "basic assert_object_equals test");
|
|
|
|
function basicAssertApproxEquals()
|
|
{
|
|
assert_approx_equals(10, 11, 1, "10 is approximately (+/- 1) 11")
|
|
}
|
|
test(basicAssertApproxEquals, "basic assert_approx_equals test");
|
|
|
|
function basicAssertLessThan()
|
|
{
|
|
assert_less_than(10, 11, "10 is less than 11")
|
|
}
|
|
test(basicAssertApproxEquals, "basic assert_less_than test");
|
|
|
|
function basicAssertGreaterThan()
|
|
{
|
|
assert_greater_than(10, 11, "10 is not greater than 11");
|
|
}
|
|
test(basicAssertGreaterThan, "assert_greater_than expected to fail");
|
|
|
|
function basicAssertGreaterThanEqual()
|
|
{
|
|
assert_greater_than_equal(10, 10, "10 is greater than or equal to 10")
|
|
}
|
|
test(basicAssertGreaterThanEqual, "basic assert_greater_than_equal test");
|
|
|
|
function basicAssertLessThanEqual()
|
|
{
|
|
assert_greater_than_equal('10', 10, "'10' is not a number")
|
|
}
|
|
test(basicAssertLessThanEqual, "assert_less_than_equal expected to fail");
|
|
|
|
function testAssertInherits() {
|
|
var A = function(){this.a = "a"}
|
|
A.prototype = {b:"b"}
|
|
var a = new A();
|
|
assert_exists(a, "a");
|
|
assert_not_exists(a, "b");
|
|
assert_inherits(a, "b");
|
|
}
|
|
test(testAssertInherits, "test for assert[_not]_exists and insert_inherits")
|
|
|
|
test(function()
|
|
{
|
|
var a = document.createElement("a")
|
|
var b = document.createElement("b")
|
|
assert_throws("NOT_FOUND_ERR", function(){a.removeChild(b)});
|
|
}, "Test throw DOM exception")
|
|
|
|
test(function()
|
|
{
|
|
var a = document.createTextNode("a")
|
|
var b = document.createElement("b")
|
|
assert_throws("NOT_FOUND_ERR", function(){a.appendChild(b)});
|
|
}, "Test throw DOM exception expected to fail")
|
|
|
|
test(function()
|
|
{
|
|
var e = {code:0, name:"TEST_ERR", TEST_ERR:0}
|
|
assert_throws("TEST_ERR", function() {throw e});
|
|
}, "Test assert_throws with non-DOM-exception expected to Fail");
|
|
|
|
var t = async_test("Test step_func")
|
|
setTimeout(
|
|
t.step_func(
|
|
function () {
|
|
assert_true(true); t.done();
|
|
}), 0);
|
|
|
|
async_test(function(t) {
|
|
setTimeout(t.step_func(function (){assert_true(true); t.done();}), 0);
|
|
}, "Test async test with callback");
|
|
|
|
async_test(function() {
|
|
setTimeout(this.step_func(function (){assert_true(true); this.done();}), 0);
|
|
}, "Test async test with callback and `this` obj.");
|
|
|
|
async_test("test should timeout (fail) with the default of 2 seconds").step(function(){});
|
|
|
|
async_test("test should timeout (fail) with a custom set timeout value of 1 second",
|
|
{timeout:1000}).step(function(){});
|
|
|
|
async_test("async test that is never started, should have status Not Run", {timeout:1000});
|
|
|
|
|
|
test(function(t) {
|
|
window.global = 1;
|
|
t.add_cleanup(function() {delete window.global});
|
|
assert_equals(window.global, 1);
|
|
},
|
|
"Test that defines a global and cleans it up");
|
|
|
|
test(function() {assert_equals(window.global, undefined)},
|
|
"Test that cleanup handlers from previous test ran");
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|
|
|
|
|