require 'spec_helper' shared_examples_for 'content platform user without show rights for hidden platform' do it 'should not be able to perform index action' do @platform.update_column(:visibility, 'hidden') get :index, platform_id: @platform response.should_not be_success end end shared_examples_for 'content platform user with show rights for hidden platform' do it 'should be able to perform index action' do @platform.update_column(:visibility, 'hidden') get :index, platform_id: @platform response.should be_success end end shared_examples_for 'content platform user with show rights' do it 'should be able to perform index action for main platform' do get :index, platform_id: @platform response.should be_success end it 'should be able to perform index action for personal platform' do get :index, platform_id: @personal_platform response.should be_success end end describe Platforms::ContentsController do before do stub_symlink_methods @platform = FactoryGirl.create(:platform) @personal_platform = FactoryGirl.create(:platform, platform_type: 'personal') @user = FactoryGirl.create(:user) end context 'for guest' do it 'should not be able to perform index action for main platform', anonymous_access: false do get :index, platform_id: @platform response.should_not be_success end it 'should not be able to perform index action for personal platform', anonymous_access: false do get :index, platform_id: @personal_platform response.should_not be_success end it_should_behave_like 'content platform user with show rights' if APP_CONFIG['anonymous_access'] it_should_behave_like 'content platform user without show rights for hidden platform' end context 'for global admin' do before do http_login(FactoryGirl.create(:admin)) end it_should_behave_like 'content platform user with show rights' it_should_behave_like 'content platform user with show rights for hidden platform' end context 'for owner user' do before do http_login(@user) @platform.owner = @user; @platform.save create_relation(@platform, @user, 'admin') end it_should_behave_like 'content platform user with show rights' it_should_behave_like 'content platform user with show rights for hidden platform' end context 'for member of platform' do before do http_login(@user) @platform.add_member(@user) @personal_platform.add_member(@user) end it_should_behave_like 'content platform user with show rights' it_should_behave_like 'content platform user with show rights for hidden platform' end context 'for simple user' do before do http_login(@user) end it_should_behave_like 'content platform user with show rights' it_should_behave_like 'content platform user without show rights for hidden platform' end end