Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: qunit/tests/baseDomain.js

Issue 8401061: Added handling of $sitekey exceptions (Closed)
Patch Set: Created Sept. 25, 2012, 2:08 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « manifest.json ('k') | webrequest.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: qunit/tests/baseDomain.js
===================================================================
--- a/qunit/tests/baseDomain.js
+++ b/qunit/tests/baseDomain.js
@@ -1,28 +1,126 @@
(function()
{
module("URL/host tools");
test("Host name extraction", function()
{
var tests = [
+ [null, ""],
+ ["/foo/bar", ""],
["http://example.com/", "example.com"],
["http://example.com:8000/", "example.com"],
- ["http://foo:bar@example.com:8000/", "example.com"],
+ ["http://foo:bar@example.com:8000/foo:bar/bas", "example.com"],
["ftp://example.com/", "example.com"],
["http://1.2.3.4:8000/", "1.2.3.4"],
["http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]/", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"],
["http://[2001::7334]:8000/test@foo.example.com/bar", "2001::7334"],
];
for (var i = 0; i < tests.length; i++)
equal(extractHostFromURL(tests[i][0]), tests[i][1], tests[i][0]);
});
+ test("Invalid URI recognition", function()
+ {
+ var tests = [
+ null,
+ "",
+ "http:",
+ "http:foo.bar/",
+ "http://foo.bar"
+ ];
+ for (var i = 0; i < tests.length; i++)
+ {
+ raises(function()
+ {
+ return new URI(tests[i]);
+ }, tests[i]);
+ }
+ });
+
+ test("URI parsing", function()
+ {
+ var tests = [
+ ["http://example.com/", {
+ scheme: "http",
+ host: "example.com",
+ asciiHost: "example.com",
+ hostPort: "example.com",
+ port: -1,
+ path: "/",
+ prePath: "http://example.com"
+ }],
+ ["http://example.com:8000/", {
+ scheme: "http",
+ host: "example.com",
+ asciiHost: "example.com",
+ hostPort: "example.com:8000",
+ port: 8000,
+ path: "/",
+ prePath: "http://example.com:8000"
+ }],
+ ["http://foo:bar@\u0440\u043E\u0441\u0441\u0438\u044F.\u0440\u0444:8000/foo:bar/bas", {
+ scheme: "http",
+ host: "\u0440\u043E\u0441\u0441\u0438\u044F.\u0440\u0444",
+ asciiHost: "xn--h1alffa9f.xn--p1ai",
+ hostPort: "\u0440\u043E\u0441\u0441\u0438\u044F.\u0440\u0444:8000",
+ port: 8000,
+ path: "/foo:bar/bas",
+ prePath: "http://foo:bar@\u0440\u043E\u0441\u0441\u0438\u044F.\u0440\u0444:8000"
+ }],
+ ["ftp://m\xFCller.de/", {
+ scheme: "ftp",
+ host: "m\xFCller.de",
+ asciiHost: "xn--mller-kva.de",
+ hostPort: "m\xFCller.de",
+ port: -1,
+ path: "/",
+ prePath: "ftp://m\xFCller.de"
+ }],
+ ["http://1.2.3.4:8000/", {
+ scheme: "http",
+ host: "1.2.3.4",
+ asciiHost: "1.2.3.4",
+ hostPort: "1.2.3.4:8000",
+ port: 8000,
+ path: "/",
+ prePath: "http://1.2.3.4:8000"
+ }],
+ ["http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]/", {
+ scheme: "http",
+ host: "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
+ asciiHost: "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
+ hostPort: "[2001:0db8:85a3:0000:0000:8a2e:0370:7334]",
+ port: -1,
+ path: "/",
+ prePath: "http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]"
+ }],
+ ["http://[2001::7334]:8000/test@foo.example.com/bar", {
+ scheme: "http",
+ host: "2001::7334",
+ asciiHost: "2001::7334",
+ hostPort: "[2001::7334]:8000",
+ port: 8000,
+ path: "/test@foo.example.com/bar",
+ prePath: "http://[2001::7334]:8000"
+ }],
+ ];
+
+ for (var i = 0; i < tests.length; i++)
+ {
+ var url = tests[i][0];
+ var uri = new URI(url);
+ equal(uri.spec, url, "URI(" + url + ").spec");
+ for (var k in tests[i][1])
+ equal(uri[k], tests[i][1][k], "URI(" + url + ")." + k);
+ }
+ });
+
test("Determining base domain", function()
{
var tests = [
["com", "com"],
["example.com", "example.com"],
["www.example.com", "example.com"],
["www.example.com.", "example.com"],
["www.example.co.uk", "example.co.uk"],
« no previous file with comments | « manifest.json ('k') | webrequest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld