public void TestComposeUrl()

in DarabonbaUnitTests/CoreTest.cs [21:63]


        public void TestComposeUrl()
        {
            Request request = new Request();

            var url = Core.ComposeUrl(request);
            Assert.Equal("http://", url);

            request.Headers["host"] = "fake.domain.com";
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com", url);

            request.Port = 8080;
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080", url);

            request.Pathname = "/index.html";
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080/index.html", url);

            request.Query["foo"] = "";
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080/index.html?foo=", url);

            request.Query["foo"] = "bar";
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080/index.html?foo=bar", url);

            request.Pathname = "/index.html?a=b";
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080/index.html?a=b&foo=bar", url);

            request.Pathname = "/index.html?a=b&";
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080/index.html?a=b&foo=bar", url);

            request.Query["fake"] = null;
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080/index.html?a=b&foo=bar", url);

            request.Query["fake"] = "val*";
            url = Core.ComposeUrl(request);
            Assert.Equal("http://fake.domain.com:8080/index.html?a=b&foo=bar&fake=val%2A", url);
        }