<!DOCTYPE html> <title>Input Email</title> <link rel="author" title="Kazuki Kanamori" href="mailto:yogurito@gmail.com"> <link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org"> <link rel="help" href="https://html.spec.whatwg.org/multipage/#e-mail-state-(type=email)"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <input type="email" id="single_email" value="user@example.com"/> <input type="email" id="multiple_email" value="user1@example.com, user2@test.com" multiple/> <div id="log"></div> <script type="text/javascript"> var single = document.getElementById('single_email'), mult = document.getElementById('multiple_email'); test(function(){ assert_false(single.multiple); }, "single_email doesn't have the multiple attribute"); test(function(){ single.value = 'user2@example.com\u000A'; assert_equals(single.value, 'user2@example.com'); single.value = 'user3@example.com\u000D'; assert_equals(single.value, 'user3@example.com'); }, 'value should be sanitized: strip line breaks'); test(function(){ single.value = 'user4@example.com'; assert_true(single.validity.valid); single.value = 'example.com'; assert_false(single.validity.valid); }, 'Email address validity'); test(function(){ single.setAttribute('multiple', true); single.value = ' user@example.com , user2@example.com '; assert_equals(single.value, 'user@example.com,user2@example.com'); single.removeAttribute('multiple'); assert_equals(single.value, 'user@example.com,user2@example.com'); }, 'When the multiple attribute is removed, the user agent must run the value sanitization algorithm'); test(function(){ assert_true(mult.multiple); }, "multiple_email has the multiple attribute"); test(function(){ mult.value = ' user1@example.com , user2@test.com, user3@test.com '; assert_equals(mult.value, 'user1@example.com,user2@test.com,user3@test.com'); }, "run the value sanitization algorithm after setting a new value"); test(function(){ mult.value = 'user1@example.com,user2@test.com,user3@test.com'; assert_true(mult.validity.valid); mult.value = 'u,ser1@example.com,user2@test.com,user3@test.com'; assert_false(mult.validity.valid); }, "valid value is a set of valid email addresses separated by a single ','"); </script>