mirror of
https://github.com/servo/servo
synced 2026-04-29 19:07:38 +02:00
Interactive test for fragid resolution.
Added HTML tests for scrolling to fragid
Applied algorithm from whatwg spec
https://html.spec.whatwg.org/multipage/#the-indicated-part-of-the-document
Changes following code review
61 lines
1.4 KiB
HTML
61 lines
1.4 KiB
HTML
<!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>
|