49 lines
1.5 KiB
Ruby
49 lines
1.5 KiB
Ruby
require 'spec_helper'
|
|
require File.join(Rails.root, 'spec', 'shared_behaviors', 'stream')
|
|
describe Stream::Base do
|
|
before do
|
|
@stream = Stream::Base.new(alice)
|
|
end
|
|
describe '#contacts_link' do
|
|
it 'should default to your contacts page' do
|
|
@stream.contacts_link.should =~ /contacts/
|
|
end
|
|
end
|
|
|
|
describe '.can_comment?' do
|
|
before do
|
|
@person = Factory(:person)
|
|
@stream.stub(:people).and_return([bob.person, eve.person, @person])
|
|
end
|
|
|
|
it 'allows me to comment on my local contacts post' do
|
|
post = Factory(:status_message, :author => bob.person)
|
|
@stream.can_comment?(post).should be_true
|
|
end
|
|
|
|
it 'allows me to comment on my own post' do
|
|
post = Factory(:status_message, :author => alice.person)
|
|
@stream.can_comment?(post).should be_true
|
|
end
|
|
|
|
it 'allows me to comment on any local public post' do
|
|
post = Factory(:status_message, :author => eve.person)
|
|
@stream.can_comment?(post).should be_true
|
|
end
|
|
|
|
it 'allows me to comment on a remote contacts post' do
|
|
Contact.create!(:user => @stream.user, :person => @person)
|
|
post = Factory(:status_message, :author => @person)
|
|
@stream.can_comment?(post).should be_true
|
|
end
|
|
|
|
it 'returns false if person is remote and not a contact' do
|
|
post = Factory(:status_message, :author => @person)
|
|
@stream.can_comment?(post).should be_false
|
|
end
|
|
end
|
|
|
|
describe 'shared behaviors' do
|
|
it_should_behave_like 'it is a stream'
|
|
end
|
|
end
|