public void Should_Figure_Out_The_Correct_Host() { var request = new Request( new MockRequest().EnvironmentFor("/", new Hash { { "HTTP_HOST", "www2.example.org" } })); Assert.AreEqual("www2.example.org", request.Host); request = new Request( new MockRequest().EnvironmentFor("/", new Hash { { "SERVER_NAME", "example.org" }, { "SERVER_PORT", "9292" } })); Assert.AreEqual("example.org", request.Host); request = new Request( new MockRequest().EnvironmentFor("/", new Hash { { "HTTP_HOST", "localhost:81" }, { "HTTP_X_FORWARDED_HOST", "example.org:9292" } })); Assert.AreEqual("example.org", request.Host); var env = new MockRequest().EnvironmentFor("/", new Hash { { "SERVER_ADDR", "192.168.1.1" }, { "SERVER_PORT", "9292" } }); env.Remove("SERVER_NAME"); request = new Request(env); Assert.AreEqual("192.168.1.1", request.Host); env = new MockRequest().EnvironmentFor("/"); env.Remove("SERVER_NAME"); request = new Request(env); Assert.AreEqual(string.Empty, request.Host); }