DG MS; added specs for common module
This commit is contained in:
parent
628af0372f
commit
ba6d136bc7
3 changed files with 44 additions and 23 deletions
|
|
@ -7,7 +7,7 @@ class Post
|
|||
include Mongoid::Document
|
||||
include Mongoid::Timestamps
|
||||
include ROXML
|
||||
include Diaspora::Hookey
|
||||
include Diaspora::Webhooks
|
||||
|
||||
xml_accessor :owner
|
||||
xml_accessor :snippet
|
||||
|
|
|
|||
|
|
@ -1,26 +1,7 @@
|
|||
module Diaspora
|
||||
module CommonFields
|
||||
|
||||
module Webhooks
|
||||
def self.included(klass)
|
||||
klass.class_eval do
|
||||
include Mongoid::Document
|
||||
include ROXML
|
||||
include Mongoid::Timestamps
|
||||
|
||||
xml_accessor :owner
|
||||
xml_accessor :snippet
|
||||
xml_accessor :source
|
||||
|
||||
field :owner
|
||||
field :source
|
||||
field :snippet
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module Hookey
|
||||
|
||||
def self.included(klass)
|
||||
|
||||
klass.class_eval do
|
||||
before_save :notify_friends
|
||||
|
||||
|
|
@ -33,7 +14,7 @@ module Diaspora
|
|||
end
|
||||
|
||||
def prep_webhook
|
||||
self.to_xml.to_s.chomp
|
||||
self.to_xml.to_s
|
||||
end
|
||||
|
||||
def friends_with_permissions
|
||||
|
|
|
|||
40
spec/lib/common_spec.rb
Normal file
40
spec/lib/common_spec.rb
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
require File.dirname(__FILE__) + '/../spec_helper'
|
||||
|
||||
include Diaspora
|
||||
|
||||
describe Diaspora do
|
||||
|
||||
describe Webhooks do
|
||||
before do
|
||||
@post = Factory.build(:post)
|
||||
end
|
||||
|
||||
it "should add the following methods to Post on inclusion" do
|
||||
@post.respond_to?(:notify_friends).should be true
|
||||
@post.respond_to?(:prep_webhook).should be true
|
||||
@post.respond_to?(:friends_with_permissions).should be true
|
||||
end
|
||||
|
||||
it "should convert an object to a proper webhook" do
|
||||
@post.prep_webhook.should == @post.to_xml.to_s
|
||||
end
|
||||
|
||||
it "should retrieve all valid friend endpoints" do
|
||||
Factory.create(:friend, :url => "http://www.bob.com")
|
||||
Factory.create(:friend, :url => "http://www.alice.com")
|
||||
Factory.create(:friend, :url => "http://www.jane.com")
|
||||
|
||||
@post.friends_with_permissions.should include("http://www.bob.com/receive/")
|
||||
@post.friends_with_permissions.should include("http://www.alice.com/receive/")
|
||||
@post.friends_with_permissions.should include("http://www.jane.com/receive/")
|
||||
end
|
||||
|
||||
it "should send all prepped webhooks to be processed" do
|
||||
MessageHandler.any_instance.stubs(:add_post_request).returns(true)
|
||||
MessageHandler.any_instance.stubs(:process).returns(true)
|
||||
@post.notify_friends.should be true
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Loading…
Reference in a new issue