2efd2b6acac60836713d220b11fe6689324ee175
[WebKit-https.git] / LayoutTests / fast / forms / script-tests / ValidityState-typeMismatch-url.js
1 description("Input type=url validation test");
2
3 function check(value, mismatchExpected) {
4     i.value = value;
5     var actual = i.validity.typeMismatch;
6     var didPass = actual == mismatchExpected;
7     var resultText = value + ' is ' + (didPass ? 'a correct ' : 'an incorrect ') + (actual ? 'invalid' : 'valid') + ' url.';
8     if (didPass)
9         testPassed(resultText);
10     else
11         testFailed(resultText);
12 }
13
14 var i = document.createElement('input');
15 i.type = 'url';
16
17 // Valid values
18 check('http://www.google.com', false);
19 check('http://localhost', false);
20 check('http://127.0.0.1', false);
21 check('http://a', false);
22 check('http://www.google.com/search?rls=en&q=WebKit&ie=UTF-8&oe=UTF-8', false);
23 check('ftp://ftp.myhost.com', false);
24 check('ssh://ssh.myhost.com', false);
25 check('somescheme://ssh.myhost.com', false);
26 check('http://a/\\\/\'\'*<>/', false);
27 check('http://a/dfs/\kds@sds', false);
28 check('http://a.a:1/search?a&b', false);
29
30 // Invalid values
31 check('www.google.com', true);
32 check('127.0.0.1', true);
33 check('.com', true);
34 check('http://www.g**gle.com', true);
35 check('http://www.google.com:aaaa', true);
36 check('http:// www.google.com', true);
37 check('http://www .google.com', true);
38 check('http://www.&#10;google.&#13;com', true);
39 check('://', true);
40 check('/http://www.google.com', true);
41 check('----ftp://a', true);
42 check('scheme//a', true);
43 check('http://host+', true);
44 check('http://myurl!', true);
45
46 var successfullyParsed = true;