mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision 8a2ceb5f18911302b7a5c1cd2791f4ab50ad4326
This commit is contained in:
parent
462c272380
commit
1f531f66ea
5377 changed files with 174916 additions and 84369 deletions
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: inline in markup </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');</script>
|
||||
<script>log('inline script #2');</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'inline script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: external in markup </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script src="scripts/include-1.js"></script>
|
||||
<script src="scripts/include-2.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'external script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: inline+external in markup </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1')</script>
|
||||
<script src="scripts/include-2.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'external script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,25 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: external+inline in markup </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script src="scripts/include-1.js"></script>
|
||||
<script>log('inline script #2')</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'inline script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write inline in markup </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script>log(\'doc write script\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'doc write script', 'end script #1' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write inline - multiple</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script>log(\'doc write script 1\')<\/script>' );
|
||||
document.write( '<script>log(\'doc write script 2\')<\/script>' );
|
||||
eval('log(\'eval 1\')');
|
||||
document.write( '<script>log(\'doc write script 3\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'doc write script 1','doc write script 2', 'eval 1','doc write script 3', 'end script #1' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write external</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write external - multiple</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
|
||||
document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'external script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write external - multiple with doc.write</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
|
||||
document.write( '<script src="scripts/include-3.js">log(\'ignore this\')<\/script>' );
|
||||
document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'external script before doc write', 'document.write external script', 'external script after doc write', 'external script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write external + inline - multiple with doc.write</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
|
||||
document.write( '<script>log(\'inline with doc.write #1\')<\/script>' );
|
||||
document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'inline with doc.write #1', 'external script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write external + inline - multiple with doc.write + subsequent markup</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
|
||||
document.write( '<script>log(\'inline with doc.write #1\')<\/script>' );
|
||||
document.write( '<script src="scripts/include-2.js">log(\'ignore this\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'inline with doc.write #1', 'external script #2', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write external and onload events </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script src="scripts/include-1.js" onload = "log(\'include-1 load\')">log(\'ignore this\')<\/script>' )
|
||||
document.write( '<script src="scripts/include-3.js" onload = "log(\'include-3 load\')"><\/script>' )
|
||||
document.write( '<script src="scripts/include-2.js" onload = "log(\'include-2 load\')">log(\'ignore this\')<\/script>' )
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1', 'include-1 load', 'external script before doc write', 'document.write external script', 'external script after doc write', 'include-3 load', 'external script #2', 'include-2 load', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added inline script earlier in document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'head script #1','end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 100); })
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: SCRIPT elements that move themselves in DOM </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.getElementsByTagName('head')[0].appendChild(document.getElementsByTagName('script')[2]);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log('script #2');
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added inline+external+inline script earlier in document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
|
||||
var s = testlib.addScript('', { 'src':'scripts/include-1.js' }, document.getElementsByTagName('head')[0], false);
|
||||
testlib.addScript('log(\'head script #2\')', {}, document.getElementsByTagName('head')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
///XXX I think the spec allows this case to race
|
||||
onload = function(){
|
||||
setTimeout(t.step_func(
|
||||
function() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'head script #1', 'head script #2', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'head script #1', 'head script #2', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done();
|
||||
}),
|
||||
100);}
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added inline+external+inline script earlier in document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
|
||||
var s = testlib.addScript('', { 'src':'scripts/include-1.js?pipe=trickle(d1)' }, document.getElementsByTagName('head')[0], false);
|
||||
testlib.addScript('log(\'head script #2\')', {}, document.getElementsByTagName('head')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'head script #2', 'end script #1', 'inline script #2', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = function(){setTimeout(t.step_func(function() {test.apply(t)}), 2000); }
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added inline script later in document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('log(\'body script #1\')', {}, document.body, false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'body script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 100); })
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: multiple DOM added scripts later in document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('log(\'body script #1\')', {}, document.getElementsByTagName('body')[0], false);
|
||||
testlib.addScript('', { 'src':'scripts/include-1.js' }, document.getElementsByTagName('body')[0], false);
|
||||
testlib.addScript('log(\'body script #2\')', {}, document.getElementsByTagName('body')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
//The order of the external script vs the second inline script is undefined because the added script is async by default
|
||||
//But we expect most UAs to have the second order
|
||||
onload = function() {setTimeout(t.step_func(function() {
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'body script #1', 'body script #2', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'body script #1', 'body script #2', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done();
|
||||
}), 100);}
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added scripts and doc.write</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('', { 'src':'scripts/include-3.js' }, document.getElementsByTagName('head')[0], false);
|
||||
testlib.addScript('log(\'body script #2\')', {}, document.getElementsByTagName('body')[0], true);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
//XXX Need to test this delaying the document after we insert the external script and delaying the external script itself; afaict the spec allows us to race here on whether the document.write
|
||||
//ever actually happens or not according to whether the insertion point is defined at the point at which the script is executed.
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'body script #2', 'end script #1', 'external script before doc write', 'document.write external script', 'external script after doc write', 'inline script #2'],
|
||||
['inline script #1', 'body script #2', 'end script #1', 'inline script #2', 'external script before doc write', 'document.write external script', 'external script after doc write'],
|
||||
['inline script #1', 'body script #2', 'end script #1', 'inline script #2', 'external script before doc write', 'external script after doc write']
|
||||
]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(test.apply(t), 100); })
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added scripts and event handling </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script onload="log('inline #1 load')">
|
||||
log('inline script #1');
|
||||
testlib.addScript('', {'src':'scripts/include-1.js', 'onload':function(){log("external #1 load")}}, document.getElementsByTagName('head')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'external #1 load', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'external script #1', 'external #1 load']
|
||||
]);
|
||||
t.done();
|
||||
}
|
||||
onload = function(){setTimeout(t.step_func(test), 100); }
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added script with data: URL </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('', { 'src':'data:text/javascript,log("data URL script")' }, document.getElementsByTagName('body')[0], true);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'data URL script', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'data URL script']]);
|
||||
t.done();
|
||||
}
|
||||
onload = function() {setTimeout( t.step_func(test), 100); }
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added script with javascript: URL </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('', { 'src':'javascript:log("JS URL script")' }, document.getElementsByTagName('body')[0], true);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', /*'JS URL script',*/ 'inline script #2']);
|
||||
t.done();
|
||||
/* pass condition changed 2010-12-01 due to CT-198 */
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout( test, 100); })
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added script, late .src </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
var script = testlib.addScript('', { }, document.getElementsByTagName('body')[0], false);
|
||||
script.src='scripts/include-1.js';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
onload = function() {setTimeout(t.step_func(
|
||||
function() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done()
|
||||
}),
|
||||
100)}
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added script, even later .src </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
var script = testlib.addScript('', { }, document.getElementsByTagName('body')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
script.src='scripts/include-1.js';
|
||||
script.onload = t.step_func(test);
|
||||
})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added script, .src set twice</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
var script = testlib.addScript('', { }, document.getElementsByTagName('body')[0], false);
|
||||
script.src='scripts/include-1.js';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
script.src='scripts/include-2.js'; // needs to be ignored, script already "is executed"
|
||||
setTimeout(t.step_func(test), 100);
|
||||
})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM added script, .src set on script with content</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
var script = testlib.addScript('log("inline DOM script #1")', { }, document.getElementsByTagName('body')[0], false);
|
||||
script.src='scripts/include-1.js';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'inline DOM script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
setTimeout(t.step_func(test), 100);
|
||||
})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: doc write added script, .src set later</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
var t = async_test();
|
||||
document.write('<script><\/script>');
|
||||
var scripts = document.getElementsByTagName('script');
|
||||
scripts[scripts.length - 1].src = 'scripts/include-1.js';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
|
||||
onload = function() {
|
||||
setTimeout(
|
||||
t.step_func(function() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done();
|
||||
}),
|
||||
100);
|
||||
}
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: doc write added script with content, .src set later</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
document.write('<script>log(\'doc.write script\')<\/script>');
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
document.getElementsByTagName('script')[4].src='scripts/include-1.js';
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'doc.write script', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
setTimeout(t.step_func(test), 100);
|
||||
})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: javascript: URL</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<script>log('inline script #1');
|
||||
window.location.replace('javascript:log(\'JS URL\')');
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'end script #1', 'JS URL', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'JS URL']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: javascript: URL in HREF</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<p><a href="javascript:log('JS URL')"></a></p>
|
||||
<script>log('inline script #1');
|
||||
if(document.links[0].click){
|
||||
document.links[0].click();
|
||||
}else{
|
||||
var evt = document.createEvent("MouseEvents");
|
||||
evt.initMouseEvent("click", true, true, window,
|
||||
0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||
document.links[0].dispatchEvent(evt);
|
||||
}
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'end script #1', 'JS URL', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'JS URL']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,39 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: javascript: URL in HREF, onclick handler</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<p><a href="javascript:log('JS URL')" onclick="log('click event');return true;"></a></p>
|
||||
<script>log('inline script #1');
|
||||
if(document.links[0].click){
|
||||
document.links[0].click();
|
||||
}else{
|
||||
var evt = document.createEvent("MouseEvents");
|
||||
evt.initMouseEvent("click", true, true, window,
|
||||
0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
||||
document.links[0].dispatchEvent(evt);
|
||||
}
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
var w = window;
|
||||
onload = function() {setTimeout(
|
||||
t.step_func(function() {
|
||||
w.assert_any(w.assert_array_equals, w.eventOrder,
|
||||
[['inline script #1', 'click event', 'end script #1', 'JS URL', 'inline script #2'],
|
||||
['inline script #1', 'click event', 'end script #1', 'inline script #2', 'JS URL']]);
|
||||
t.done();
|
||||
}), 200);
|
||||
}
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: focus and blur events</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<form><input type="button" onclick="log('click event')" onfocus="log('focus event')" onblur="log('blur event')"><input type="button" onfocus="log('focus el 2 event')" onblur="log('blur event')"></form>
|
||||
<script>log('inline script #1');
|
||||
document.forms[0][0].focus();
|
||||
document.forms[0][1].click();
|
||||
document.forms[0][1].focus();
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log('inline script #2');
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'focus event', 'blur event', 'focus el 2 event', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: innerHTML and scripts</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
// script added with innerHTML should not run..
|
||||
document.getElementsByTagName('div')[1].innerHTML = '<script>log("innerHTML script runs")<\/script><script src="scripts/include-1.js"><\/script>';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: innerHTML and scripts moved in DOM</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
// script added with innerHTML should not run..
|
||||
document.getElementsByTagName('div')[0].innerHTML = '<script>log("innerHTML script runs")<\/script><script src="scripts/include-1.js"><\/script>';
|
||||
try{
|
||||
document.body.appendChild( document.getElementsByTagName('div')[0].firstChild );
|
||||
document.body.appendChild( document.getElementsByTagName('div')[0].firstChild );
|
||||
}catch(e){
|
||||
log('ERROR while testing');
|
||||
}
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: innerHTML adding frames with JS in</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
document.getElementsByTagName('div')[1].innerHTML = '<iframe src="pages/helloworld.html"></iframe>';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 200);})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: innerHTML adding frames with JS in and moving scripts</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
document.getElementsByTagName('div')[1].innerHTML = '<iframe src="pages/helloworld.html"></iframe>';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script']);
|
||||
t.done();
|
||||
/*, ['inline script #1', 'end script #1', 'frame/popup script', 'inline script #2'] */
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
try{
|
||||
document.body.appendChild(document.importNode( top.frames[0].document.getElementsByTagName('script')[0], true ));
|
||||
}catch(e){ log('ERROR - tested functionality not supported'); }
|
||||
setTimeout(t.step_func(test), 200);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM cloning</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], true);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
try{
|
||||
var script = document.getElementsByTagName('script')[0].cloneNode(true);
|
||||
document.body.appendChild(script);
|
||||
}catch(e){ log('ERROR - tested functionality not supported'); }
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'end script #1', 'inline script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
setTimeout(t.step_func(test), 200);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM movement with appendChild, inline</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
var script = testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], true);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
try{
|
||||
document.body.appendChild(script);
|
||||
}catch(e){ log('ERROR - tested functionality not supported'); }
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'end script #1', 'inline script #2' ]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
setTimeout(t.step_func(test), 200);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM movement with appendChild, external</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
var script = testlib.addScript('', { 'src':'scripts/include-1.js' }, document.getElementsByTagName('head')[0], true);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
try{
|
||||
document.body.appendChild(script);
|
||||
}catch(e){ log('ERROR - tested functionality not supported'); }
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done();
|
||||
}
|
||||
onload = function() {
|
||||
setTimeout(t.step_func(test), 200);
|
||||
};
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: IFRAMEs added with DOM</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
for( var i=0; i<2; i++ ){
|
||||
var iframe=document.createElement('iframe');
|
||||
document.getElementsByTagName('div')[1].appendChild(iframe);
|
||||
iframe.src='pages/helloworld.html?'+i+'&'+Math.random();
|
||||
}
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script 0', 'frame/popup script 1'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'frame/popup script 1', 'frame/popup script 0']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function() {
|
||||
setTimeout(t.step_func(test), 200);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: IFRAMEs added with DOM (innerHTML), javascript: URL</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
document.getElementsByTagName('div')[1].innerHTML = '<iframe src="javascript:parent.log(\'JS URL\');\'<html><script>parent.log(\\\'frame script\\\')<\/script></html>\'"></iframe>';
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [
|
||||
['inline script #1', 'end script #1', 'JS URL', 'inline script #2', 'frame script'],
|
||||
/* the following combination seems quite unlikely? */
|
||||
['inline script #1', 'end script #1', 'JS URL', 'frame script', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'JS URL', 'frame script']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){
|
||||
setTimeout(t.step_func(test), 200);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write scripts that write scripts</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.write( '<script>log(\'inline with doc.write #1\'); document.write(\'<script src="scripts/include-4.js"><\\\/script>\');log(\'end inline with doc.write\');<\/script>' );
|
||||
document.write( '<script src="scripts/include-1.js">log(\'ignore this\')<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'inline with doc.write #1', 'end inline with doc.write', 'end script #1', 'include-4 before doc write', 'include-4 after doc write', 'external script before doc write', 'document.write external script', 'external script after doc write', 'external script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM mutation events when adding scripts: DOMNodeInserted </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.addEventListener( 'DOMNodeInserted', function(){ log('DOMNodeInserted'); }, false );
|
||||
testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'DOMNodeInserted', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM mutation events when adding external scripts: DOMNodeInserted </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.addEventListener( 'DOMNodeInserted', function(){ log('DOMNodeInserted'); }, false );
|
||||
testlib.addScript('', { src: 'scripts/include-1.js' }, document.getElementsByTagName('head')[0], false);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'DOMNodeInserted', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'DOMNodeInserted', 'end script #1', 'inline script #2', 'external script #1']]
|
||||
);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM mutation events when adding scripts: DOMNodeInsertedIntoDocument </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('log(\'head script #1\')', {}, document.getElementsByTagName('head')[0], false, function(s){s.addEventListener( 'DOMNodeInsertedIntoDocument', function(){ log('DOMNodeInsertedIntoDocument'); }, false ); } );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'head script #1', 'DOMNodeInsertedIntoDocument', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: DOM mutation events when adding external scripts: DOMNodeInsertedIntoDocument </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('', {src:'scripts/include-1.js'}, document.getElementsByTagName('head')[0], false, function(s){s.addEventListener( 'DOMNodeInsertedIntoDocument', function(){ log('DOMNodeInsertedIntoDocument'); }, false);});
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
onload = t.step_func(function() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'DOMNodeInsertedIntoDocument', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'DOMNodeInsertedIntoDocument', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done();
|
||||
});
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: no readystatechange events when adding external scripts </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('', {src:'scripts/include-1.js', onreadystatechange:function() {log( 'readystatechange '+ this.readyState );}}, document.getElementsByTagName('head')[0], false );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: adding and removing external script </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=testlib.addScript('', {src:'scripts/include-1.js'}, document.getElementsByTagName('head')[0], false );
|
||||
script.parentNode.removeChild(script);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: adding inline script which sets its own .src </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=testlib.addScript('log(\'HEAD script start\');document.getElementsByTagName(\'script\')[0].src=\'scripts/include-1.js\';log(\'HEAD script end\')', {}, document.getElementsByTagName('head')[0], true );
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'HEAD script start', 'HEAD script end', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: adding external script but removeAttribute( src ) before it runs</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=testlib.addScript('log(\'HEAD script\');', { src:'scripts/include-1.js' }, document.getElementsByTagName('head')[0], false );
|
||||
script.removeAttribute('src');
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: adding external script that removes all scripts from document</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=testlib.addScript('', { src:'scripts/include-5.js' }, document.getElementsByTagName('head')[0], false );
|
||||
// caching might affect whether the below script runs or not. Adding Math.random() makes the test a bit more predictable? :-p
|
||||
var script=testlib.addScript('', { src:'scripts/include-1.js?pipe=trickle(d1)&'+Math.random() }, document.getElementsByTagName('head')[0], false );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script src="scripts/include-2.js?pipe=trickle(d4)"></script>
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'include-5 before removing scripts', 'include-5 after removing scripts', 'external script #1', 'external script #2']),
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: interaction of parsing and script execution - script added through DOM</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
testlib.addScript('', { src: 'scripts/count-script-tags.js' }, document.body, true);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'script tags in DOM: 5', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'inline script #2', 'script tags in DOM: 6']]);
|
||||
t.done();
|
||||
}
|
||||
onload = function(){setTimeout(t.step_func(test), 100); }
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: interaction of parsing and script execution - external script </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script src="scripts/count-script-tags.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['script tags in DOM: 4', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 100); })
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: adding external script that removes itself from document when loading</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=testlib.addScript('', { src:'scripts/include-1.js', onload:function() {this.parentNode.removeChild(this);log('removed ' + this.localName);} }, document.getElementsByTagName('body')[0], true );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script src="scripts/include-2.js"></script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'end script #1', 'external script #1', 'removed script', 'external script #2', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'external script #2', 'external script #1', 'removed script', 'inline script #2'],
|
||||
['inline script #1', 'end script #1', 'external script #2', 'inline script #2', 'external script #1', 'removed script']]
|
||||
);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: removing newly inserted script from DOMNodeInserted handler - external script </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.addEventListener( 'DOMNodeInserted', function listener(e){
|
||||
log('DOMNodeInserted event');
|
||||
e.target.parentNode.removeChild(e.target);
|
||||
document.removeEventListener('DOMNodeInserted', listener);
|
||||
}, false );
|
||||
var script=testlib.addScript('', { src:'scripts/include-1.js?'+Math.random() }, document.getElementsByTagName('body')[0], true );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'DOMNodeInserted event', 'end script #1', 'inline script #2', 'external script #1'],
|
||||
['inline script #1', 'DOMNodeInserted event', 'end script #1', 'external script #1', 'inline script #2']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: removing newly inserted script from DOMNodeInserted handler - inline script </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
document.addEventListener( 'DOMNodeInserted', function listener(e){
|
||||
log('DOMNodeInserted event');
|
||||
e.target.parentNode.removeChild(e.target);
|
||||
document.removeEventListener('DOMNodeInserted', listener);
|
||||
}, false );
|
||||
var script=testlib.addScript('log(\'added script\')', { }, document.getElementsByTagName('body')[0], true );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'added script', 'DOMNodeInserted event', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: appending code to initially empty SCRIPT tag in DOM </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
script.appendChild( document.createTextNode('log("injected script code");') );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
// Test asserts the injected script should run
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'injected script code', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: appending code to initially non-empty SCRIPT tag in DOM (whitespace only) </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
script.appendChild( document.createTextNode('log("injected script code");') );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: appending code to initially non-empty SCRIPT tag in DOM (comment only) </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>/**/</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
script.appendChild( document.createTextNode('log("injected script code");') );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: appending code to initially non-empty SCRIPT tag in DOM after removing its initial child </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>/**/</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
script.removeChild(script.firstChild);
|
||||
script.appendChild( document.createTextNode('log("injected script code");') );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: appending code to initially non-empty SCRIPT tag in DOM after setting textContent/innerHTML</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>log('HEAD script');</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
script.innerHTML='';
|
||||
script.appendChild( document.createTextNode('log("injected script code 1");') );
|
||||
script.textContent='';
|
||||
script.appendChild( document.createTextNode('log("injected script code 2");') );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['HEAD script', 'inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: cloneNode and script execution</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>log('HEAD script');</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
document.body.appendChild( script.cloneNode(true) );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['HEAD script', 'inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: cloneNode (shallow) and script execution</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>log('HEAD script');</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
document.body.appendChild( script.cloneNode(false) ).appendChild(document.createTextNode('log("clone");'));
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['HEAD script', 'inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: cloneNode (deep) of the currently executing script </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>log('HEAD script');
|
||||
if( !window.already_cloned ){
|
||||
window.already_cloned=true;
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
document.getElementsByTagName('head')[0].appendChild( script.cloneNode(true) );
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['HEAD script', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: cloneNode with external script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script src="scripts/include-1.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3];
|
||||
document.body.appendChild( script.cloneNode(true) );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: cloneNode with external script, changed .src</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script src="scripts/include-1.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3].cloneNode(true);
|
||||
script.src='scripts/include-2.js'
|
||||
document.body.appendChild( script );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: cloneNode with external script, removing .src and adding content</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script src="scripts/include-1.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3].cloneNode(true);
|
||||
script.removeAttribute('src');
|
||||
script.appendChild(document.createTextNode( 'log("cloned script");' ));
|
||||
document.body.appendChild( script );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,38 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: is a script with syntax error marked as "has run"? </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>setup({allow_uncaught_exception:true})
|
||||
var t = async_test()
|
||||
</script>
|
||||
<script>
|
||||
log(This script will never run..
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>t.step(function() {
|
||||
log('inline script #1');
|
||||
var script=document.getElementsByTagName('script')[3].cloneNode(true);
|
||||
script.removeChild(script.firstChild);
|
||||
script.appendChild(document.createTextNode( 'log("cloned script");' ));
|
||||
document.body.appendChild( script );
|
||||
log('end script #1');
|
||||
})
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
t.step(function() {
|
||||
log( 'inline script #2' );
|
||||
});
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: external script and parsing of markup added with document.write </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>
|
||||
log('inline script #1');
|
||||
document.write('<script src="scripts/find-foo.js">log(\'inline code in external script (not expected to run!!)\')<\/script>' + '<div id="foo"></div>');
|
||||
log('end script #1');
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
if(!window.findFooLoaded) {
|
||||
return setTimeout(t.step_func(test),200);
|
||||
}
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'found #foo element: NO']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,33 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>scheduler: external files added through DOM should not block further parsing while loading</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script>
|
||||
testlib.addScript('',{src:'scripts/find-body.js?pipe=trickle(d1)'},document.getElementsByTagName('head')[0], true );
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
testlib.addScript('', {src:'scripts/find-foo.js?pipe=trickle(d1)'}, document.getElementsByTagName('head')[0], true);
|
||||
</script>
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<p><span id="foo"></span></p>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
if(!(window.findFooLoaded && window.findBodyLoaded)) {
|
||||
return setTimeout(t.step_func(test), 200);
|
||||
}
|
||||
assert_any(assert_array_equals, eventOrder,
|
||||
[['document.body: <BODY>', 'found #foo element: YES'],
|
||||
['found #foo element: YES', 'document.body: <BODY>']]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,48 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write into IFRAME a script that adds a SCRIPT through DOM</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<iframe></iframe>
|
||||
|
||||
<script type="text/javascript">
|
||||
var doc = document.getElementsByTagName('iframe')[0].contentDocument;
|
||||
doc.open();
|
||||
|
||||
log("calling document.write");
|
||||
doc.write('<script>top.log("inline script #1");'+
|
||||
'var s=document.createElement("script");'+
|
||||
's.src="scripts/include-6.js?'+new Date().getTime()+'";'+
|
||||
'document.getElementsByTagName("head")[0].appendChild(s);'+
|
||||
'<\/script>'+
|
||||
'<div id="foo"></div>'+
|
||||
'<script>top.log("inline script #2");<\/script>'
|
||||
);
|
||||
|
||||
log("calling document.close");
|
||||
doc.close();
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
if(!window.include6Loaded) {
|
||||
return setTimeout(t.step_func(test),200);
|
||||
}
|
||||
assert_array_equals(eventOrder, ['calling document.write', 'inline script #1', 'inline script #2', 'calling document.close', 'external script (#foo found? YES)']);
|
||||
t.done();
|
||||
}
|
||||
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,55 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write several scripts into IFRAME </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<iframe style="width:1px;height:1px"></iframe>
|
||||
|
||||
<script type="text/javascript">
|
||||
var doc = document.getElementsByTagName('iframe')[0].contentDocument;
|
||||
doc.open();
|
||||
|
||||
var html = '<html><head><title>test</title></head>'+
|
||||
'<script>top.log("inline script #1");'+
|
||||
'<\/script>'+
|
||||
/* made url unique because Chrome will change
|
||||
order depending on file cached status */
|
||||
'<script src="scripts/include-6.js?'+new Date().getTime()+'"><\/script>'+
|
||||
'</head>'+
|
||||
'<body>'+
|
||||
'<div id="foo"></div>'+
|
||||
'</body></html>'+
|
||||
'<script>top.log("inline script #2");<\/script>';
|
||||
log("calling document.write");
|
||||
doc.write(html);
|
||||
|
||||
log("calling document.close");
|
||||
doc.close();
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
if( !window.include6Loaded )return setTimeout(t.step_func(test),200); // try checking again if external script didn't run yet
|
||||
assert_array_equals(eventOrder, ['calling document.write',
|
||||
'inline script #1',
|
||||
'calling document.close',
|
||||
'external script (#foo found? NO)',
|
||||
'inline script #2'
|
||||
]);
|
||||
t.done();
|
||||
}
|
||||
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,50 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write into IFRAME a script that creates new inline script in parent </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<iframe style="width:1px;height:1px"></iframe>
|
||||
|
||||
<script type="text/javascript">
|
||||
var doc = document.getElementsByTagName('iframe')[0].contentDocument;
|
||||
doc.open();
|
||||
|
||||
var html = '<html><head><title>test</title></head>'+
|
||||
'<script>top.log("inline script #1");'+
|
||||
'<\/script>'+
|
||||
'</head>'+
|
||||
'<body>'+
|
||||
'<div id="foo"></div>'+
|
||||
'</body></html>'+
|
||||
'<script>top.testlib.addScript( \'log("inline script added to parent")\', null, top.document.body, true )<\/script>';
|
||||
log("calling document.write");
|
||||
doc.write(html);
|
||||
|
||||
log("calling document.close");
|
||||
doc.close();
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['calling document.write',
|
||||
'inline script #1',
|
||||
'inline script added to parent',
|
||||
'calling document.close',
|
||||
]);
|
||||
t.done();
|
||||
}
|
||||
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,52 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write into IFRAME a script that creates new external script in parent </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<iframe style="width:1px;height:1px"></iframe>
|
||||
|
||||
<script type="text/javascript">
|
||||
var doc = document.getElementsByTagName('iframe')[0].contentDocument;
|
||||
doc.open();
|
||||
|
||||
var html = '<html><head><title>test</title></head>'+
|
||||
'<script>top.log("inline script #1");'+
|
||||
'<\/script>'+
|
||||
'</head>'+
|
||||
'<body>'+
|
||||
'<div id="foo"></div>'+
|
||||
'</body></html>'+
|
||||
'<script>top.testlib.addScript( \'\', { src:\'scripts/include-1.js\' }, top.document.body, true )<\/script>';
|
||||
log("calling document.write");
|
||||
doc.write(html);
|
||||
|
||||
log("calling document.close");
|
||||
doc.close();
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
|
||||
assert_array_equals(eventOrder, ['calling document.write',
|
||||
'inline script #1',
|
||||
'calling document.close',
|
||||
'external script #1'
|
||||
]);
|
||||
|
||||
t.done();
|
||||
}
|
||||
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,49 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: document.write into IFRAME a script that creates new inline script in parent that again adds script to IFRAME </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<iframe style="width:1px;height:1px"></iframe>
|
||||
|
||||
<script type="text/javascript">
|
||||
var doc = document.getElementsByTagName('iframe')[0].contentDocument;
|
||||
doc.open();
|
||||
var str1='';
|
||||
var html = '<html><head><title>test</title></head>'+
|
||||
'<script>top.log("inline script #1");'+
|
||||
'<\/script>'+
|
||||
'</head>'+
|
||||
'<body>'+
|
||||
'<script>top.testlib.addScript( \'top.log("inline script added to parent");top.doc.write( "<script>top.log(\\\\"inline script added to iframe\\\\")<\\\/script>");\', null, top.document.body, true ) <\/script>'+
|
||||
'</body></html>';
|
||||
log("calling document.write");
|
||||
doc.write(html);
|
||||
|
||||
log("calling document.close");
|
||||
doc.close();
|
||||
|
||||
var t = async_test()
|
||||
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['calling document.write',
|
||||
'inline script #1',
|
||||
'inline script added to parent',
|
||||
'inline script added to iframe',
|
||||
'calling document.close',
|
||||
]);
|
||||
t.done();
|
||||
}
|
||||
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>dispatchEvent from child frame during document.write :-o </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body onclick="log('click event')">
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<iframe></iframe>
|
||||
<script>
|
||||
var doc = document.getElementsByTagName("iframe")[0].contentDocument;
|
||||
doc.open("text/html");
|
||||
doc.write('<html><head><title>event dispatcher</title></head><body>Before script<script>top.log("inline script before event");var ev = parent.document.createEvent("MouseEvents");ev.initMouseEvent("click", true, false, null, 0, 0, 0, 0, 0, false, false, false, false, 0, null);parent.document.body.dispatchEvent(ev);top.log("inline script after event");</sc'+'ript> After script</body>');
|
||||
log( 'end main script' );
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
if(test.ran)return; test.ran=true;
|
||||
|
||||
assert_array_equals(eventOrder, ['inline script before event',
|
||||
'click event',
|
||||
'inline script after event',
|
||||
'end main script'
|
||||
]);
|
||||
doc.close();
|
||||
t.done();
|
||||
}
|
||||
|
||||
onload = t.step_func(test)
|
||||
/* onload doesn't fire in this test, a fallback.. */
|
||||
setTimeout(t.step_func(test), 800 );
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: adding and removing external and inline scripts </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>log('inline script #1');
|
||||
var script=testlib.addScript('', {src:'scripts/include-1.js', onload:function(e){ e.target.parentNode.removeChild(e.target); }}, document.getElementsByTagName('head')[0], false );
|
||||
var script=testlib.addScript( 'log( "dynamically added inline script" )', null, document.getElementsByTagName('head')[0], false );
|
||||
script.parentNode.removeChild(script);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
}
|
||||
onload = t.step_func(function() {
|
||||
assert_any(assert_array_equals, eventOrder, [['inline script #1', 'dynamically added inline script', 'end script #1', 'external script #1', 'inline script #2'],
|
||||
['inline script #1', 'dynamically added inline script', 'end script #1', 'inline script #2', 'external script #1']]);
|
||||
t.done();
|
||||
})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,41 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title> adding several types of scripts through the DOM and removing some of them confuses scheduler </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script type="text/javascript">
|
||||
var head = document.getElementsByTagName('head')[0];
|
||||
function createScript(url, contents) {
|
||||
props = {};
|
||||
if (url) {
|
||||
props.src = url;
|
||||
}
|
||||
return testlib.addScript(contents, props, head, false);
|
||||
}
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
var script = createScript('data:text\/javascript,log("Script #1 ran")');
|
||||
var script2 = createScript('','log("Script #2 ran")');
|
||||
if(script2) {
|
||||
head.removeChild(script2);
|
||||
}
|
||||
var script3 = createScript('data:text\/javascript, log("Script #3 ran"); createScript(\'\', \'log("Script #4 ran")\')');
|
||||
if(script3) {
|
||||
head.removeChild(script3);
|
||||
}
|
||||
setTimeout(t.step_func(function(){
|
||||
assert_array_equals(eventOrder, ['Script #2 ran', 'Script #1 ran', 'Script #3 ran','Script #4 ran']);
|
||||
t.done();
|
||||
}), 400);
|
||||
|
||||
};
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
</body>
|
||||
</html*>
|
|
@ -0,0 +1,43 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title> adding several types of scripts through the DOM and removing some of them confuses scheduler (slow-loading scripts) </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script type="text/javascript">
|
||||
setup({ explicit_done: true });
|
||||
var head = document.getElementsByTagName('head')[0];
|
||||
function createScript(url, contents) {
|
||||
props = {};
|
||||
if (url) {
|
||||
props.src = url;
|
||||
}
|
||||
return testlib.addScript(contents, props, head, false);
|
||||
}
|
||||
var t = async_test(undefined, { timeout: 10000 })
|
||||
|
||||
function test() {
|
||||
document.getElementById("log").textContent = "Please wait..."
|
||||
var url = 'scripts/include-1.js?pipe=trickle(d1)';
|
||||
var script = createScript(url);
|
||||
var script2 = createScript('', 'log("Script #2 ran")');
|
||||
head.removeChild(script2);
|
||||
var url = 'scripts/include-2.js?pipe=trickle(d2)';
|
||||
var script3 = createScript(url);
|
||||
head.removeChild(script3);
|
||||
|
||||
setTimeout(t.step_func(function () {
|
||||
done();
|
||||
assert_array_equals(eventOrder, ['Script #2 ran', 'external script #1', 'external script #2']);
|
||||
t.done();
|
||||
}), 5500);
|
||||
|
||||
};
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title> setting location to javascript URL from event handler </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script type="text/javascript">
|
||||
log('inline script #1');
|
||||
var t = async_test()
|
||||
|
||||
onload = t.step_func(function() {
|
||||
log('onload handler');
|
||||
document.getElementById("log").textContent = 'please wait...';
|
||||
window.location='javascript:log("javascript: URL")';
|
||||
setTimeout(t.step_func(function(){
|
||||
log('timeout');
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'onload handler', 'onload ends', 'javascript: URL', 'timeout']);
|
||||
t.done();
|
||||
}), 200);
|
||||
log('onload ends');
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>scheduler: IFRAMEs added with DOM (appendChild), javascript: URL</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>log('inline script #1');
|
||||
var iframe=document.createElement('iframe');
|
||||
iframe.src='javascript:parent.log(\'JS URL\');\'<html><script>parent.log(\\\'frame script\\\')<\/script></html>\'';
|
||||
document.getElementsByTagName('div')[1].appendChild(iframe);
|
||||
log('end script #1');
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'JS URL', 'frame script']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function(){setTimeout(t.step_func(test), 400);})
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: slow loading external script added with DOM (appendChild)</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>
|
||||
var t = async_test(undefined, {timeout:5000})
|
||||
log('inline script #1');
|
||||
testlib.addScript('', { src:'scripts/include-1.js?pipe=trickle(d1)&'+Math.random() }, document.getElementsByTagName('head')[0], false );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script src="scripts/include-2.js"></script>
|
||||
<script>
|
||||
log( 'inline script #2' );
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'external script #2', 'inline script #2', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(function() {
|
||||
setTimeout(t.step_func(test), 12);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: multiple slow loading external scripts added with DOM (appendChild)</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<div></div>
|
||||
<script>
|
||||
|
||||
log('inline script #1');
|
||||
function scriptLoadListener(){
|
||||
log( 'load on '+this.src.match( /include-\d\.js/ ) );
|
||||
}
|
||||
var script=testlib.addScript('', { src:'scripts/include-1.js?pipe=trickle(d1)&' + Math.random(), onload:scriptLoadListener }, document.getElementsByTagName('head')[0], false );
|
||||
var script=testlib.addScript('', { src:'scripts/include-2.js?pipe=trickle(d3)&' + Math.random(), onload:scriptLoadListener }, document.getElementsByTagName('head')[0], false );
|
||||
var script=testlib.addScript('', { src:'scripts/include-7.js?pipe=trickle(d2)&' + Math.random() , onload:scriptLoadListener }, document.getElementsByTagName('head')[0], false );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log('inline script #2');
|
||||
var t = async_test(undefined, {timeout:10000})
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end script #1', 'inline script #2', 'external script #1', 'load on include-1.js', 'external script #7', 'load on include-7.js', 'external script #2', 'load on include-2.js']);
|
||||
t.done();
|
||||
}
|
||||
onload = function() {setTimeout(t.step_func(test), 12)};
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,48 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: event listener defined by script in a document in history</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<iframe src="about:blank"></iframe>
|
||||
<script>
|
||||
log('inline script #1');
|
||||
function fireFooEvent(){
|
||||
var evt=document.createEvent('Event');
|
||||
evt.initEvent('foo', true, true);
|
||||
document.dispatchEvent(evt);
|
||||
}
|
||||
var doc = frames[0].document;
|
||||
doc.open('text/html');
|
||||
doc.write('<script>top.log("IFRAME script");top.document.addEventListener("foo", function(e){ top.log("event: "+e.type); }, false)<\/script>');
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script>
|
||||
fireFooEvent();
|
||||
frames[0].location='about:blank'; // returning to about:blank should de-activate document that defined event listener..?
|
||||
</script>
|
||||
<script>
|
||||
fireFooEvent();
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_equals(frames[0].location.toString(), "about:blank");
|
||||
assert_array_equals(eventOrder, ['inline script #1',
|
||||
'IFRAME script',
|
||||
'end script #1',
|
||||
'event: foo',
|
||||
'inline script #2'
|
||||
]);
|
||||
t.done();
|
||||
}
|
||||
onload = function() {setTimeout(t.step_func(function() {fireFooEvent(); test()}), 80)};
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,47 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: event listener defined by script in a removed IFRAME</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<iframe src="about:blank"></iframe>
|
||||
<script>
|
||||
log('inline script #1');
|
||||
function fireFooEvent(){
|
||||
var evt=document.createEvent('Event');
|
||||
evt.initEvent('foo', true, true);
|
||||
document.dispatchEvent(evt);
|
||||
}
|
||||
var doc=frames[0].document;
|
||||
doc.open( 'text/html' );
|
||||
doc.write( '<script>top.log("IFRAME script");top.document.addEventListener("foo", function(e){ top.log("event: "+e.type); }, false)<\/script>' );
|
||||
log('end script #1');
|
||||
</script>
|
||||
<script>
|
||||
fireFooEvent();
|
||||
frames[0].frameElement.parentNode.removeChild( frames[0].frameElement ); // removing the IFRAME should de-activate document that defined event listener..?
|
||||
</script>
|
||||
<script>
|
||||
fireFooEvent();
|
||||
</script>
|
||||
<script type="text/javascript">
|
||||
log( 'inline script #2' );
|
||||
var t = async_test()
|
||||
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['inline script #1',
|
||||
'IFRAME script',
|
||||
'end script #1',
|
||||
'event: foo',
|
||||
'inline script #2'
|
||||
]);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: async script and slow-loading defer script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script src="scripts/include-1.js?pipe=trickle(d1)" defer></script>
|
||||
<script src="scripts/include-2.js" async></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test();
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #2', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: async script and slow-loading async script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script src="scripts/include-1.js?pipe=trickle(d2)" async></script>
|
||||
<script src="scripts/include-2.js" async></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test();
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #2', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: multiple defer scripts, one slow loading</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script src="scripts/include-1.js?pipe=trickle(d2)" defer></script>
|
||||
<script src="scripts/include-2.js" defer></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test();
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'external script #2']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: multiple scripts with defer and async attributes</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script src="scripts/include-1.js?pipe=trickle(d2)" defer async></script>
|
||||
<script src="scripts/include-2.js" defer async></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
var t = async_test();
|
||||
function test() {
|
||||
assert_array_equals(eventOrder, ['external script #2', 'external script #1']);
|
||||
t.done();
|
||||
}
|
||||
onload = t.step_func(test);
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: async attribute on inline script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script async>
|
||||
var t = async_test();
|
||||
log('inline script #1');
|
||||
t.step(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1']);
|
||||
});
|
||||
</script>
|
||||
<script async>
|
||||
log('inline script #2');
|
||||
t.step(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'inline script #2']);
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
log('inline script #3');
|
||||
t.step(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'inline script #2', 'inline script #3']);
|
||||
});
|
||||
onload = function() {t.done()};
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: defer attribute on inline script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script defer>
|
||||
var t = async_test();
|
||||
log('inline script #1');
|
||||
t.step(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1']);
|
||||
});
|
||||
</script>
|
||||
<script defer>
|
||||
log('inline script #2');
|
||||
t.step(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'inline script #2']);
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
log('inline script #3');
|
||||
t.step(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'inline script #2', 'inline script #3']);
|
||||
});
|
||||
onload = function() {t.done()};
|
||||
</script>
|
||||
|
||||
</body></html>
|
|
@ -0,0 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: force-async off on non-parser-inserted script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>
|
||||
var t = async_test(undefined, {timeout:4000});
|
||||
|
||||
sources = ["scripts/include-1.js?pipe=trickle(d2)", "scripts/include-2.js?pipe=trickle(d1)"];
|
||||
sources.forEach(function(x) {
|
||||
var script = document.createElement("script");
|
||||
script.src = x;
|
||||
t.step(function() {assert_equals(script.async, true, "async IDL attribute on script creation")});
|
||||
script.async = false;
|
||||
t.step(function() {assert_equals(script.async, false, "async IDL attribute after setting")});
|
||||
t.step(function() {assert_equals(script.getAttribute("async"), null, "async content attribute after setting")});
|
||||
document.head.appendChild(script);
|
||||
});
|
||||
|
||||
onload = t.step_func(function() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'external script #2']);
|
||||
t.done();
|
||||
});
|
||||
</script>
|
||||
</body></html>
|
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: defer script and slow-loading non-async external script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>
|
||||
var t = async_test(undefined, {timeout:3500});
|
||||
|
||||
var script = document.createElement("script");
|
||||
script.src = "scripts/include-2.js?pipe=trickle(d2)";
|
||||
script.async = false;
|
||||
document.head.appendChild(script);
|
||||
|
||||
onload = t.step_func(function() {
|
||||
assert_array_equals(eventOrder, ['external script #1', 'external script #2']);
|
||||
t.done();
|
||||
});
|
||||
</script>
|
||||
<script defer src="scripts/include-1.js"></script>
|
||||
</body></html>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: parser-created defer script after document load</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<iframe id="myFrame"></iframe>
|
||||
|
||||
<script>
|
||||
var t = async_test(undefined, {timeout:3500});
|
||||
onload = t.step_func(function() {
|
||||
var doc = document.getElementById("myFrame").contentDocument;
|
||||
var win = document.getElementById("myFrame").contentWindow;
|
||||
doc.open();
|
||||
doc.write("<title> scheduler: parser-created defer script after document load</title><script src='/resources/testharness.js'><\/script><script src='/resources/testharnessreport.js'><\/script><script src='testlib/testlib.js'><\/script><script>var t=async_test()<\/script><div id=log></div><script defer src='data:text/javascript,parent.t.done();'><\/script>");
|
||||
doc.close();
|
||||
})
|
||||
</script>
|
||||
</body></html>
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: slow-loading script added from defer blocking load event</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>
|
||||
var t = async_test(undefined, {timeout:3500});
|
||||
function test() {
|
||||
t.step(function() {
|
||||
assert_array_equals(eventOrder, ['external script #8', 'external script #9']);
|
||||
t.done();
|
||||
});
|
||||
}
|
||||
//assert that the test is completed before onload fires
|
||||
onload = t.step_func(function() {assert_unreached()});
|
||||
</script>
|
||||
<script defer src="scripts/include-8.js"></script>
|
||||
</body></html>
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: defer script added from document.write relative to DOMContentLoaded</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>
|
||||
log("inline script #1");
|
||||
document.write("<script defer src='scripts/include-1.js'><\/script>")
|
||||
</script>
|
||||
<script>
|
||||
log("inline script #2");
|
||||
var t = async_test();
|
||||
|
||||
addEventListener("DOMContentLoaded", t.step_func(function() {
|
||||
assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "external script #1"]);
|
||||
log("inline script #3");
|
||||
}), false);
|
||||
|
||||
onload = t.step_func(function() {
|
||||
assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "external script #1", "inline script #3"]);
|
||||
t.done();
|
||||
});
|
||||
</script>
|
||||
</body></html>
|
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: slow-loading async script added from document.write</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>
|
||||
log("inline script #1");
|
||||
document.write("<script async src='scripts/include-1.js?pipe=trickle(d2)'><\/script>")
|
||||
</script>
|
||||
<script>
|
||||
log("inline script #2");
|
||||
var t = async_test(undefined, {timeout:3500});
|
||||
|
||||
addEventListener("DOMContentLoaded", t.step_func(function() {assert_array_equals(eventOrder, ["inline script #1", "inline script #2"])}), false);
|
||||
|
||||
onload = t.step_func(
|
||||
function() {
|
||||
assert_array_equals(eventOrder, ["inline script #1", "inline script #2", "external script #1"]);
|
||||
t.done();
|
||||
});
|
||||
|
||||
</script>
|
||||
</body></html>
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: defer adding iframe containing script</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script defer src="scripts/include-11.js"></script>
|
||||
<script>
|
||||
var t = async_test();
|
||||
|
||||
onload = t.step_func(function() {assert_array_equals(eventOrder, ["external script before adding iframe", "script in iframe"]); t.done();});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,35 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: defer script after initial onload event</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
<iframe id="myFrame"></iframe>
|
||||
|
||||
<script>
|
||||
var t = async_test();
|
||||
onload = t.step_func(
|
||||
function() {
|
||||
var doc = document.getElementById("myFrame").contentDocument;
|
||||
var win = document.getElementById("myFrame").contentWindow;
|
||||
doc.open();
|
||||
doc.write("<title> scheduler: defer script after initial onload event</title><script src='testlib/testlib.js'><\/script><div id='log'>document.written content</div><script>log('inline script #1');<\/script><script src='scripts/include-1.js'><\/script><script defer src='scripts/include-2.js'><\/script>");
|
||||
doc.close();
|
||||
//Note that the *window* object has changed but the *global scope* of the script has not.
|
||||
var run_t = window.t.step_func(function() {
|
||||
if (!win.eventOrder || win.eventOrder.length != 3) {
|
||||
window.setTimeout(run_t, 100);
|
||||
return;
|
||||
}
|
||||
window.assert_array_equals(win.eventOrder, ['inline script #1', 'external script #1', 'external script #2']);
|
||||
window.t.done();
|
||||
});
|
||||
run_t();
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title> scheduler: defer script after initial onload event</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
|
||||
<script>
|
||||
onload = function() {
|
||||
document.open();
|
||||
document.write("<title> scheduler: defer script after initial onload event</title><script src='/resources/testharness.js'><\/script><script src='/resources/testharnessreport.js'><\/script><script src='testlib/testlib.js'><\/script><div id='log'>document.written content</div><script>var t = async_test(); log('inline script #1')<\/script><script src='scripts/include-1.js'><\/script><script async src='scripts/include-2.js'><\/script>");
|
||||
document.close();
|
||||
window.setTimeout(function() {
|
||||
window.t.step(function() {
|
||||
window.assert_any(window.assert_array_equals, window.eventOrder,
|
||||
[['inline script #1', 'external script #1', 'external script #2'],
|
||||
['inline script #1', 'external script #2', 'external script #1']]);
|
||||
window.t.done();
|
||||
})},
|
||||
1000);
|
||||
};
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue