Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!DOCTYPE html>
<meta charset="utf-8">
<title>HTML: window.open `features`: tokenization -- position features `top` and `left`</title>
<meta name=timeout content=long>
<!-- user agents are not required to support open features other than `noopener`
and on some platforms position and size features don't make sense -->
<meta name="flags" content="may" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/PrefixedPostMessage.js"></script>
<script>
var windowURL = 'resources/message-opener.html';
var width = 'width=401,';
var height = 'height=402,';
[ 'left=141',
' left = 141',
'left==141',
'\nleft= 141',
',left=141,,',
'LEFT=141'
].forEach((features, idx, arr) => {
async_test(t => {
var prefixedMessage = new PrefixedMessageTest();
prefixedMessage.onMessage(t.step_func_done((data, e) => {
e.source.close();
assert_equals(data.left, 141);
}));
var win = window.open(prefixedMessage.url(windowURL) + '&expected_screenX=141', '', width + height + features);
}, `"${features}" should set left position of opened window`);
});
[ 'top=142',
' top = 142',
'top==142',
'\ttop= 142',
',top=142,,',
'TOP=142'
].forEach((features, idx, arr) => {
async_test(t => {
var prefixedMessage = new PrefixedMessageTest();
prefixedMessage.onMessage(t.step_func_done((data, e) => {
e.source.close();
assert_equals(data.top, 142);
}));
var win = window.open(prefixedMessage.url(windowURL) + '&expected_screenY=142', '', width + height + features);
}, `${format_value(features)} should set top position of opened window`);
});
[ 'top=152,left=152',
'top=152,,left=152,',
'top=152==left=152',
',,top= 152, left=152'
].forEach((features, idx, arr) => {
async_test(t => {
var prefixedMessage = new PrefixedMessageTest();
prefixedMessage.onMessage(t.step_func_done((data, e) => {
e.source.close();
assert_equals(data.top, 152);
assert_equals(data.left, 152);
}));
var win = window.open(prefixedMessage.url(windowURL) + '&expected_screenX=152&expected_screenY=152', '', width + height + features);
}, `${format_value(features)} should set top and left position of opened window`);
});
</script>