diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid')
13 files changed, 409 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/.gitkeep b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/.gitkeep new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/.gitkeep diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/001.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/001.html new file mode 100644 index 000000000..32599bbc5 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/001.html @@ -0,0 +1,16 @@ +<!doctype html> +<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed --> +<title>Fragment Navigation: Updating document address</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +test(function() { + assert_equals(location.hash, "", "Page must be loaded with no hash") + var original_location = location.href; + location.hash = "test"; + assert_equals(location.hash, "#test"); + assert_equals(location.href, original_location + "#test"); + location.hash = "" +}); +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/002.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/002.html new file mode 100644 index 000000000..92bfd6341 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/002.html @@ -0,0 +1,21 @@ +<!doctype html> +<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed --> +<title>Fragment Navigation: Updating document address twice</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="log"></div> +<script> +test(function() { + assert_equals(location.hash, "", "Page must be loaded with no hash") + var original_location = location.href; + location.hash = "test"; + assert_equals(location.hash, "#test"); + assert_equals(location.href, original_location + "#test"); + + location.hash = "test1"; + assert_equals(location.hash, "#test1"); + assert_equals(location.href, original_location + "#test1"); + + location.hash = ""; +}); +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/003.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/003.html new file mode 100644 index 000000000..200a6dc34 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/003.html @@ -0,0 +1,25 @@ +<!doctype html> +<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed --> +<title>Fragment Navigation: Updating scroll position</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div id="log"></div> +<div id="test">scroll 1</div> +<div style="height:10000px">Filler</div> +<div id="test1">scroll 2</div> +<script> +test(function() { + assert_equals(document.body.scrollTop, 0); + location.hash = "test"; + + var scroll1 = document.body.scrollTop; + assert_true(scroll1 > 0); + + location.hash = "test1"; + var scroll2 = document.body.scrollTop; + assert_true(scroll2 > scroll1); + + location.hash = "" +}); +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/004.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/004.html new file mode 100644 index 000000000..950172d7b --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/004.html @@ -0,0 +1,23 @@ +<!doctype html> +<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed --> +<title>Fragment Navigation: hashchange event</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + assert_equals(location.hash, "", "Page must be loaded with no hash"); + location.hash = "test"; + + addEventListener("hashchange", + t.step_func(function(e) { + assert_equals(e.target, window); + assert_equals(e.type, "hashchange"); + assert_true(e.bubbles, "bubbles"); + assert_false(e.cancelable, "cancelable"); + t.done(); + }), true) +}); +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/005.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/005.html new file mode 100644 index 000000000..f0761a64f --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/005.html @@ -0,0 +1,23 @@ +<!doctype html> +<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed --> +<title>Fragment Navigation: hashchange event</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var original_url = location.href; + assert_equals(location.hash, "", "Page must be loaded with no hash"); + location.hash = "test"; + + addEventListener("hashchange", + t.step_func(function(e) { + assert_equals(e.oldURL, original_url, "oldURL property"); + assert_equals(e.newURL, location.href, "newURL property"); + location.hash = ""; + t.done(); + }), true); +}); +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/006.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/006.html new file mode 100644 index 000000000..a65b9eb4a --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/006.html @@ -0,0 +1,34 @@ +<!doctype html> +<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed --> +<title>Fragment Navigation: hashchange event multiple changes old/newURL</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var original_url = location.href; + assert_equals(location.hash, "", "Page must be loaded with no hash"); + location.hash = "test"; + + var count = 0; + var mid_url = location.href; + + addEventListener("hashchange", + t.step_func(function(e) { + if (count === 0) { + assert_equals(e.oldURL, original_url, "oldURL property first update"); + assert_equals(e.newURL, mid_url, "newURL property first update"); + count = 1; + } else if (count === 1) { + assert_equals(e.oldURL, mid_url, "oldURL property second update"); + assert_equals(e.newURL, location.href, "newURL property second update"); + location.hash = ""; + t.done(); + } + }), true); + + location.hash = "test1"; +}); +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/007.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/007.html new file mode 100644 index 000000000..0b6fe813b --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/007.html @@ -0,0 +1,37 @@ +<!doctype html> +<!-- this tests the spec as it hopefully will be once bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=17155 is fixed --> +<title>Fragment Navigation: hashchange event multiple changes old/newURL</title> +<meta name=timeout content=long> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div id="log"></div> +<script> +var t = async_test(); +t.step(function() { + var original_url = location.href; + assert_equals(location.hash, "", "Page must be loaded with no hash"); + + var count = 0; + + location.hash = "test"; + + hashes = []; + + addEventListener("hashchange", + t.step_func(function(e) { + if (count < 100) { + location.hash = "test" + count++; + hashes.push(location.hash); + } else if (count === 100) { + expected = []; + for (var i=0; i<100; i++) { + expected.push("#test" + i); + } + assert_array_equals(hashes, expected); + location.hash = ""; + t.done(); + } + }), true); +}); +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/MANIFEST b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/MANIFEST new file mode 100644 index 000000000..eaa8e6d61 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/MANIFEST @@ -0,0 +1,7 @@ +001.html +002.html +003.html +004.html +005.html +006.html +007.html diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-percent-encoded.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-percent-encoded.html new file mode 100644 index 000000000..3196d8be8 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-frag-percent-encoded.html @@ -0,0 +1,59 @@ +<!doctype html> +<title>Fragment Navigation: fragment id should be percent-decoded</title> +<meta name=timeout content=long> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div></div> +<div id="has two spaces" style="position:absolute; top:200px;"></div> +<div id="escape%20collision" style="position:absolute; top:300px;"></div> +<div id="escape collision" style="position:absolute; top:400px;"></div> +<div id="do%20not%20go%20here" style="position:absolute; top:400px;"></div> +<div style="height:200em;"></div> +<script> +var steps = [{ + fragid:'has%20two%20spaces', + handler: function(){ + assert_equals( scrollPosition(), 200 ); + } + },{ + fragid:'escape%20collision', + handler: function(){ + assert_equals( scrollPosition(), 400 ); + } + },{ + fragid:'do%20not%20go%20here', + handler: function(){ + // don't move + assert_equals( scrollPosition(), 400 ); + } + }]; + +function scrollPosition(){ + return document.documentElement.scrollTop || document.body.scrollTop; +} + +function runNextStep(){ + if( steps.length > 0 ) { + var step = steps.shift(); + var listener = t.step_func( function(){ + step.handler(); + runNextStep(); + }); + scrollToFragmentThenDo( step.fragid, listener ); + } else { + t.done(); + } +} + +function scrollToFragmentThenDo( fragid, then ){ + location.hash = fragid; + setTimeout( then, 1 ); +} + +var t = async_test(); +t.step( function(){ + assert_equals(location.hash, "", "Page must be loaded with no hash"); + runNextStep(); +}) +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-anchor-name.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-anchor-name.html new file mode 100644 index 000000000..43dbaf9e2 --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-anchor-name.html @@ -0,0 +1,53 @@ +<!doctype html> +<title>Fragment Navigation: scroll to anchor name is lower priority than equal id</title> +<meta name=timeout content=long> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div></div> +<a name="anchor1" style="position:absolute; top:200px;"></a> +<div id="id-equals-anchor" style="position:absolute; top:300px;"></div> +<a name="id-equals-anchor" style="position:absolute; top:400px;"></a> +<div style="height:200em;"></div> +<script> +var steps = [{ + fragid:'anchor1', + handler: function(){ + assert_equals( scrollPosition(), 200 ); + } + },{ + fragid:'id-equals-anchor', + handler: function(){ + // id still takes precedence over anchor name + assert_equals( scrollPosition(), 300 ); + } + }]; + +function scrollPosition(){ + return document.documentElement.scrollTop || document.body.scrollTop; +} + +function runNextStep(){ + if( steps.length > 0 ) { + var step = steps.shift(); + var listener = t.step_func( function(){ + step.handler(); + runNextStep(); + }); + scrollToFragmentThenDo( step.fragid, listener ); + } else { + t.done(); + } +} + +function scrollToFragmentThenDo( fragid, then ){ + location.hash = fragid; + setTimeout( then, 1 ); +} + +var t = async_test(); +t.step( function(){ + assert_equals(location.hash, "", "Page must be loaded with no hash"); + runNextStep(); +}) +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html new file mode 100644 index 000000000..601d40a2a --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html @@ -0,0 +1,51 @@ +<!doctype html> +<title>Fragment Navigation: TOP is a valid element id, which overrides navigating to top of the document</title> +<meta name=timeout content=long> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div></div> +<div id="Top" style="position:absolute; top:200px;"></div> +<div style="height:200em; position:relative;"></div> +<script> +var steps = [{ + fragid:'Top', + handler: function(){ + assert_equals( scrollPosition(), 200 ); + } + },{ + // scroling to top should work when fragid differs from id by case. + fragid:'top', + handler: function(){ + assert_equals( scrollPosition(), 0 ); + } + }]; + +function scrollPosition(){ + return document.documentElement.scrollTop || document.body.scrollTop; +} + +function runNextStep(){ + if( steps.length > 0 ) { + var step = steps.shift(); + var listener = t.step_func( function(){ + step.handler(); + runNextStep(); + }); + scrollToFragmentThenDo( step.fragid, listener ); + } else { + t.done(); + } +} + +function scrollToFragmentThenDo( fragid, then ){ + location.hash = fragid; + setTimeout( then, 1 ); +} + +var t = async_test(); +t.step( function(){ + assert_equals(location.hash, "", "Page must be loaded with no hash"); + runNextStep(); +}) +</script> diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html new file mode 100644 index 000000000..3265a71bf --- /dev/null +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html @@ -0,0 +1,60 @@ +<!doctype html> +<title>Fragment Navigation: When fragid is TOP scroll to the top of the document</title> +<meta name=timeout content=long> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<div></div> +<div id="not-the-top"></div> +<div style="height:200em"></div> +<script> +var steps = [{ + fragid:'not-the-top', + handler: function(){ + assert_not_equals( scrollPosition(), 0 ); + } + },{ + fragid:'top', + handler: function(){ + assert_equals( scrollPosition(), 0 ); + } + },{ + fragid:'not-the-top', + handler: function(){ + assert_not_equals( scrollPosition(), 0 ); + } + },{ + fragid:'TOP', + handler: function(){ + assert_equals( scrollPosition(), 0 ); + } + }]; + +function scrollPosition(){ + return document.documentElement.scrollTop || document.body.scrollTop; +} + +function runNextStep(){ + if( steps.length > 0 ) { + var step = steps.shift(); + var listener = t.step_func( function(){ + step.handler(); + runNextStep(); + }); + scrollToFragmentThenDo( step.fragid, listener ); + } else { + t.done(); + } +} + +function scrollToFragmentThenDo( fragid, then ){ + location.hash = fragid; + setTimeout( then, 1 ); +} + +var t = async_test(); +t.step( function(){ + assert_equals(location.hash, "", "Page must be loaded with no hash"); + runNextStep(); +}) +</script> |