Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / fast / forms / resources / ValidityState-typeMismatch-email.js
1 description("This test aims to check for typeMismatch flag and sanitization with type=email input fields.");
2
3 var i = document.createElement('input');
4 i.type = 'email';
5
6 function emailCheck(value, expectedValue, expectedMismatch, multiple)
7 {
8     i.value = value;
9     i.multiple = !!multiple;
10     var mismatch = i.validity.typeMismatch;
11     var mismatchPass = mismatch == expectedMismatch;
12     var sanitizePass = i.value == expectedValue;
13     var mismatchResult = '"' + value + '" is a ' + (mismatch ? 'invalid' : 'valid') + ' email address' + (multiple ? ' list. ' : '. ');
14     var sanitizeResult = 'It was sanitized to "' + i.value + '"' + (sanitizePass ? '.' : ', but should be sanitized to "' + expectedValue + '"');
15     var result = mismatchResult;
16     if (value != expectedValue || !sanitizePass)
17         result += sanitizeResult;
18
19     if (mismatchPass && sanitizePass)
20         testPassed(result);
21     else
22         testFailed(result);
23 }
24
25 var expectValid = false;
26 var expectInvalid = true;
27 var multiple = true;
28
29 debug("Valid single addresses when 'multiple' attribute is not set.");
30 emailCheck("something@something.com", "something@something.com", expectValid);
31 emailCheck("someone@localhost.localdomain", "someone@localhost.localdomain", expectValid);
32 emailCheck("someone@127.0.0.1", "someone@127.0.0.1", expectValid);
33 emailCheck("a@b.b", "a@b.b", expectValid);
34 emailCheck("a/b@domain.com", "a/b@domain.com", expectValid);
35 emailCheck("{}@domain.com", "{}@domain.com", expectValid);
36 emailCheck("m*'!%@something.sa", "m*'!%@something.sa", expectValid);
37 emailCheck("tu!!7n7.ad##0!!!@company.ca", "tu!!7n7.ad##0!!!@company.ca", expectValid);
38 emailCheck("%@com.com", "%@com.com", expectValid);
39 emailCheck("!#$%&'*+/=?^_`{|}~.-@com.com", "!#$%&'*+/=?^_`{|}~.-@com.com", expectValid);
40 emailCheck(".wooly@example.com", ".wooly@example.com", expectValid);
41 emailCheck("wo..oly@example.com", "wo..oly@example.com", expectValid);
42 emailCheck("someone@do-ma-in.com", "someone@do-ma-in.com", expectValid);
43 emailCheck("somebody@example", "somebody@example", expectValid);
44 emailCheck("\u000Aa@p.com\u000A", "a@p.com", expectValid);
45 emailCheck("\u000Da@p.com\u000D", "a@p.com", expectValid);
46 emailCheck("a\u000A@p.com", "a@p.com", expectValid);
47 emailCheck("a\u000D@p.com", "a@p.com", expectValid);
48 emailCheck("", "", expectValid);
49 emailCheck(" ", "", expectValid);
50 emailCheck(" a@p.com", "a@p.com", expectValid);
51 emailCheck("a@p.com ", "a@p.com", expectValid);
52 emailCheck(" a@p.com ", "a@p.com", expectValid);
53 emailCheck("\u0020a@p.com\u0020", "a@p.com", expectValid);
54 emailCheck("\u0009a@p.com\u0009", "a@p.com", expectValid);
55 emailCheck("\u000Ca@p.com\u000C", "a@p.com", expectValid);
56
57 debug("Invalid single addresses when 'multiple' attribute is not set.");
58 emailCheck("invalid:email@example.com", "invalid:email@example.com", expectInvalid);
59 emailCheck("@somewhere.com", "@somewhere.com", expectInvalid);
60 emailCheck("example.com", "example.com", expectInvalid);
61 emailCheck("@@example.com", "@@example.com", expectInvalid);
62 emailCheck("a space@example.com", "a space@example.com", expectInvalid);
63 emailCheck("something@ex..ample.com", "something@ex..ample.com", expectInvalid);
64 emailCheck("a\b@c", "a\b@c", expectInvalid);
65 emailCheck("someone@somewhere.com.", "someone@somewhere.com.", expectInvalid);
66 emailCheck("\"\"test\blah\"\"@example.com", "\"\"test\blah\"\"@example.com", expectInvalid);
67 emailCheck("\"testblah\"@example.com", "\"testblah\"@example.com", expectInvalid);
68 emailCheck("someone@somewhere.com@", "someone@somewhere.com@", expectInvalid);
69 emailCheck("someone@somewhere_com", "someone@somewhere_com", expectInvalid);
70 emailCheck("someone@some:where.com", "someone@some:where.com", expectInvalid);
71 emailCheck(".", ".", expectInvalid);
72 emailCheck("F/s/f/a@feo+re.com", "F/s/f/a@feo+re.com", expectInvalid);
73 emailCheck("some+long+email+address@some+host-weird-/looking.com", "some+long+email+address@some+host-weird-/looking.com", expectInvalid);
74 emailCheck("a @p.com", "a @p.com", expectInvalid);
75 emailCheck("a\u0020@p.com", "a\u0020@p.com", expectInvalid);
76 emailCheck("a\u0009@p.com", "a\u0009@p.com", expectInvalid);
77 emailCheck("a\u000B@p.com", "a\u000B@p.com", expectInvalid);
78 emailCheck("a\u000C@p.com", "a\u000C@p.com", expectInvalid);
79 emailCheck("a\u2003@p.com", "a\u2003@p.com", expectInvalid);
80 emailCheck("a\u3000@p.com", "a\u3000@p.com", expectInvalid);
81 emailCheck("ddjk-s-jk@asl-.com", "ddjk-s-jk@asl-.com", expectInvalid);
82 emailCheck("someone@do-.com", "someone@do-.com", expectInvalid);
83 emailCheck("somebody@-p.com", "somebody@-p.com", expectInvalid);
84 emailCheck("somebody@-.com", "somebody@-.com", expectInvalid);
85
86 debug("Valid single addresses when 'multiple' attribute is set.");
87 emailCheck("something@something.com", "something@something.com", expectValid, multiple);
88 emailCheck("someone@localhost.localdomain", "someone@localhost.localdomain", expectValid, multiple);
89 emailCheck("someone@127.0.0.1", "someone@127.0.0.1", expectValid, multiple);
90 emailCheck("a@b.b", "a@b.b", expectValid, multiple);
91 emailCheck("a/b@domain.com", "a/b@domain.com", expectValid, multiple);
92 emailCheck("{}@domain.com", "{}@domain.com", expectValid, multiple);
93 emailCheck("m*'!%@something.sa", "m*'!%@something.sa", expectValid, multiple);
94 emailCheck("tu!!7n7.ad##0!!!@company.ca", "tu!!7n7.ad##0!!!@company.ca", expectValid, multiple);
95 emailCheck("%@com.com", "%@com.com", expectValid, multiple);
96 emailCheck("!#$%&'*+/=?^_`{|}~.-@com.com", "!#$%&'*+/=?^_`{|}~.-@com.com", expectValid, multiple);
97 emailCheck(".wooly@example.com", ".wooly@example.com", expectValid, multiple);
98 emailCheck("wo..oly@example.com", "wo..oly@example.com", expectValid, multiple);
99 emailCheck("someone@do-ma-in.com", "someone@do-ma-in.com", expectValid, multiple);
100 emailCheck("somebody@example", "somebody@example", expectValid, multiple);
101 emailCheck("\u0020a@p.com\u0020", "a@p.com", expectValid, multiple);
102 emailCheck("\u0009a@p.com\u0009", "a@p.com", expectValid, multiple);
103 emailCheck("\u000Aa@p.com\u000A", "a@p.com", expectValid, multiple);
104 emailCheck("\u000Ca@p.com\u000C", "a@p.com", expectValid, multiple);
105 emailCheck("\u000Da@p.com\u000D", "a@p.com", expectValid, multiple);
106 emailCheck("a\u000A@p.com", "a@p.com", expectValid, multiple);
107 emailCheck("a\u000D@p.com", "a@p.com", expectValid, multiple);
108 emailCheck("", "", expectValid, multiple);
109 emailCheck(" ", "", expectValid, multiple);
110 emailCheck(" a@p.com", "a@p.com", expectValid, multiple);
111 emailCheck("a@p.com ", "a@p.com", expectValid, multiple);
112 emailCheck(" a@p.com ", "a@p.com", expectValid, multiple);
113
114 debug("Invalid single addresses when 'multiple' attribute is set.");
115 emailCheck("invalid:email@example.com", "invalid:email@example.com", expectInvalid, multiple);
116 emailCheck("@somewhere.com", "@somewhere.com", expectInvalid, multiple);
117 emailCheck("example.com", "example.com", expectInvalid, multiple);
118 emailCheck("@@example.com", "@@example.com", expectInvalid, multiple);
119 emailCheck("a space@example.com", "a space@example.com", expectInvalid, multiple);
120 emailCheck("something@ex..ample.com", "something@ex..ample.com", expectInvalid, multiple);
121 emailCheck("a\b@c", "a\b@c", expectInvalid, multiple);
122 emailCheck("someone@somewhere.com.", "someone@somewhere.com.", expectInvalid, multiple);
123 emailCheck("\"\"test\blah\"\"@example.com", "\"\"test\blah\"\"@example.com", expectInvalid, multiple);
124 emailCheck("\"testblah\"@example.com", "\"testblah\"@example.com", expectInvalid, multiple);
125 emailCheck("someone@somewhere.com@", "someone@somewhere.com@", expectInvalid, multiple);
126 emailCheck("someone@somewhere_com", "someone@somewhere_com", expectInvalid, multiple);
127 emailCheck("someone@some:where.com", "someone@some:where.com", expectInvalid, multiple);
128 emailCheck(".", ".", expectInvalid, multiple);
129 emailCheck("F/s/f/a@feo+re.com", "F/s/f/a@feo+re.com", expectInvalid, multiple);
130 emailCheck("some+long+email+address@some+host-weird-/looking.com", "some+long+email+address@some+host-weird-/looking.com", expectInvalid, multiple);
131 emailCheck("\u000Ba@p.com\u000B", "\u000Ba@p.com\u000B", expectInvalid, multiple);
132 emailCheck("\u2003a@p.com\u2003", "\u2003a@p.com\u2003", expectInvalid, multiple);
133 emailCheck("\u3000a@p.com\u3000", "\u3000a@p.com\u3000", expectInvalid, multiple);
134 emailCheck("a @p.com", "a @p.com", expectInvalid, multiple);
135 emailCheck("a\u0020@p.com", "a\u0020@p.com", expectInvalid, multiple);
136 emailCheck("a\u0009@p.com", "a\u0009@p.com", expectInvalid, multiple);
137 emailCheck("a\u000B@p.com", "a\u000B@p.com", expectInvalid, multiple);
138 emailCheck("a\u000C@p.com", "a\u000C@p.com", expectInvalid, multiple);
139 emailCheck("a\u2003@p.com", "a\u2003@p.com", expectInvalid, multiple);
140 emailCheck("a\u3000@p.com", "a\u3000@p.com", expectInvalid, multiple);
141 emailCheck("ddjk-s-jk@asl-.com", "ddjk-s-jk@asl-.com", expectInvalid, multiple);
142 emailCheck("someone@do-.com", "someone@do-.com", expectInvalid, multiple);
143 emailCheck("somebody@-p.com", "somebody@-p.com", expectInvalid, multiple);
144 emailCheck("somebody@-.com", "somebody@-.com", expectInvalid, multiple);
145
146 debug("Valid multiple addresses when 'multiple' attribute is set.");
147 emailCheck("someone@somewhere.com,john@doe.com,a@b.c,a/b@c.c,ualla@ualla.127", "someone@somewhere.com,john@doe.com,a@b.c,a/b@c.c,ualla@ualla.127", expectValid, multiple);
148 emailCheck("tu!!7n7.ad##0!!!@company.ca,F/s/f/a@feo-re.com,m*'@a.b", "tu!!7n7.ad##0!!!@company.ca,F/s/f/a@feo-re.com,m*'@a.b", expectValid, multiple);
149 emailCheck(" a@p.com,b@p.com", "a@p.com,b@p.com", expectValid, multiple);
150 emailCheck("a@p.com ,b@p.com", "a@p.com,b@p.com", expectValid, multiple);
151 emailCheck("a@p.com, b@p.com", "a@p.com,b@p.com", expectValid, multiple);
152 emailCheck("a@p.com,b@p.com ", "a@p.com,b@p.com", expectValid, multiple);
153 emailCheck("   a@p.com   ,   b@p.com   ", "a@p.com,b@p.com", expectValid, multiple);
154 emailCheck("\u0020a@p.com\u0020,\u0020b@p.com\u0020", "a@p.com,b@p.com", expectValid, multiple);
155 emailCheck("\u0009a@p.com\u0009,\u0009b@p.com\u0009", "a@p.com,b@p.com", expectValid, multiple);
156 emailCheck("\u000Aa@p.com\u000A,\u000Ab@p.com\u000A", "a@p.com,b@p.com", expectValid, multiple);
157 emailCheck("\u000Ca@p.com\u000C,\u000Cb@p.com\u000C", "a@p.com,b@p.com", expectValid, multiple);
158 emailCheck("\u000Da@p.com\u000D,\u000Db@p.com\u000D", "a@p.com,b@p.com", expectValid, multiple);
159
160 debug("Invalid multiple addresses when 'multiple' attribute is set.");
161 emailCheck("someone@somewhere.com,john@doe..com,a@b,a/b@c,ualla@ualla.127", "someone@somewhere.com,john@doe..com,a@b,a/b@c,ualla@ualla.127", expectInvalid, multiple);
162 emailCheck("some+long+email+address@some+host:weird-/looking.com,F/s/f/a@feo+re.com,,m*'@'!%", "some+long+email+address@some+host:weird-/looking.com,F/s/f/a@feo+re.com,,m*'@'!%", expectInvalid, multiple);
163 emailCheck("   a @p.com   ,   b@p.com   ", "a @p.com,b@p.com", expectInvalid, multiple);
164 emailCheck("   a@p.com   ,   b @p.com   ", "a@p.com,b @p.com", expectInvalid, multiple);
165 emailCheck("\u000Ba@p.com\u000B,\u000Bb@p.com\u000B", "\u000Ba@p.com\u000B,\u000Bb@p.com\u000B", expectInvalid, multiple);
166 emailCheck("\u2003a@p.com\u2003,\u2003b@p.com\u2003", "\u2003a@p.com\u2003,\u2003b@p.com\u2003", expectInvalid, multiple);
167 emailCheck("\u3000a@p.com\u3000,\u3000b@p.com\u3000", "\u3000a@p.com\u3000,\u3000b@p.com\u3000", expectInvalid, multiple);
168 emailCheck(",,", ",,", expectInvalid, multiple);
169 emailCheck(" ,,", ",,", expectInvalid, multiple);
170 emailCheck(", ,", ",,", expectInvalid, multiple);
171 emailCheck(",, ", ",,", expectInvalid, multiple);
172 emailCheck("  ,  ,  ", ",,", expectInvalid, multiple);
173 emailCheck("\u0020,\u0020,\u0020", ",,", expectInvalid, multiple);
174 emailCheck("\u0009,\u0009,\u0009", ",,", expectInvalid, multiple);
175 emailCheck("\u000A,\u000A,\u000A", ",,", expectInvalid, multiple);
176 emailCheck("\u000B,\u000B,\u000B", "\u000B,\u000B,\u000B", expectInvalid, multiple);
177 emailCheck("\u000C,\u000C,\u000C", ",,", expectInvalid, multiple);
178 emailCheck("\u000D,\u000D,\u000D", ",,", expectInvalid, multiple);
179 emailCheck("\u2003,\u2003,\u2003", "\u2003,\u2003,\u2003", expectInvalid, multiple);
180 emailCheck("\u3000,\u3000,\u3000", "\u3000,\u3000,\u3000", expectInvalid, multiple);