adding tests for pubsub client'

This commit is contained in:
maxwell 2011-01-06 11:47:16 -08:00
parent 27d8cc8003
commit 11808e3233
2 changed files with 29 additions and 8 deletions

View file

@ -4,16 +4,14 @@
class PubSubHubbub
H = {"User-Agent" => "PubSubHubbub Ruby", "Content-Type" => "application/x-www-form-urlencoded"}
def initialize(hub, options={})
@headers = H.merge(options[:head]) if options[:head]
@hub = hub.kind_of?(URI) ? hub : URI::parse(hub)
end
@headers = H.merge(options[:head]) if options[:head]
@hub = hub
end
def publish(feed)
RestClient.post @hub, :headers => H, 'hub.url' => feed, 'hub.mode' => 'publish'
end
def publish(feed)
RestClient.post(@hub, :headers => @headers, 'hub.url' => feed, 'hub.mode' => 'publish')
end
end

View file

@ -0,0 +1,23 @@
# Copyright (c) 2010, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
require 'spec_helper'
describe PubSubHubbub do
describe '#initialize' do
end
describe '#publish' do
it 'posts the feed to the given hub' do
hub = "http://hubzord.com/"
feed = 'http://rss.com/dom.atom'
body = {'hub.url' => feed, 'hub.mode' => 'publish'}
stub_request(:post, "http://hubzord.com/").
with(:body => "hub.url=http%3A%2F%2Frss.com%2Fdom.atom&headers=&hub.mode=publish",
:headers => {'Accept'=>'*/*; q=0.5, application/xml', 'Accept-Encoding'=>'gzip, deflate', 'Content-Length'=>'65', 'Content-Type'=>'application/x-www-form-urlencoded'}).to_return(:status => [202, 'you are awesome'])
PubSubHubbub.new(hub).publish(feed).code.should == 202
end
end
end