diff --git a/lib/capybara/poltergeist/browser.rb b/lib/capybara/poltergeist/browser.rb index 2d5985d..7ee0593 100644 --- a/lib/capybara/poltergeist/browser.rb +++ b/lib/capybara/poltergeist/browser.rb @@ -268,11 +268,13 @@ module Capybara::Poltergeist end def command(name, *args) - message = { 'name' => name, 'args' => args } - log message.inspect + message = JSON.dump({ 'name' => name, 'args' => args }) + log message - json = JSON.load(server.send(JSON.dump(message))) - log json.inspect + response = server.send(message) + log response + + json = JSON.load(response) if json['error'] klass = ERROR_MAPPINGS[json['error']['name']] || BrowserError diff --git a/spec/integration/session_spec.rb b/spec/integration/session_spec.rb index 0087e53..67a5993 100644 --- a/spec/integration/session_spec.rb +++ b/spec/integration/session_spec.rb @@ -540,7 +540,7 @@ describe Capybara::Session do @session.visit("/") @session.find(:css, "a").click - position = eval(TestSessions.logger.messages.last)["response"]["position"] + position = JSON.load(TestSessions.logger.messages.last)["response"]["position"] expect(position["x"]).to_not be_nil expect(position["y"]).to_not be_nil end diff --git a/spec/unit/browser_spec.rb b/spec/unit/browser_spec.rb index fac56d2..bff0128 100644 --- a/spec/unit/browser_spec.rb +++ b/spec/unit/browser_spec.rb @@ -11,13 +11,13 @@ module Capybara::Poltergeist subject { Browser.new(server, client, logger) } it 'logs requests and responses to the client' do - request = { 'name' => 'where is', 'args' => ["the love?"] } - response = { 'response' => '<3' } - server.stub(:send).with(MultiJson.dump(request)).and_return(JSON.dump(response)) + request = %({"name":"where is","args":["the love?"]}) + response = %({"response":"<3"}) + server.stub(:send).with(request).and_return(response) subject.command('where is', 'the love?') - expect(logger.string).to eq("#{request.inspect}\n#{response.inspect}\n") + expect(logger.string).to eq("#{request}\n#{response}\n") end end end