Skip to content
Extraits de code Groupes Projets
Valider bf0afeed rédigé par maxwell's avatar maxwell
Parcourir les fichiers

i really have no clue why this works nwow

parent 2db3366e
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -32,6 +32,7 @@ group :test do
gem 'autotest'
gem 'factory_girl_rails'
gem 'database_cleaner'
gem 'em-spec', :git => 'http://github.com/danielsdeleo/em-spec.git'
end
group :development do
......
require File.dirname(__FILE__) + '/../spec_helper'
EventMachine.run{
#require 'em-spec/rspec'
describe SocketController do
before do
Factory.create(:user)
......@@ -11,22 +12,18 @@ describe SocketController do
end
it 'should unstub the websocket' do
EventMachine.next_tick {
WebSocket.initialize_channel
WebSocket.push_to_clients("what").should_not == "stub"
WebSocket.unsubscribe(1).should_not == "stub"
WebSocket.subscribe.should_not == "stub"
}
end
it 'should add a new subscriber to the websocket channel' do
EventMachine.next_tick {
puts "balls"
WebSocket.initialize_channel
puts "foobar"
@controller.new_subscriber.should == 1
}
end
end
EventMachine.stop
}
require File.dirname(__FILE__) + '/../spec_helper'
EventMachine.run{
describe MessageHandler do
before do
@handler = MessageHandler.new
......@@ -10,42 +9,45 @@ describe MessageHandler do
describe 'GET messages' do
describe 'creating a GET query' do
it 'should be able to add a GET query to the queue with required destinations' do
EM.next_tick{
EventMachine.run{
@handler.add_get_request(@message_urls)
@handler.size.should == @message_urls.size
}
EventMachine.stop
}
end
end
describe 'processing a GET query' do
it 'should remove sucessful http requests from the queue' do
EM.next_tick{
request = FakeHttpRequest.new(:success)
request.should_receive(:get).and_return(request)
EventMachine::HttpRequest.stub!(:new).and_return(request)
EventMachine.run {
@handler.add_get_request("http://www.google.com/")
@handler.size.should == 1
@handler.process
@handler.size.should == 0
EventMachine.stop
}
end
it 'should only retry a bad request three times ' do
EM.next_tick{
request = FakeHttpRequest.new(:failure)
request.should_receive(:get).exactly(MessageHandler::NUM_TRIES).times.and_return(request)
EventMachine::HttpRequest.stub!(:new).and_return(request)
@handler.add_get_request("http://www.google.com/")
EventMachine.run {
@handler.add_get_request("http://asdfsdajfsdfbasdj.com/")
@handler.size.should == 1
@handler.process
@handler.size.should == 0
}
EventMachine.stop
}
end
end
end
......@@ -54,67 +56,76 @@ describe MessageHandler do
it 'should be able to add a post message to the queue' do
EM.next_tick{
EventMachine.run {
@handler.size.should ==0
@handler.add_post_request(@message_urls.first, @message_body)
@handler.size.should == 1
}
EventMachine.stop
}
end
it 'should be able to insert many posts into the queue' do
EM.next_tick{
EventMachine.run {
@handler.size.should == 0
@handler.add_post_request(@message_urls, @message_body)
@handler.size.should == @message_urls.size
}
EventMachine.stop
}
end
it 'should post a single message to a given URL' do
EM.next_tick{
request = FakeHttpRequest.new(:success)
request.should_receive(:post).and_return(request)
EventMachine::HttpRequest.stub!(:new).and_return(request)
EventMachine.run{
@handler.add_post_request(@message_urls.first, @message_body)
@handler.size.should == 1
@handler.process
@handler.size.should == 0
}
EventMachine.stop
}
end
end
describe "Mixed Queries" do
it 'should process both POST and GET requests in the same queue' do
EM.next_tick{
request = FakeHttpRequest.new(:success)
request.should_receive(:get).exactly(3).times.and_return(request)
request.should_receive(:post).exactly(3).times.and_return(request)
EventMachine::HttpRequest.stub!(:new).and_return(request)
EventMachine.run{
@handler.add_post_request(@message_urls,@message_body)
@handler.size.should == 3
@handler.add_get_request(@message_urls)
@handler.size.should == 6
@handler.process
#timer = EventMachine::Timer.new(1) do
timer = EventMachine::Timer.new(1) do
@handler.size.should == 0
#end
}
EventMachine.stop
end
}
end
it 'should be able to have seperate POST and GET have different callbacks' do
EM.next_tick{
request = FakeHttpRequest.new(:success)
request.should_receive(:get).exactly(1).times.and_return(request)
request.should_receive(:post).exactly(1).times.and_return(request)
@handler.should_receive(:send_to_seed).once
EventMachine::HttpRequest.stub!(:new).and_return(request)
EventMachine.run{
@handler.add_post_request(@message_urls.first,@message_body)
@handler.add_get_request(@message_urls.first)
@handler.process
EventMachine.stop
}
end
......@@ -125,7 +136,6 @@ class FakeHttpRequest
def initialize(callback_wanted)
@callback = callback_wanted
end
def response
"NOTE YOU ARE IN FAKE HTTP"
end
......@@ -139,5 +149,4 @@ class FakeHttpRequest
b.call if @callback == :failure
end
end
EventMachine.stop
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter