email.html (2799B)
1 <!DOCTYPE html> 2 <title>Input Email</title> 3 <link rel="author" title="Kazuki Kanamori" href="mailto:yogurito@gmail.com"> 4 <link rel="author" title="Denis Ah-Kang" href="mailto:denis@w3.org"> 5 <link rel="help" href="https://html.spec.whatwg.org/multipage/#e-mail-state-(type=email)"> 6 <script src="/resources/testharness.js"></script> 7 <script src="/resources/testharnessreport.js"></script> 8 <input type="email" id="single_email" value="user@example.com"/> 9 <input type="email" id="multiple_email" value="user1@example.com, user2@test.com" multiple/> 10 <div id="log"></div> 11 12 <script type="text/javascript"> 13 var single = document.getElementById('single_email'), 14 mult = document.getElementById('multiple_email'); 15 16 test(function(){ 17 assert_false(single.multiple); 18 }, "single_email doesn't have the multiple attribute"); 19 20 test(function(){ 21 single.value = 'user2@example.com\u000A'; 22 assert_equals(single.value, 'user2@example.com'); 23 single.value = 'user3@example.com\u000D'; 24 assert_equals(single.value, 'user3@example.com'); 25 }, 'value should be sanitized: strip line breaks'); 26 27 test(function(){ 28 single.value = 'user4@example.com'; 29 assert_true(single.validity.valid); 30 single.value = 'example.com'; 31 assert_false(single.validity.valid); 32 }, 'Email address validity'); 33 34 test(function(){ 35 single.setAttribute('multiple', true); 36 single.value = ' user@example.com , user2@example.com '; 37 assert_equals(single.value, 'user@example.com,user2@example.com'); 38 single.removeAttribute('multiple'); 39 assert_equals(single.value, 'user@example.com,user2@example.com'); 40 }, 'When the multiple attribute is removed, the user agent must run the value sanitization algorithm'); 41 42 test(function(){ 43 assert_true(mult.multiple); 44 }, "multiple_email has the multiple attribute"); 45 46 test(function(){ 47 mult.value = ' user1@example.com , user2@test.com, user3@test.com '; 48 assert_equals(mult.value, 'user1@example.com,user2@test.com,user3@test.com'); 49 }, "run the value sanitization algorithm after setting a new value"); 50 51 test(function(){ 52 mult.value = 'user1@example.com,user2@test.com,user3@test.com'; 53 assert_true(mult.validity.valid); 54 55 mult.value = 'u,ser1@example.com,user2@test.com,user3@test.com'; 56 assert_false(mult.validity.valid); 57 }, "valid value is a set of valid email addresses separated by a single ','"); 58 59 test(function(){ 60 mult.removeAttribute('multiple'); 61 mult.value = 'user1@example.com , user2@example.com'; 62 assert_equals(mult.value, 'user1@example.com , user2@example.com'); 63 mult.setAttribute('multiple', true); 64 assert_equals(mult.value, 'user1@example.com,user2@example.com'); 65 }, 'When the multiple attribute is set, the user agent must run the value sanitization algorithm'); 66 </script>