spec/invoker/power/balancer_spec.rb in invoker-1.5.7 vs spec/invoker/power/balancer_spec.rb in invoker-1.5.8

- old
+ new

@@ -4,9 +4,40 @@ before do @http_connection = mock("connection") @balancer = Invoker::Power::Balancer.new(@http_connection, "http") end + context "when Host field is not capitalized" do + before(:all) do + @original_invoker_config = Invoker.config + end + + def mock_invoker_tld_as(domain) + Invoker.config = mock + Invoker.config.stubs(:tld).returns(domain) + end + + after(:all) do + Invoker.config = @original_invoker_config + end + + it "should not return 400 when host is lowercase" do + headers = { 'host' => 'somehost.com' } + mock_invoker_tld_as('test') + @http_connection.expects(:send_data).with() { |value| value =~ /404 Not Found/i } + @http_connection.expects(:close_connection_after_writing) + @balancer.headers_received(headers) + end + + it "should not return 400 when host is written as HoSt" do + headers = { 'HoSt' => 'somehost.com' } + mock_invoker_tld_as('test') + @http_connection.expects(:send_data).with() { |value| value =~ /404 Not Found/i } + @http_connection.expects(:close_connection_after_writing) + @balancer.headers_received(headers) + end + end + context "when Host field is missing in the request" do it "should return 400 as response when Host is missing" do headers = {} @http_connection.expects(:send_data).with() { |value| value =~ /400 Bad Request/i } @balancer.headers_received(headers)