From a615853b072d704318aa373d6934228125279b4b Mon Sep 17 00:00:00 2001 From: maxwell Date: Thu, 22 Jul 2010 11:53:57 -0700 Subject: [PATCH] DG MS; added more specs for pubsub --- lib/message_handler.rb | 23 +++++++++------------ spec/lib/message_handler_spec.rb | 35 ++++++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 15 deletions(-) diff --git a/lib/message_handler.rb b/lib/message_handler.rb index 0bed47b4f..682b846ab 100644 --- a/lib/message_handler.rb +++ b/lib/message_handler.rb @@ -12,22 +12,22 @@ class MessageHandler destinations.each{ |dest| @queue.push(Message.new(:get, dest))} end + def add_subscription_request(feed_url) + @queue.push(Message.new(:ostatus_subscribe, feed_url)) + end def add_post_request(destinations, body) b = CGI::escape( body ) destinations.each{|dest| @queue.push(Message.new(:post, dest, :body => b))} end - def add_hub_notification(destination, feed_location) - @queue.push(Message.new(:hub_publish, destination, :body => feed_location)) + # pubsubhubbub + def add_hub_notification(hub_url, feed_url) + @queue.push(Message.new(:hub_publish, hub_url, :body => feed_url)) end - def add_hub_subscription_request(hub, body) - @queue.push(Message.new(:hub_subscribe, hub, :body => body)) - end - - def add_subscription_request(feed) - @queue.push(Message.new(:ostatus_subscribe, feed)) + def add_hub_subscription_request(hub_url, feed_url) + @queue.push(Message.new(:hub_subscribe, hub_url, :body => feed_url)) end @@ -42,7 +42,7 @@ class MessageHandler case query.type when :post http = EventMachine::HttpRequest.new(query.destination).post :timeout => TIMEOUT, :body =>{:xml => query.body} - http.callback { puts query.destination; process; process} + http.callback { puts query.destination; process; process} when :get http = EventMachine::HttpRequest.new(query.destination).get :timeout => TIMEOUT http.callback {send_to_seed(query, http.response); process} @@ -87,10 +87,7 @@ class MessageHandler @type = type @destination = dest @body = opts[:body] - - opts[:callback] ||= lambda{ process; process } - - @callback = opts[:callback] + @callback = opts[:callback] ||= lambda{ process; process } @try_count = 0 end end diff --git a/spec/lib/message_handler_spec.rb b/spec/lib/message_handler_spec.rb index 3e887e1a2..0d9a56f4d 100644 --- a/spec/lib/message_handler_spec.rb +++ b/spec/lib/message_handler_spec.rb @@ -133,12 +133,25 @@ describe MessageHandler do end describe 'ostatus_subscribe' do + it 'should be able to add a GET query to the queue with required destinations' do + request = FakeHttpRequest.new(:success) + request.should_receive(:get).exactly(1).times.and_return(request) + request.stub!(:callback).and_return(true) + + EventMachine::HttpRequest.stub!(:new).and_return(request) + + EventMachine.run{ + @handler.add_subscription_request("http://evan.status.net/") + @handler.size.should == 1 + + @handler.process + EventMachine.stop + } + end end describe 'hub_publish' do - - it 'should correctly queue up a pubsubhub publish request' do destination = "http://identi.ca/hub/" feed_location = "http://google.com/" @@ -175,6 +188,24 @@ describe MessageHandler do describe 'hub_subscribe' do + it 'should process an ostatus subscription' do + request = FakeHttpRequest.new(:success) + + Diaspora::OStatusParser.stub!(:find_hub).and_return("http://hub.google.com") + MessageHandler.stub!(:add_hub_subscription_request).and_return(true) + + Diaspora::OStatusParser.stub!(:parse_sender) + Diaspora::OStatusParser.should_receive(:find_hub) + @handler.should_receive(:add_hub_subscription_request) + Diaspora::OStatusParser.should_receive(:parse_sender) + + g = mock("Message") + g.stub!(:destination).and_return("google") + + @handler.process_ostatus_subscription(g, request) + end + + end end