From b65ccd60600f838fef02a068cc80d166bf05ecaa Mon Sep 17 00:00:00 2001 From: Seth Call Date: Mon, 27 Aug 2012 08:56:02 -0500 Subject: [PATCH] * fixing tests made for switch all send messages to binary. tests broke because of some mocks --- Gemfile | 4 ++++ lib/jam_websockets/router.rb | 5 ++++- spec/jam_websockets/router_spec.rb | 16 ++++++++-------- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 610aee4f4..a3221afa9 100644 --- a/Gemfile +++ b/Gemfile @@ -19,6 +19,10 @@ gem 'logging' gem 'activerecord-jdbc-adapter' gem 'activerecord-jdbcpostgresql-adapter' +group :development do + gem 'pry' +end + group :test do gem 'cucumber' gem 'rspec' diff --git a/lib/jam_websockets/router.rb b/lib/jam_websockets/router.rb index de5b54770..3eefb729e 100644 --- a/lib/jam_websockets/router.rb +++ b/lib/jam_websockets/router.rb @@ -1,3 +1,4 @@ +require 'pry' require 'set' require 'hot_bunnies' require 'thread' @@ -379,7 +380,9 @@ module JamWebsockets @log.debug "user #{user.email} logged in" # respond with LOGIN_ACK to let client know it was successful - login_ack = @message_factory.login_ack(client.request["origin"]).to_s + #binding.pry + remote_port, remote_ip = Socket.unpack_sockaddr_in(client.get_peername) + login_ack = @message_factory.login_ack(remote_ip).to_s send_to_client(client, login_ack) # remove from pending_queue diff --git a/spec/jam_websockets/router_spec.rb b/spec/jam_websockets/router_spec.rb index 55af3d486..e0fc699a2 100644 --- a/spec/jam_websockets/router_spec.rb +++ b/spec/jam_websockets/router_spec.rb @@ -1,7 +1,6 @@ require 'spec_helper' require 'thread' - LoginClient = Class.new do attr_accessor :onmsgblock, :onopenblock @@ -29,8 +28,8 @@ LoginClient = Class.new do puts msg end - def request() - return { "origin" => "1.1.1.1"} + def get_peername + return "\x00\x02\x93\v\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00" # 37643, "localhost" end end @@ -42,12 +41,12 @@ def login(router, user, password) message_factory = MessageFactory.new client = LoginClient.new - login_ack = message_factory.login_ack("1.1.1.1") + login_ack = message_factory.login_ack("127.0.0.1") - client.should_receive(:send).with(login_ack.to_s) + router.should_receive(:send_to_client).with(client, login_ack.to_s) client.should_receive(:onclose) client.should_receive(:onerror) - client.should_receive(:request).and_return({"origin" => "1.1.1.1"}) + client.should_receive(:get_peername).and_return("\x00\x02\x93\v\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00") @router.new_client(client) client.onopenblock.call @@ -66,7 +65,7 @@ def login_jam_session(router, client, jam_session) message_factory = MessageFactory.new login_jam_session = message_factory.login_jam_session(jam_session.id) login_ack = message_factory.login_jam_session_ack(false, nil); - client.should_receive(:send).with(login_ack.to_s) + router.should_receive(:send_to_client).with(client, login_ack.to_s) client.onmsgblock.call login_jam_session.to_s end @@ -154,11 +153,12 @@ describe Router do error_msg = message_factory.server_rejection_error("invalid login") - client.should_receive(:send).with(error_msg.to_s) + @router.should_receive(:send_to_client).with(client, error_msg.to_s) client.should_receive(:close_websocket) client.should_receive(:onclose) client.should_receive(:onerror) + @router.new_client(client) client.onopenblock.call