DG MS renamed private dispatcher; started refactor including public
dispatcher
This commit is contained in:
parent
ca8a9e8025
commit
665facaeb0
54 changed files with 222 additions and 204 deletions
|
|
@ -23,7 +23,7 @@ class CommentsController < ApplicationController
|
|||
if @comment.save
|
||||
Rails.logger.info(:event => :create, :type => :comment, :user => current_user.diaspora_handle,
|
||||
:status => :success, :comment => @comment.id, :chars => params[:text].length)
|
||||
Postzord::Dispatch.new(current_user, @comment).post
|
||||
Postzord::Dispatcher.new(current_user, @comment).post
|
||||
|
||||
respond_to do |format|
|
||||
format.js{ render(:create, :status => 201)}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class ConversationsController < ApplicationController
|
|||
|
||||
@conversation = Conversation.new(params[:conversation])
|
||||
if @conversation.save
|
||||
Postzord::Dispatch.new(current_user, @conversation).post
|
||||
Postzord::Dispatcher.new(current_user, @conversation).post
|
||||
flash[:notice] = I18n.t('conversations.create.sent')
|
||||
else
|
||||
flash[:error] = I18n.t('conversations.create.fail')
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class LikesController < ApplicationController
|
|||
|
||||
if @like.save
|
||||
Rails.logger.info("event=create type=like user=#{current_user.diaspora_handle} status=success like=#{@like.id} positive=#{positive}")
|
||||
Postzord::Dispatch.new(current_user, @like).post
|
||||
Postzord::Dispatcher.new(current_user, @like).post
|
||||
|
||||
respond_to do |format|
|
||||
format.js { render 'likes/update', :status => 201 }
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class MessagesController < ApplicationController
|
|||
|
||||
if message.save
|
||||
Rails.logger.info("event=create type=comment user=#{current_user.diaspora_handle} status=success message=#{message.id} chars=#{params[:message][:text].length}")
|
||||
Postzord::Dispatch.new(current_user, message).post
|
||||
Postzord::Dispatcher.new(current_user, message).post
|
||||
else
|
||||
flash[:error] = I18n.t('conversations.new_message.fail')
|
||||
end
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class Contact < ActiveRecord::Base
|
|||
|
||||
def dispatch_request
|
||||
request = self.generate_request
|
||||
Postzord::Dispatch.new(self.user, request).post
|
||||
Postzord::Dispatcher.new(self.user, request).post
|
||||
request
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ module Job
|
|||
def self.perform(user_id, xml, salmon_author_id)
|
||||
user = User.find(user_id)
|
||||
salmon_author = Person.find(salmon_author_id)
|
||||
zord = Postzord::Receiver.new(user, :person => salmon_author)
|
||||
zord = Postzord::Receiver::Private.new(user, :person => salmon_author)
|
||||
zord.parse_and_receive(xml)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
require File.join(Rails.root, 'lib/postzord/receiver')
|
||||
require File.join(Rails.root, 'lib/postzord/receiver/private')
|
||||
require File.join(Rails.root, 'lib/postzord/receiver/local_post_batch')
|
||||
|
||||
module Job
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
require File.join(Rails.root, 'lib/postzord/receiver/private')
|
||||
|
||||
module Job
|
||||
class ReceivePublicSalmon < Base
|
||||
require File.join(Rails.root, 'lib/postzord/receiver')
|
||||
|
||||
@queue = :receive
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
# the COPYRIGHT file.
|
||||
|
||||
|
||||
require File.join(Rails.root, 'lib/postzord/receiver')
|
||||
require File.join(Rails.root, 'lib/postzord/receiver/private')
|
||||
module Job
|
||||
class ReceiveSalmon < Base
|
||||
@queue = :receive_salmon
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ class RelayableRetraction < SignedRetraction
|
|||
elsif self.parent.author == recipient.person && self.target_author_signature_valid?
|
||||
#this is a retraction from the downstream object creator, and the recipient is the upstream owner
|
||||
self.parent_author_signature = self.sign_with_key(recipient.encryption_key)
|
||||
Postzord::Dispatch.new(recipient, self).post
|
||||
Postzord::Dispatcher.new(recipient, self).post
|
||||
self.perform(recipient)
|
||||
elsif self.parent_author_signature_valid?
|
||||
#this is a retraction from the upstream owner
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ class SignedRetraction
|
|||
if reshare = Reshare.where(:author_id => receiving_user.person.id, :root_guid => target_guid).first
|
||||
onward_retraction = self.dup
|
||||
onward_retraction.sender = receiving_user.person
|
||||
Postzord::Dispatch.new(receiving_user, onward_retraction).post
|
||||
Postzord::Dispatcher.new(receiving_user, onward_retraction).post
|
||||
end
|
||||
if target
|
||||
self.target.unsocket_from_user receiving_user if target.respond_to? :unsocket_from_user
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
require File.join(Rails.root, 'lib/diaspora/user')
|
||||
require File.join(Rails.root, 'lib/salmon/salmon')
|
||||
require File.join(Rails.root, 'lib/postzord/dispatch')
|
||||
require File.join(Rails.root, 'lib/postzord/dispatcher')
|
||||
require 'rest-client'
|
||||
|
||||
class User < ActiveRecord::Base
|
||||
|
|
@ -186,14 +186,14 @@ class User < ActiveRecord::Base
|
|||
|
||||
def dispatch_post(post, opts = {})
|
||||
additional_people = opts.delete(:additional_subscribers)
|
||||
mailman = Postzord::Dispatch.new(self, post, :additional_subscribers => additional_people)
|
||||
mailman = Postzord::Dispatcher.new(self, post, :additional_subscribers => additional_people)
|
||||
mailman.post(opts)
|
||||
end
|
||||
|
||||
def update_post(post, post_hash = {})
|
||||
if self.owns? post
|
||||
post.update_attributes(post_hash)
|
||||
Postzord::Dispatch.new(self, post).post
|
||||
Postzord::Dispatcher.new(self, post).post
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -292,7 +292,7 @@ class User < ActiveRecord::Base
|
|||
opts[:additional_subscribers] = target.resharers
|
||||
end
|
||||
|
||||
mailman = Postzord::Dispatch.new(self, retraction, opts)
|
||||
mailman = Postzord::Dispatcher.new(self, retraction, opts)
|
||||
mailman.post
|
||||
|
||||
retraction.perform(self)
|
||||
|
|
@ -309,7 +309,7 @@ class User < ActiveRecord::Base
|
|||
params[:image_url_small] = photo.url(:thumb_small)
|
||||
end
|
||||
if self.person.profile.update_attributes(params)
|
||||
Postzord::Dispatch.new(self, profile).post
|
||||
Postzord::Dispatcher.new(self, profile).post
|
||||
true
|
||||
else
|
||||
false
|
||||
|
|
|
|||
|
|
@ -29,6 +29,9 @@ module Diaspora
|
|||
# Add additional load paths for your own custom dirs
|
||||
#config.autoload_paths += %W(#{config.root}/lib)
|
||||
config.autoload_paths += %W(#{config.root}/lib)
|
||||
config.autoload_paths += %W(#{config.root}/lib/*)
|
||||
config.autoload_paths += %W(#{config.root}/lib/*/*)
|
||||
config.autoload_paths += %W(#{config.root}/lib/*/*/*)
|
||||
|
||||
# Only load the plugins named here, in the order given (default is alphabetical).
|
||||
# :all can be used as a placeholder for all plugins not explicitly named
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ module Diaspora
|
|||
#dispatch object DOWNSTREAM, received it via UPSTREAM
|
||||
unless user.owns?(comment_or_like)
|
||||
comment_or_like.save
|
||||
Postzord::Dispatch.new(user, comment_or_like).post
|
||||
Postzord::Dispatcher.new(user, comment_or_like).post
|
||||
end
|
||||
|
||||
comment_or_like.socket_to_user(user) if comment_or_like.respond_to? :socket_to_user
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ module Diaspora
|
|||
Rails.logger.info("event=disconnect user=#{diaspora_handle} target=#{person.diaspora_handle}")
|
||||
retraction = Retraction.for(self)
|
||||
retraction.subscribers = [person]#HAX
|
||||
Postzord::Dispatch.new(self, retraction).post
|
||||
Postzord::Dispatcher.new(self, retraction).post
|
||||
|
||||
AspectMembership.where(:contact_id => bad_contact.id).delete_all
|
||||
remove_contact(bad_contact)
|
||||
|
|
|
|||
22
lib/postzord/dispatcher.rb
Normal file
22
lib/postzord/dispatcher.rb
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Copyright (c) 2011, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
class Postzord::Dispatcher
|
||||
attr_reader :zord
|
||||
delegate :post, :to => :zord
|
||||
|
||||
def initialize(user, object, opts={})
|
||||
unless object.respond_to? :to_diaspora_xml
|
||||
raise 'this object does not respond_to? to_diaspora xml. try including Diaspora::Webhooks into your object'
|
||||
end
|
||||
|
||||
#if object.respond_to?(:public) && object.public?
|
||||
# Postzord::Dispatcher::Public.new(user, object, opts)
|
||||
#else
|
||||
@zord = Postzord::Dispatcher::Private.new(user, object, opts)
|
||||
#end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -1,9 +1,8 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# Copyright (c) 2011, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
class Postzord::Dispatch
|
||||
|
||||
class Postzord::Dispatcher::Private
|
||||
# @note Takes :additional_subscribers param to add to subscribers to dispatch to
|
||||
def initialize(user, object, opts={})
|
||||
unless object.respond_to? :to_diaspora_xml
|
||||
|
|
@ -1,93 +0,0 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
#
|
||||
require File.join(Rails.root, 'lib/webfinger')
|
||||
require File.join(Rails.root, 'lib/diaspora/parser')
|
||||
|
||||
module Postzord
|
||||
class Receiver
|
||||
def initialize(user, opts={})
|
||||
@user = user
|
||||
@user_person = @user.person
|
||||
@salmon_xml = opts[:salmon_xml]
|
||||
|
||||
@sender = opts[:person] || Webfinger.new(self.salmon.author_email).fetch
|
||||
@author = @sender
|
||||
|
||||
@object = opts[:object]
|
||||
end
|
||||
|
||||
def perform
|
||||
if @sender && self.salmon.verified_for_key?(@sender.public_key)
|
||||
parse_and_receive(salmon.parsed_data)
|
||||
else
|
||||
Rails.logger.info("event=receive status=abort recipient=#{@user.diaspora_handle} sender=#{@salmon.author_email} reason='not_verified for key'")
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def parse_and_receive(xml)
|
||||
@object ||= Diaspora::Parser.from_xml(xml)
|
||||
Rails.logger.info("event=receive status=start recipient=#{@user_person.diaspora_handle} payload_type=#{@object.class} sender=#{@sender.diaspora_handle}")
|
||||
if self.validate_object
|
||||
receive_object
|
||||
end
|
||||
end
|
||||
|
||||
def receive_object
|
||||
obj = @object.receive(@user, @author)
|
||||
Notification.notify(@user, obj, @author) if obj.respond_to?(:notification_type)
|
||||
Rails.logger.info("event=receive status=complete recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle} payload_type=#{obj.class}")
|
||||
obj
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
def salmon
|
||||
@salmon ||= Salmon::EncryptedSlap.from_xml(@salmon_xml, @user)
|
||||
end
|
||||
|
||||
def xml_author
|
||||
if @object.respond_to?(:relayable?)
|
||||
#if A and B are friends, and A sends B a comment from C, we delegate the validation to the owner of the post being commented on
|
||||
xml_author = @user.owns?(@object.parent) ? @object.diaspora_handle : @object.parent.author.diaspora_handle
|
||||
@author = Webfinger.new(@object.diaspora_handle).fetch if @object.author
|
||||
else
|
||||
xml_author = @object.diaspora_handle
|
||||
end
|
||||
xml_author
|
||||
end
|
||||
|
||||
def validate_object
|
||||
#begin similar
|
||||
unless @object.is_a?(Request) || @user.contact_for(@sender)
|
||||
Rails.logger.info("event=receive status=abort reason='sender not connected to recipient' recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle}")
|
||||
return false
|
||||
end
|
||||
|
||||
#special casey
|
||||
if @object.is_a?(Request)
|
||||
@object.sender_handle = @sender.diaspora_handle
|
||||
end
|
||||
|
||||
# abort if we haven't received the post to a comment
|
||||
if @object.respond_to?(:relayable?) && @object.parent.nil?
|
||||
Rails.logger.info("event=receive status=abort reason='received a comment but no corresponding post' recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle} payload_type=#{@object.class})")
|
||||
return false
|
||||
end
|
||||
|
||||
if (@author.diaspora_handle != xml_author)
|
||||
Rails.logger.info("event=receive status=abort reason='author in xml does not match retrieved person' payload_type=#{@object.class} recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle}")
|
||||
return false
|
||||
end
|
||||
|
||||
if @author
|
||||
@object.author = @author if @object.respond_to? :author=
|
||||
@object.person = @author if @object.respond_to? :person=
|
||||
end
|
||||
|
||||
@object
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
module Postzord
|
||||
class Receiver
|
||||
module Receiver
|
||||
class LocalPostBatch
|
||||
attr_reader :post, :recipient_user_ids, :users
|
||||
|
||||
|
|
|
|||
95
lib/postzord/receiver/private.rb
Normal file
95
lib/postzord/receiver/private.rb
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
#
|
||||
require File.join(Rails.root, 'lib/webfinger')
|
||||
require File.join(Rails.root, 'lib/diaspora/parser')
|
||||
|
||||
module Postzord
|
||||
module Receiver
|
||||
class Private
|
||||
def initialize(user, opts={})
|
||||
@user = user
|
||||
@user_person = @user.person
|
||||
@salmon_xml = opts[:salmon_xml]
|
||||
|
||||
@sender = opts[:person] || Webfinger.new(self.salmon.author_email).fetch
|
||||
@author = @sender
|
||||
|
||||
@object = opts[:object]
|
||||
end
|
||||
|
||||
def perform
|
||||
if @sender && self.salmon.verified_for_key?(@sender.public_key)
|
||||
parse_and_receive(salmon.parsed_data)
|
||||
else
|
||||
Rails.logger.info("event=receive status=abort recipient=#{@user.diaspora_handle} sender=#{@salmon.author_email} reason='not_verified for key'")
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def parse_and_receive(xml)
|
||||
@object ||= Diaspora::Parser.from_xml(xml)
|
||||
Rails.logger.info("event=receive status=start recipient=#{@user_person.diaspora_handle} payload_type=#{@object.class} sender=#{@sender.diaspora_handle}")
|
||||
if self.validate_object
|
||||
receive_object
|
||||
end
|
||||
end
|
||||
|
||||
def receive_object
|
||||
obj = @object.receive(@user, @author)
|
||||
Notification.notify(@user, obj, @author) if obj.respond_to?(:notification_type)
|
||||
Rails.logger.info("event=receive status=complete recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle} payload_type=#{obj.class}")
|
||||
obj
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
def salmon
|
||||
@salmon ||= Salmon::EncryptedSlap.from_xml(@salmon_xml, @user)
|
||||
end
|
||||
|
||||
def xml_author
|
||||
if @object.respond_to?(:relayable?)
|
||||
#if A and B are friends, and A sends B a comment from C, we delegate the validation to the owner of the post being commented on
|
||||
xml_author = @user.owns?(@object.parent) ? @object.diaspora_handle : @object.parent.author.diaspora_handle
|
||||
@author = Webfinger.new(@object.diaspora_handle).fetch if @object.author
|
||||
else
|
||||
xml_author = @object.diaspora_handle
|
||||
end
|
||||
xml_author
|
||||
end
|
||||
|
||||
def validate_object
|
||||
#begin similar
|
||||
unless @object.is_a?(Request) || @user.contact_for(@sender)
|
||||
Rails.logger.info("event=receive status=abort reason='sender not connected to recipient' recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle}")
|
||||
return false
|
||||
end
|
||||
|
||||
#special casey
|
||||
if @object.is_a?(Request)
|
||||
@object.sender_handle = @sender.diaspora_handle
|
||||
end
|
||||
|
||||
# abort if we haven't received the post to a comment
|
||||
if @object.respond_to?(:relayable?) && @object.parent.nil?
|
||||
Rails.logger.info("event=receive status=abort reason='received a comment but no corresponding post' recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle} payload_type=#{@object.class})")
|
||||
return false
|
||||
end
|
||||
|
||||
if (@author.diaspora_handle != xml_author)
|
||||
Rails.logger.info("event=receive status=abort reason='author in xml does not match retrieved person' payload_type=#{@object.class} recipient=#{@user_person.diaspora_handle} sender=#{@sender.diaspora_handle}")
|
||||
return false
|
||||
end
|
||||
|
||||
if @author
|
||||
@object.author = @author if @object.respond_to? :author=
|
||||
@object.person = @author if @object.respond_to? :person=
|
||||
end
|
||||
|
||||
@object
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
# the COPYRIGHT file.
|
||||
#
|
||||
module Postzord
|
||||
class Receiver
|
||||
module Receiver
|
||||
class Public
|
||||
attr_accessor :salmon, :author
|
||||
|
||||
|
|
|
|||
|
|
@ -94,8 +94,8 @@ describe ConversationsController do
|
|||
}
|
||||
)
|
||||
|
||||
p = Postzord::Dispatch.new(alice, cnv)
|
||||
Postzord::Dispatch.stub!(:new).and_return(p)
|
||||
p = Postzord::Dispatcher.new(alice, cnv)
|
||||
Postzord::Dispatcher.stub!(:new).and_return(p)
|
||||
p.should_receive(:post)
|
||||
post :create, @hash
|
||||
end
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ describe "attack vectors" do
|
|||
bad_user.delete
|
||||
post_count = Post.count
|
||||
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
user.visible_posts.include?(post_from_non_contact).should be_false
|
||||
|
|
@ -46,7 +46,7 @@ describe "attack vectors" do
|
|||
user3.contacts.create(:person => user2.person, :aspects => [user3.aspects.first])
|
||||
|
||||
salmon_xml = user.salmon(original_message).xml_for(user3.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
user3.reload.visible_posts.should_not include(StatusMessage.find(original_message.id))
|
||||
|
|
@ -64,12 +64,12 @@ describe "attack vectors" do
|
|||
|
||||
salmon_xml = user2.salmon(original_message).xml_for(user.person)
|
||||
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
malicious_message = Factory.build(:status_message, :id => original_message.id, :text => 'BAD!!!', :author => user3.person)
|
||||
salmon_xml = user3.salmon(malicious_message).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
original_message.reload.text.should == "store this!"
|
||||
|
|
@ -79,14 +79,14 @@ describe "attack vectors" do
|
|||
original_message = user2.post :status_message, :text => 'store this!', :to => aspect2.id
|
||||
|
||||
salmon_xml = user2.salmon(original_message).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
lambda {
|
||||
malicious_message = Factory.build( :status_message, :id => original_message.id, :text => 'BAD!!!', :author => user2.person)
|
||||
|
||||
salmon_xml2 = user3.salmon(malicious_message).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
}.should_not change{user.reload.visible_posts.count}
|
||||
|
|
@ -104,7 +104,7 @@ describe "attack vectors" do
|
|||
first_name = user2.profile.first_name
|
||||
salmon_xml = user3.salmon(profile).xml_for(user.person)
|
||||
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
user2.reload
|
||||
|
|
@ -116,7 +116,7 @@ describe "attack vectors" do
|
|||
original_message = user2.post :status_message, :text => 'store this!', :to => aspect2.id
|
||||
|
||||
salmon_xml = user2.salmon(original_message).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
user.visible_posts.count.should == 1
|
||||
|
|
@ -128,7 +128,7 @@ describe "attack vectors" do
|
|||
ret.type = original_message.class.to_s
|
||||
|
||||
salmon_xml = user3.salmon(ret).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
StatusMessage.count.should == 1
|
||||
|
|
@ -150,7 +150,7 @@ describe "attack vectors" do
|
|||
StatusMessage.count.should == 0
|
||||
proc {
|
||||
salmon_xml = user3.salmon(ret).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
}.should_not raise_error
|
||||
end
|
||||
|
|
@ -159,7 +159,7 @@ describe "attack vectors" do
|
|||
original_message = user2.post :status_message, :text => 'store this!', :to => aspect2.id
|
||||
|
||||
salmon_xml = user2.salmon(original_message).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
|
||||
|
|
@ -173,7 +173,7 @@ describe "attack vectors" do
|
|||
lambda {
|
||||
|
||||
salmon_xml = user3.salmon(ret).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
}.should_not change(StatusMessage, :count)
|
||||
|
|
@ -189,7 +189,7 @@ describe "attack vectors" do
|
|||
proc{
|
||||
salmon_xml = user3.salmon(ret).xml_for(user.person)
|
||||
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
}.should_not change{user.reload.contacts.count}
|
||||
|
|
@ -203,7 +203,7 @@ describe "attack vectors" do
|
|||
|
||||
proc{
|
||||
salmon_xml = user3.salmon(ret).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
}.should_not change{user.reload.contacts.count}
|
||||
end
|
||||
|
|
@ -212,7 +212,7 @@ describe "attack vectors" do
|
|||
original_message = user2.post(:photo, :user_file => uploaded_photo, :text => "store this!", :to => aspect2.id)
|
||||
|
||||
salmon_xml = user2.salmon(original_message).xml_for(user.person)
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
original_message.diaspora_handle = user3.diaspora_handle
|
||||
|
|
@ -220,7 +220,7 @@ describe "attack vectors" do
|
|||
|
||||
salmon_xml = user3.salmon(original_message).xml_for(user.person)
|
||||
|
||||
zord = Postzord::Receiver.new(user, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(user, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
original_message.reload.text.should == "store this!"
|
||||
|
|
@ -7,7 +7,7 @@ require 'spec_helper'
|
|||
describe 'a user receives a post' do
|
||||
|
||||
def receive_with_zord(user, person, xml)
|
||||
zord = Postzord::Receiver.new(user, :person => person)
|
||||
zord = Postzord::Receiver::Private.new(user, :person => person)
|
||||
zord.parse_and_receive(xml)
|
||||
end
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ describe 'a user receives a post' do
|
|||
status = bob.build_post(:status_message, :text => "Users do things", :to => @bobs_aspect.id)
|
||||
Diaspora::WebSocket.stub!(:is_connected?).and_return(true)
|
||||
Diaspora::WebSocket.should_receive(:queue_to_user).exactly(:once)
|
||||
zord = Postzord::Receiver.new(alice, :object => status, :person => bob.person)
|
||||
zord = Postzord::Receiver::Private.new(alice, :object => status, :person => bob.person)
|
||||
zord.receive_object
|
||||
end
|
||||
|
||||
|
|
@ -74,10 +74,10 @@ describe 'a user receives a post' do
|
|||
bob.add_to_streams(@sm, [bob.aspects.first])
|
||||
@sm.save
|
||||
|
||||
zord = Postzord::Receiver.new(alice, :object => @sm, :person => bob.person)
|
||||
zord = Postzord::Receiver::Private.new(alice, :object => @sm, :person => bob.person)
|
||||
zord.receive_object
|
||||
|
||||
zord = Postzord::Receiver.new(eve, :object => @sm, :person => bob.person)
|
||||
zord = Postzord::Receiver::Private.new(eve, :object => @sm, :person => bob.person)
|
||||
zord.receive_object
|
||||
end
|
||||
|
||||
|
|
@ -91,7 +91,7 @@ describe 'a user receives a post' do
|
|||
@sm.stub!(:socket_to_user)
|
||||
@sm.save
|
||||
|
||||
zord = Postzord::Receiver.new(alice, :object => @sm, :person => bob.person)
|
||||
zord = Postzord::Receiver::Private.new(alice, :object => @sm, :person => bob.person)
|
||||
zord.receive_object
|
||||
end
|
||||
|
||||
|
|
@ -103,7 +103,7 @@ describe 'a user receives a post' do
|
|||
eve.add_to_streams(@sm, [eve.aspects.first])
|
||||
@sm.save
|
||||
|
||||
zord = Postzord::Receiver.new(alice, :object => @sm, :person => bob.person)
|
||||
zord = Postzord::Receiver::Private.new(alice, :object => @sm, :person => bob.person)
|
||||
zord.receive_object
|
||||
end
|
||||
end
|
||||
|
|
@ -333,7 +333,7 @@ describe 'a user receives a post' do
|
|||
it 'processes a salmon for a post' do
|
||||
salmon_xml = salmon.xml_for(bob.person)
|
||||
|
||||
zord = Postzord::Receiver.new(bob, :salmon_xml => salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(bob, :salmon_xml => salmon_xml)
|
||||
zord.perform
|
||||
|
||||
bob.visible_posts.include?(post).should be_true
|
||||
|
|
@ -348,7 +348,7 @@ describe 'a user receives a post' do
|
|||
xml = retraction.to_diaspora_xml
|
||||
|
||||
lambda {
|
||||
zord = Postzord::Receiver.new(alice, :person => bob.person)
|
||||
zord = Postzord::Receiver::Private.new(alice, :person => bob.person)
|
||||
zord.parse_and_receive(xml)
|
||||
}.should change(StatusMessage, :count).by(-1)
|
||||
end
|
||||
|
|
@ -370,7 +370,7 @@ describe 'a user receives a post' do
|
|||
xml = new_profile.to_diaspora_xml
|
||||
|
||||
#Marshal profile
|
||||
zord = Postzord::Receiver.new(alice, :person => person)
|
||||
zord = Postzord::Receiver::Private.new(alice, :person => person)
|
||||
zord.parse_and_receive(xml)
|
||||
|
||||
#Check that marshaled profile is the same as old profile
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||
# Copyright (c) 2011, Diaspora Inc. This file is
|
||||
# licensed under the Affero General Public License version 3 or later. See
|
||||
# the COPYRIGHT file.
|
||||
|
||||
require 'spec_helper'
|
||||
|
||||
require File.join(Rails.root, 'lib/postzord')
|
||||
require File.join(Rails.root, 'lib/postzord/dispatch')
|
||||
require File.join(Rails.root, 'lib/postzord/dispatcher/private')
|
||||
|
||||
describe Postzord::Dispatch do
|
||||
describe Postzord::Dispatcher::Private do
|
||||
before do
|
||||
@sm = Factory(:status_message, :public => true, :author => alice.person)
|
||||
@subscribers = []
|
||||
|
|
@ -18,7 +17,7 @@ describe Postzord::Dispatch do
|
|||
|
||||
describe '.initialize' do
|
||||
it 'takes an sender(User) and object (responds_to #subscibers) and sets then to @sender and @object' do
|
||||
zord = Postzord::Dispatch.new(alice, @sm)
|
||||
zord = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
zord.instance_variable_get(:@sender).should == alice
|
||||
zord.instance_variable_get(:@object).should == @sm
|
||||
end
|
||||
|
|
@ -26,7 +25,7 @@ describe Postzord::Dispatch do
|
|||
context 'setting @subscribers' do
|
||||
it 'sets @subscribers from object' do
|
||||
@sm.should_receive(:subscribers).and_return(@subscribers)
|
||||
zord = Postzord::Dispatch.new(alice, @sm)
|
||||
zord = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
zord.instance_variable_get(:@subscribers).should == @subscribers
|
||||
end
|
||||
|
||||
|
|
@ -34,24 +33,24 @@ describe Postzord::Dispatch do
|
|||
new_person = Factory(:person)
|
||||
|
||||
@sm.should_receive(:subscribers).and_return(@subscribers)
|
||||
zord = Postzord::Dispatch.new(alice, @sm, :additional_subscribers => new_person)
|
||||
zord = Postzord::Dispatcher::Private.new(alice, @sm, :additional_subscribers => new_person)
|
||||
zord.instance_variable_get(:@subscribers).should == @subscribers | [new_person]
|
||||
end
|
||||
end
|
||||
|
||||
it 'sets the @sender_person object' do
|
||||
zord = Postzord::Dispatch.new(alice, @sm)
|
||||
zord = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
zord.instance_variable_get(:@sender_person).should == alice.person
|
||||
end
|
||||
|
||||
it 'raises and gives you a helpful message if the object can not federate' do
|
||||
proc{ Postzord::Dispatch.new(alice, [])
|
||||
proc{ Postzord::Dispatcher::Private.new(alice, [])
|
||||
}.should raise_error /Diaspora::Webhooks/
|
||||
end
|
||||
end
|
||||
|
||||
it 'creates a salmon base object' do
|
||||
zord = Postzord::Dispatch.new(alice, @sm)
|
||||
zord = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
zord.salmon.should_not be nil
|
||||
end
|
||||
|
||||
|
|
@ -60,7 +59,7 @@ describe Postzord::Dispatch do
|
|||
@subscribers << bob.person
|
||||
@remote_people, @local_people = @subscribers.partition{ |person| person.owner_id.nil? }
|
||||
@sm.stub!(:subscribers).and_return @subscribers
|
||||
@zord = Postzord::Dispatch.new(alice, @sm)
|
||||
@zord = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
end
|
||||
|
||||
describe '#post' do
|
||||
|
|
@ -99,7 +98,7 @@ describe Postzord::Dispatch do
|
|||
end
|
||||
context "local leia's mailman" do
|
||||
before do
|
||||
@mailman = Postzord::Dispatch.new(@local_leia, @comment)
|
||||
@mailman = Postzord::Dispatcher::Private.new(@local_leia, @comment)
|
||||
end
|
||||
it 'calls deliver_to_local with local_luke' do
|
||||
@mailman.should_receive(:deliver_to_local).with([@local_luke.person])
|
||||
|
|
@ -120,7 +119,7 @@ describe Postzord::Dispatch do
|
|||
end
|
||||
context "local luke's mailman" do
|
||||
before do
|
||||
@mailman = Postzord::Dispatch.new(@local_luke, @comment)
|
||||
@mailman = Postzord::Dispatcher::Private.new(@local_luke, @comment)
|
||||
end
|
||||
it 'does not call deliver_to_local' do
|
||||
@mailman.should_not_receive(:deliver_to_local)
|
||||
|
|
@ -145,7 +144,7 @@ describe Postzord::Dispatch do
|
|||
before do
|
||||
@comment = Factory.build(:comment, :author => @remote_raphael, :post => @post)
|
||||
@comment.save
|
||||
@mailman = Postzord::Dispatch.new(@local_luke, @comment)
|
||||
@mailman = Postzord::Dispatcher::Private.new(@local_luke, @comment)
|
||||
end
|
||||
it 'does not call deliver_to_local' do
|
||||
@mailman.should_not_receive(:deliver_to_local)
|
||||
|
|
@ -168,7 +167,7 @@ describe Postzord::Dispatch do
|
|||
before do
|
||||
@comment = @local_luke.build_comment :text => "yo", :post => @post
|
||||
@comment.save
|
||||
@mailman = Postzord::Dispatch.new(@local_luke, @comment)
|
||||
@mailman = Postzord::Dispatcher::Private.new(@local_luke, @comment)
|
||||
end
|
||||
it 'does not call deliver_to_local' do
|
||||
@mailman.should_not_receive(:deliver_to_local)
|
||||
|
|
@ -194,7 +193,7 @@ describe Postzord::Dispatch do
|
|||
@post = Factory(:status_message, :author => @remote_raphael)
|
||||
@comment = @local_luke.build_comment :text => "yo", :post => @post
|
||||
@comment.save
|
||||
@mailman = Postzord::Dispatch.new(@local_luke, @comment)
|
||||
@mailman = Postzord::Dispatcher::Private.new(@local_luke, @comment)
|
||||
end
|
||||
it 'calls deliver_to_remote with remote_raphael' do
|
||||
@mailman.should_receive(:deliver_to_remote).with([@remote_raphael])
|
||||
|
|
@ -219,7 +218,7 @@ describe Postzord::Dispatch do
|
|||
before do
|
||||
@remote_people = []
|
||||
@remote_people << alice.person
|
||||
@mailman = Postzord::Dispatch.new(alice, @sm)
|
||||
@mailman = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
@hydra = mock()
|
||||
Typhoeus::Hydra.stub!(:new).and_return(@hydra)
|
||||
end
|
||||
|
|
@ -243,7 +242,7 @@ describe Postzord::Dispatch do
|
|||
|
||||
describe '#deliver_to_local' do
|
||||
before do
|
||||
@mailman = Postzord::Dispatch.new(alice, @sm)
|
||||
@mailman = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
end
|
||||
|
||||
it 'queues a batch receive' do
|
||||
|
|
@ -280,7 +279,7 @@ describe Postzord::Dispatch do
|
|||
|
||||
it 'does not push to hub for non-public posts' do
|
||||
@sm = Factory(:status_message)
|
||||
mailman = Postzord::Dispatch.new(alice, @sm)
|
||||
mailman = Postzord::Dispatcher::Private.new(alice, @sm)
|
||||
|
||||
mailman.should_not_receive(:deliver_to_hub)
|
||||
mailman.post(:url => "http://joindiaspora.com/p/123")
|
||||
|
|
@ -291,7 +290,7 @@ describe Postzord::Dispatch do
|
|||
alice.services << @s1
|
||||
@s2 = Factory.create(:service, :user_id => alice.id)
|
||||
alice.services << @s2
|
||||
mailman = Postzord::Dispatch.new(alice, Factory(:status_message))
|
||||
mailman = Postzord::Dispatcher::Private.new(alice, Factory(:status_message))
|
||||
|
||||
Resque.stub!(:enqueue).with(Job::PublishToHub, anything)
|
||||
Resque.stub!(:enqueue).with(Job::HttpMulti, anything, anything, anything)
|
||||
|
|
@ -300,7 +299,7 @@ describe Postzord::Dispatch do
|
|||
end
|
||||
|
||||
it 'does not push to services if none are specified' do
|
||||
mailman = Postzord::Dispatch.new(alice, Factory(:status_message))
|
||||
mailman = Postzord::Dispatcher::Private.new(alice, Factory(:status_message))
|
||||
|
||||
Resque.stub!(:enqueue).with(Job::PublishToHub, anything)
|
||||
Resque.should_not_receive(:enqueue).with(Job::PostToService, anything, anything, anything)
|
||||
|
|
@ -323,7 +322,7 @@ describe Postzord::Dispatch do
|
|||
f.stub!(:subscribers)
|
||||
f.stub!(:to_diaspora_xml)
|
||||
users = [bob]
|
||||
z = Postzord::Dispatch.new(alice, f)
|
||||
z = Postzord::Dispatcher::Private.new(alice, f)
|
||||
z.instance_variable_get(:@object).should_receive(:socket_to_user).once
|
||||
z.send(:socket_to_users, users)
|
||||
end
|
||||
|
|
@ -5,9 +5,9 @@
|
|||
require 'spec_helper'
|
||||
|
||||
require File.join(Rails.root, 'lib/postzord')
|
||||
require File.join(Rails.root, 'lib/postzord/receiver')
|
||||
require File.join(Rails.root, 'lib/postzord/receiver/private')
|
||||
|
||||
describe Postzord::Receiver do
|
||||
describe Postzord::Receiver::Private do
|
||||
|
||||
before do
|
||||
@user = alice
|
||||
|
|
@ -26,7 +26,7 @@ describe Postzord::Receiver do
|
|||
Webfinger.should_not_receive(:new)
|
||||
Salmon::EncryptedSlap.should_not_receive(:from_xml)
|
||||
|
||||
zord = Postzord::Receiver.new(@user, :person => @person2, :object => @original_post)
|
||||
zord = Postzord::Receiver::Private.new(@user, :person => @person2, :object => @original_post)
|
||||
zord.instance_variable_get(:@user).should_not be_nil
|
||||
zord.instance_variable_get(:@sender).should_not be_nil
|
||||
zord.instance_variable_get(:@object).should_not be_nil
|
||||
|
|
@ -40,7 +40,7 @@ describe Postzord::Receiver do
|
|||
Salmon::EncryptedSlap.should_receive(:from_xml).with(@salmon_xml, @user).and_return(salmon_mock)
|
||||
Webfinger.should_receive(:new).and_return(web_mock)
|
||||
|
||||
zord = Postzord::Receiver.new(@user, :salmon_xml => @salmon_xml)
|
||||
zord = Postzord::Receiver::Private.new(@user, :salmon_xml => @salmon_xml)
|
||||
zord.instance_variable_get(:@user).should_not be_nil
|
||||
zord.instance_variable_get(:@sender).should_not be_nil
|
||||
zord.instance_variable_get(:@salmon_xml).should_not be_nil
|
||||
|
|
@ -49,7 +49,7 @@ describe Postzord::Receiver do
|
|||
|
||||
describe '#perform' do
|
||||
before do
|
||||
@zord = Postzord::Receiver.new(@user, :salmon_xml => @salmon_xml)
|
||||
@zord = Postzord::Receiver::Private.new(@user, :salmon_xml => @salmon_xml)
|
||||
@salmon = @zord.instance_variable_get(:@salmon)
|
||||
end
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ describe Postzord::Receiver do
|
|||
|
||||
describe 'receive_object' do
|
||||
before do
|
||||
@zord = Postzord::Receiver.new(@user, :person => @person2, :object => @original_post)
|
||||
@zord = Postzord::Receiver::Private.new(@user, :person => @person2, :object => @original_post)
|
||||
@salmon = @zord.instance_variable_get(:@salmon)
|
||||
end
|
||||
|
||||
|
|
@ -89,7 +89,7 @@ describe Postzord::Receiver do
|
|||
cm.stub!(:receive).and_return(cm)
|
||||
|
||||
Notification.should_receive(:notify).with(@user, cm, @person2)
|
||||
zord = Postzord::Receiver.new(@user, :person => @person2, :object => cm)
|
||||
zord = Postzord::Receiver::Private.new(@user, :person => @person2, :object => cm)
|
||||
zord.receive_object
|
||||
end
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ describe 'making sure the spec runner works' do
|
|||
person_status = Factory.create(:status_message, :author => person)
|
||||
m = mock()
|
||||
m.stub!(:post)
|
||||
Postzord::Dispatch.should_receive(:new).and_return(m)
|
||||
Postzord::Dispatcher.should_receive(:new).and_return(m)
|
||||
|
||||
alice.comment "yo", :post => person_status
|
||||
end
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ describe Contact do
|
|||
@contact.stub(:user).and_return(@user)
|
||||
m = mock()
|
||||
m.should_receive(:post)
|
||||
Postzord::Dispatch.should_receive(:new).and_return(m)
|
||||
Postzord::Dispatcher.should_receive(:new).and_return(m)
|
||||
@contact.dispatch_request
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ describe Job::Receive do
|
|||
it 'calls receive' do
|
||||
zord_mock = mock()
|
||||
zord_mock.should_receive(:parse_and_receive).with(@xml)
|
||||
Postzord::Receiver.should_receive(:new).with(@user, anything).and_return(zord_mock)
|
||||
Postzord::Receiver::Private.should_receive(:new).with(@user, anything).and_return(zord_mock)
|
||||
Job::Receive.perform(@user.id, @xml, @person.id)
|
||||
end
|
||||
end
|
||||
|
|
@ -82,7 +82,7 @@ describe Message do
|
|||
|
||||
msg_hash = {:author => @local_luke.person, :text => 'yo', :conversation => @local_parent}
|
||||
@object_by_parent_author = Message.create(msg_hash.dup)
|
||||
Postzord::Dispatch.new(@local_luke, @object_by_parent_author).post
|
||||
Postzord::Dispatcher.new(@local_luke, @object_by_parent_author).post
|
||||
|
||||
msg_hash[:author] = @local_leia.person
|
||||
@object_by_recipient = Message.create(msg_hash.dup)
|
||||
|
|
@ -92,7 +92,7 @@ describe Message do
|
|||
msg_hash[:author] = @local_luke.person
|
||||
msg_hash[:conversation] = @remote_parent
|
||||
@object_on_remote_parent = Message.create(msg_hash)
|
||||
Postzord::Dispatch.new(@local_luke, @object_on_remote_parent).post
|
||||
Postzord::Dispatcher.new(@local_luke, @object_on_remote_parent).post
|
||||
end
|
||||
it_should_behave_like 'it is relayable'
|
||||
|
||||
|
|
|
|||
|
|
@ -119,15 +119,12 @@ describe Notification do
|
|||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
context 'multiple people' do
|
||||
|
||||
before do
|
||||
@user3 = bob
|
||||
@sm = @user3.post(:status_message, :text => "comment!", :to => :all)
|
||||
Postzord::Receiver.new(@user3, :person => @user2.person, :object => @user2.comment("hey", :post => @sm)).receive_object
|
||||
Postzord::Receiver.new(@user3, :person => @user.person, :object => @user.comment("hey", :post => @sm)).receive_object
|
||||
Postzord::Receiver::Private.new(@user3, :person => @user2.person, :object => @user2.comment("hey", :post => @sm)).receive_object
|
||||
Postzord::Receiver::Private.new(@user3, :person => @user.person, :object => @user.comment("hey", :post => @sm)).receive_object
|
||||
end
|
||||
|
||||
it "updates the notification with a more people if one already exists" do
|
||||
|
|
@ -135,10 +132,9 @@ describe Notification do
|
|||
end
|
||||
|
||||
it 'handles double comments from the same person without raising' do
|
||||
Postzord::Receiver.new(@user3, :person => @user2.person, :object => @user2.comment("hey", :post => @sm)).receive_object
|
||||
Postzord::Receiver::Private.new(@user3, :person => @user2.person, :object => @user2.comment("hey", :post => @sm)).receive_object
|
||||
Notification.where(:recipient_id => @user3.id, :target_type => @sm.class.base_class, :target_id => @sm.id).first.actors.count.should == 2
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ describe Photo do
|
|||
xml = @photo.to_diaspora_xml
|
||||
|
||||
@photo.destroy
|
||||
zord = Postzord::Receiver.new(user2, :person => @photo.author)
|
||||
zord = Postzord::Receiver::Private.new(user2, :person => @photo.author)
|
||||
zord.parse_and_receive(xml)
|
||||
|
||||
new_photo = Photo.where(:guid => @photo.guid).first
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ describe RelayableRetraction do
|
|||
it 'dispatches' do
|
||||
zord = mock()
|
||||
zord.should_receive(:post)
|
||||
Postzord::Dispatch.should_receive(:new).with(@local_luke, @retraction).and_return zord
|
||||
Postzord::Dispatcher.should_receive(:new).with(@local_luke, @retraction).and_return zord
|
||||
@retraction.receive(@recipient, @comment.author)
|
||||
end
|
||||
it 'performs' do
|
||||
|
|
@ -71,7 +71,7 @@ describe RelayableRetraction do
|
|||
@retraction.receive(@recipient, @remote_raphael)
|
||||
end
|
||||
it 'does not dispatch' do
|
||||
Postzord::Dispatch.should_not_receive(:new)
|
||||
Postzord::Dispatcher.should_not_receive(:new)
|
||||
@retraction.receive(@recipient, @remote_raphael)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ describe SignedRetraction do
|
|||
retraction.should_receive(:dup).and_return(onward_retraction)
|
||||
|
||||
dis = mock
|
||||
Postzord::Dispatch.should_receive(:new).with(@resharer, onward_retraction).and_return(dis)
|
||||
Postzord::Dispatcher.should_receive(:new).with(@resharer, onward_retraction).and_return(dis)
|
||||
dis.should_receive(:post)
|
||||
|
||||
retraction.perform(@resharer)
|
||||
|
|
@ -35,7 +35,7 @@ describe SignedRetraction do
|
|||
Post.exists?(:id => remote_post.id).should be_false
|
||||
|
||||
dis = mock
|
||||
Postzord::Dispatch.should_receive(:new){ |sender, retraction|
|
||||
Postzord::Dispatcher.should_receive(:new){ |sender, retraction|
|
||||
sender.should == alice
|
||||
retraction.sender.should == alice.person
|
||||
dis
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ describe Diaspora::UserModules::Connecting do
|
|||
|
||||
it 'dispatches a retraction' do
|
||||
p = mock()
|
||||
Postzord::Dispatch.should_receive(:new).and_return(p)
|
||||
Postzord::Dispatcher.should_receive(:new).and_return(p)
|
||||
p.should_receive(:post)
|
||||
|
||||
bob.disconnect bob.contact_for(eve.person)
|
||||
|
|
|
|||
|
|
@ -440,16 +440,14 @@ describe User do
|
|||
|
||||
it 'dispatches the profile when tags are set' do
|
||||
@params = {:tags => '#what #hey'}
|
||||
mailman = Postzord::Dispatch.new(alice, Profile.new)
|
||||
Postzord::Dispatch.should_receive(:new).and_return(mailman)
|
||||
mailman.should_receive(:deliver_to_local)
|
||||
mailman = Postzord::Dispatcher.new(alice, Profile.new)
|
||||
Postzord::Dispatcher.should_receive(:new).and_return(mailman)
|
||||
alice.update_profile(@params).should be_true
|
||||
end
|
||||
|
||||
it 'sends a profile to their contacts' do
|
||||
mailman = Postzord::Dispatch.new(alice, Profile.new)
|
||||
Postzord::Dispatch.should_receive(:new).and_return(mailman)
|
||||
mailman.should_receive(:deliver_to_local)
|
||||
mailman = Postzord::Dispatcher.new(alice, Profile.new)
|
||||
Postzord::Dispatcher.should_receive(:new).and_return(mailman)
|
||||
alice.update_profile(@params).should be_true
|
||||
end
|
||||
|
||||
|
|
@ -498,7 +496,7 @@ describe User do
|
|||
it 'sends a notification to aspects' do
|
||||
m = mock()
|
||||
m.should_receive(:post)
|
||||
Postzord::Dispatch.should_receive(:new).and_return(m)
|
||||
Postzord::Dispatcher.should_receive(:new).and_return(m)
|
||||
photo = alice.build_post(:photo, :user_file => uploaded_photo, :text => "hello", :to => alice.aspects.first.id)
|
||||
alice.update_post(photo, :text => 'hellp')
|
||||
end
|
||||
|
|
@ -950,7 +948,7 @@ describe User do
|
|||
|
||||
it 'sends a retraction' do
|
||||
dispatcher = mock
|
||||
Postzord::Dispatch.should_receive(:new).with(bob, @retraction, anything()).and_return(dispatcher)
|
||||
Postzord::Dispatcher.should_receive(:new).with(bob, @retraction, anything()).and_return(dispatcher)
|
||||
dispatcher.should_receive(:post)
|
||||
|
||||
bob.retract(@post)
|
||||
|
|
@ -962,7 +960,7 @@ describe User do
|
|||
@post.reshares << reshare
|
||||
|
||||
dispatcher = mock
|
||||
Postzord::Dispatch.should_receive(:new).with(bob, @retraction, {:additional_subscribers => [person]}).and_return(dispatcher)
|
||||
Postzord::Dispatcher.should_receive(:new).with(bob, @retraction, {:additional_subscribers => [person]}).and_return(dispatcher)
|
||||
dispatcher.should_receive(:post)
|
||||
|
||||
bob.retract(@post)
|
||||
|
|
|
|||
|
|
@ -60,9 +60,9 @@ describe Diaspora::Relayable do
|
|||
end
|
||||
|
||||
it 'dispatches when the person receiving is the parent author' do
|
||||
p = Postzord::Dispatch.new(@local_luke, @object_by_recipient)
|
||||
p = Postzord::Dispatcher.new(@local_luke, @object_by_recipient)
|
||||
p.should_receive(:post)
|
||||
Postzord::Dispatch.stub!(:new).and_return(p)
|
||||
Postzord::Dispatcher.stub!(:new).and_return(p)
|
||||
@object_by_recipient.receive(@local_luke, @local_leia.person)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class User
|
|||
fantasy_resque do
|
||||
c = build_comment(options.merge(:text => text))
|
||||
if c.save!
|
||||
Postzord::Dispatch.new(self, c).post
|
||||
Postzord::Dispatcher.new(self, c).post
|
||||
end
|
||||
c
|
||||
end
|
||||
|
|
@ -46,7 +46,7 @@ class User
|
|||
fantasy_resque do
|
||||
l = build_like(options.merge(:positive => positive))
|
||||
if l.save!
|
||||
Postzord::Dispatch.new(self, l).post
|
||||
Postzord::Dispatcher.new(self, l).post
|
||||
end
|
||||
l
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue