adding tests for pubsub client'
This commit is contained in:
parent
27d8cc8003
commit
11808e3233
2 changed files with 29 additions and 8 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
23
spec/lib/pubsubhubbub_spec.rb
Normal file
23
spec/lib/pubsubhubbub_spec.rb
Normal 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
|
||||
Loading…
Reference in a new issue