blob: 1c9f174b902b430180d8ff74ef2addc478ebe195 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../resources/js-test.js"></script>
<script src="resources/common.js"></script>
</head>
<body>
<input id="input" type="email">
<script>
description('Tests ascii-unicode conversion of IDN email addresses on input type=email.');
var i = document.getElementById('input');
var expectValid = false;
var expectInvalid = true;
function setText(text)
{
i.focus();
i.value = '';
document.execCommand('InsertText', false, text);
}
function emailCheck(expectedValue, expectedVisibleValue, expectedMismatch)
{
shouldBeEqualToString('i.value', expectedValue);
shouldBeEqualToString('getUserAgentShadowTextContent(i)', expectedVisibleValue);
if (expectedMismatch == expectValid)
shouldBeFalse('i.validity.typeMismatch');
else
shouldBeTrue('i.validity.typeMismatch');
}
debug('Values from UI');
setText('foo@ma\u00F1ana.com');
emailCheck('foo@xn--maana-pta.com', 'foo@ma\u00F1ana.com', expectValid);
setText('ma\u00F1ana@foo.com');
emailCheck('ma\u00F1ana@foo.com', 'ma\u00F1ana@foo.com', expectInvalid);
setText('ma\u00F1ana.com');
emailCheck('ma\u00F1ana.com', 'ma\u00F1ana.com', expectInvalid);
debug('Values from script');
i.value = 'foo@xn--t8j.com';
emailCheck('foo@xn--t8j.com', 'foo@\u304A.com', expectValid);
i.value = 'xn--t8j@foo.com';
emailCheck('xn--t8j@foo.com', 'xn--t8j@foo.com', expectValid);
i.value = 'xn--t8j.com';
emailCheck('xn--t8j.com', 'xn--t8j.com', expectInvalid);
i.value = 'foo@ma\u00F1ana.com';
emailCheck('foo@ma\u00F1ana.com', 'foo@ma\u00F1ana.com', expectInvalid);
debug('Multiple addresses');
i.multiple = true;
setText('foo@ma\u00F1ana.com, bar@\u304A.com');
emailCheck('foo@xn--maana-pta.com,bar@xn--t8j.com', 'foo@ma\u00F1ana.com, bar@\u304A.com', expectValid);
i.value = 'bar@xn--t8j.com, foo@xn--maana-pta.com';
emailCheck('bar@xn--t8j.com,foo@xn--maana-pta.com', 'bar@\u304A.com,foo@ma\u00F1ana.com', expectValid);
</script>
</body>
</html>