50 lines
1.4 KiB
HTML
50 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<script src="../../resources/js-test-pre.js"></script>
|
|
<script src="resources/utilities.js"></script>
|
|
</head>
|
|
<body>
|
|
|
|
<script>
|
|
description("Canonical URL should have a lowercase hostname for server based protocols.")
|
|
|
|
var protocolTestSet = [
|
|
['ws', true],
|
|
['wss', true],
|
|
['ftp', true],
|
|
['wss', true],
|
|
['http', true],
|
|
['file', true],
|
|
['https', true],
|
|
['ghost', false]];
|
|
|
|
var urls = ['lowercase', 'CamelCase', 'UnicodeFête'];
|
|
var urlExpectationsLowercase = ['lowercase', 'camelcase', 'xn--unicodefte-t7a'];
|
|
var urlExpectationsUppercase = ['lowercase', 'CamelCase', 'UnicodeF%C3%AAte'];
|
|
|
|
|
|
for (var protocolIndex = 0; protocolIndex < protocolTestSet.length; ++protocolIndex) {
|
|
var protocol = protocolTestSet[protocolIndex][0];
|
|
var hostnameShouldBeLowercase = protocolTestSet[protocolIndex][1];
|
|
|
|
for (var urlIndex = 0; urlIndex < urls.length; ++urlIndex) {
|
|
var url = protocol + '://' + urls[urlIndex] + '/';
|
|
src = canonicalize(url);
|
|
|
|
if (hostnameShouldBeLowercase)
|
|
expected = protocol + '://' + urlExpectationsLowercase[urlIndex] + '/';
|
|
else
|
|
expected = protocol + '://' + urlExpectationsUppercase[urlIndex] + '/';
|
|
|
|
shouldBe('src', 'expected');
|
|
}
|
|
}
|
|
|
|
successfullyParsed = true;
|
|
</script>
|
|
<script src="../../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|