Sha256: 300b67b0915c5c9884d9765139937dbbc2b1430c58489c41ba9c96c5eaa5961b
Contents?: true
Size: 1.92 KB
Versions: 2
Compression:
Stored size: 1.92 KB
Contents
require 'helper' require 'integration/shared_examples' require 'integration/client_examples' describe "draft13" do include EM::SpecHelper default_timeout 1 before :each do @request = { :port => 80, :method => "GET", :path => "/demo", :headers => { 'Host' => 'example.com', 'Upgrade' => 'websocket', 'Connection' => 'Upgrade', 'Sec-WebSocket-Key' => 'dGhlIHNhbXBsZSBub25jZQ==', 'Sec-WebSocket-Protocol' => 'sample', 'Sec-WebSocket-Origin' => 'http://example.com', 'Sec-WebSocket-Version' => '13' } } @response = { :protocol => "HTTP/1.1 101 Switching Protocols\r\n", :headers => { "Upgrade" => "websocket", "Connection" => "Upgrade", "Sec-WebSocket-Accept" => "s3pPLMBiTxaQ9kYGzzhZRbK+xOo=", } } end it_behaves_like "a websocket server" do def start_server EM::WebSocket.start(:host => "0.0.0.0", :port => 12345) { |ws| yield ws } end def start_client client = EM.connect('0.0.0.0', 12345, Draft07FakeWebSocketClient) client.send_data(format_request(@request)) yield client if block_given? end end it "should send back the correct handshake response" do em { EM.add_timer(0.1) do EventMachine::WebSocket.start(:host => "0.0.0.0", :port => 12345) { } # Create a fake client which sends draft 07 handshake connection = EM.connect('0.0.0.0', 12345, Draft07FakeWebSocketClient) connection.send_data(format_request(@request)) connection.onopen { connection.handshake_response.lines.sort. should == format_response(@response).lines.sort done } end } end it_should_behave_like "a websocket client" do def start_server EM::WebSocket.start(:host => "0.0.0.0", :port => 12345) { |ws| yield ws } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sonixlabs-em-websocket-0.3.8 | spec/integration/draft13_spec.rb |
sonixlabs-em-websocket-0.3.7 | spec/integration/draft13_spec.rb |