e99244d89618dafa2c62e69362f112bcb15132f1
[WebKit-https.git] / LayoutTests / fast / url / invalid-urls-utf8.html
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 <html>
3 <head>
4 <script src="../js/resources/js-test-pre.js"></script>
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 <script src="resources/utilities.js"></script>
7 <!-- Set the base so that the current URL does not affect the tests. -->
8 <base href="">
9 </head>
10 <body>
11
12 <script>
13 description("This ensure we do not mess up the bytes when an URL is partially parsed and is invalid.")
14
15 // Those are all invalid URLs. They should not be partially modified by the parser.
16 var testSet = [
17     'foo://tête à tête@host/',
18     'foo://user:tête à tête@host/',
19     '    foo://<>@host/    ',
20     '    foo://user:<>@host/    ',
21     'foo://user:password@[xxxxx]/tête à tête/',
22     // The '?' is a path separator and make sure the hostname is not encoded in punicode. The hostname is an invalid IPV6 hostname.
23     'foo://user:password@[?tête à tête/',
24     'foo://user:password@[?tête à tête]/',
25     'foo://user:password@host:tête à tête/',
26     'foo://user:password@host:80tête à tête',
27     'foo://user:password@host:tête à tête/',
28     'foo://user:password@host:80tête à tête',
29     // The schemes "ws:", "ftp:", "http:", "https:", "gother:" take a shortcut during parsing so we test them separately.
30     'ws:/tête',
31     'ftp:/tête',
32     'http:/tête',
33     'https:/tête',
34     'gopher:/tête',
35 ];
36
37 for (var i = 0; i < testSet.length; ++i) {
38     src = canonicalize(testSet[i]);
39         expected = testSet[i].trim();
40         shouldBe('src', 'expected');
41 }
42
43 successfullyParsed = true;
44 </script>
45 <script src="../js/resources/js-test-post.js"></script>
46 </body>
47 </html>