Initial commit
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
require_relative '../spec_helper'
|
||||
|
||||
describe CartoDB::TablePrivacyManager do
|
||||
before(:all) do
|
||||
@user = FactoryGirl.create(:valid_user, quota_in_bytes: 524288000, table_quota: 500, private_tables_enabled: true)
|
||||
end
|
||||
|
||||
before(:each) do
|
||||
bypass_named_maps
|
||||
end
|
||||
|
||||
after(:all) do
|
||||
@user.destroy
|
||||
end
|
||||
|
||||
it 'should not change table privacy if setting it fails' do
|
||||
table = ::Table.new
|
||||
table.user_id = @user.id
|
||||
table.name = 'manolo'
|
||||
table.privacy = Carto::UserTable::PRIVACY_PRIVATE
|
||||
table.save
|
||||
|
||||
table.privacy == Carto::UserTable::PRIVACY_PUBLIC
|
||||
|
||||
table.stubs(:set_from_table_privacy) { raise StandardError }
|
||||
|
||||
expect { table.save to_raise }.to raise_exception StandardError
|
||||
|
||||
table.privacy.should == Carto::UserTable::PRIVACY_PRIVATE
|
||||
end
|
||||
|
||||
shared_examples_for 'table create_canonical_visualization support' do
|
||||
describe '#apply_privacy_change' do
|
||||
it 'changes canonical visualization privacy' do
|
||||
table = create_table(user_id: @user.id, name: "aaa", privacy: UserTable::PRIVACY_PRIVATE)
|
||||
previous_privacy = table.instance_eval { previous_privacy }
|
||||
user_table = table.instance_eval { @user_table }
|
||||
privacy_changed = table.instance_eval { privacy_changed? }
|
||||
|
||||
manager = CartoDB::TablePrivacyManager.new(user_table)
|
||||
manager.apply_privacy_change(table, previous_privacy, privacy_changed)
|
||||
user_table.reload
|
||||
user_table.table_visualization.privacy.should eq Carto::Visualization::PRIVACY_PRIVATE
|
||||
|
||||
table.privacy = UserTable::PRIVACY_PUBLIC
|
||||
table.save
|
||||
user_table.reload
|
||||
user_table.table_visualization.privacy.should eq Carto::Visualization::PRIVACY_PUBLIC
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'legacy models' do
|
||||
it_behaves_like 'table create_canonical_visualization support'
|
||||
|
||||
before(:each) do
|
||||
Table.any_instance.stubs(:model_class).returns(::UserTable)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'new models' do
|
||||
it_behaves_like 'table create_canonical_visualization support'
|
||||
|
||||
before(:each) do
|
||||
Table.any_instance.stubs(:model_class).returns(Carto::UserTable)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user