DG MS; added more specs for pubsub
This commit is contained in:
parent
69477b17f5
commit
a615853b07
2 changed files with 43 additions and 15 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue