Newer
Older
# 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 ContactsController do
before do
sign_in :user, bob
@controller.stub(:current_user).and_return(bob)
describe '#sharing' do
it "succeeds" do
get :sharing
response.should be_success
end
it 'eager loads the aspects' do
get :sharing
assigns[:contacts].first.aspect_memberships.loaded?.should be_true
it "assigns only the people sharing with you with 'share_with' flag" do
get :sharing, :id => 'share_with'
assigns[:contacts].to_set.should == bob.contacts.sharing.to_set
describe '#index' do
it "succeeds" do
get :index
response.should be_success
end
it "assigns contacts" do
get :index
contacts = assigns(:contacts)
contacts.to_set.should == bob.contacts.to_set
end
it "shows only contacts a user is sharing with" do
contact = bob.contacts.first
contact.update_attributes(:sharing => false)
get :index, :set => "mine"
contacts = assigns(:contacts)
contacts.to_set.should == bob.contacts.receiving.to_set
end
it "shows all contacts (sharing and receiving)" do
contact = bob.contacts.first
contact.update_attributes(:sharing => false)
get :index, :set => "all"
contacts = assigns(:contacts)
contacts.to_set.should == bob.contacts.to_set
it 'will return the contacts for multiple aspects' do
get :index, :aspect_ids => bob.aspect_ids, :format => 'json'
assigns[:people].map(&:id).should =~ bob.contacts.map{|c| c.person.id}
response.should be_success
end
get :index
save_fixture(html_for("body"), "aspects_manage")
end
it 'does not select duplicate contacts' do
aspect = bob.aspects.create(:name => 'hilarious people')
aspect.contacts << bob.contact_for(eve.person)
get :index, :format => 'json', :aspect_ids => bob.aspect_ids
assigns[:people].map{|p| p.id}.uniq.should == assigns[:people].map{|p| p.id}
assigns[:people].map(&:id).should =~ bob.contacts.map{|c| c.person.id}
it 'succeeds' do
get :featured
response.should be_success
end
it 'gets queries for users in the app config' do
AppConfig[:featured_users] = [alice.diaspora_handle]
get :featured
assigns[:people].should == [alice.person]
end
end