spec/unit/admin_policy_spec.rb in hydra-access-controls-5.0.1 vs spec/unit/admin_policy_spec.rb in hydra-access-controls-5.1.0
- old
+ new
@@ -45,9 +45,49 @@
end
it "should have title_display" do
subject["title_display"].should == 'Foobar'
end
end
+
+ describe "updating default permissions" do
+ it "should create new group permissions" do
+ subject.default_permissions = [{:name=>'group1', :access=>'discover', :type=>'group'}]
+ subject.default_permissions.should == [{:type=>'group', :access=>'discover', :name=>'group1'}]
+ end
+ it "should create new user permissions" do
+ subject.default_permissions = [{:name=>'user1', :access=>'discover', :type=>'user'}]
+ subject.default_permissions.should == [{:type=>'user', :access=>'discover', :name=>'user1'}]
+ end
+ it "should not replace existing groups" do
+ subject.default_permissions = [{:name=>'group1', :access=>'discover', :type=>'group'}]
+ subject.default_permissions = [{:name=>'group2', :access=>'discover', :type=>'group'}]
+ subject.default_permissions.should == [{:type=>'group', :access=>'discover', :name=>'group1'},
+ {:type=>'group', :access=>'discover', :name=>'group2'}]
+ end
+ it "should not replace existing users" do
+ subject.default_permissions = [{:name=>'user1', :access=>'discover', :type=>'user'}]
+ subject.default_permissions = [{:name=>'user2', :access=>'discover', :type=>'user'}]
+ subject.default_permissions.should == [{:type=>'user', :access=>'discover', :name=>'user1'},
+ {:type=>'user', :access=>'discover', :name=>'user2'}]
+ end
+ it "should update permissions on existing users" do
+ subject.default_permissions = [{:name=>'user1', :access=>'discover', :type=>'user'}]
+ subject.default_permissions = [{:name=>'user1', :access=>'edit', :type=>'user'}]
+ subject.default_permissions.should == [{:type=>'user', :access=>'edit', :name=>'user1'}]
+ end
+ it "should update permissions on existing groups" do
+ subject.default_permissions = [{:name=>'group1', :access=>'discover', :type=>'group'}]
+ subject.default_permissions = [{:name=>'group1', :access=>'edit', :type=>'group'}]
+ subject.default_permissions.should == [{:type=>'group', :access=>'edit', :name=>'group1'}]
+ end
+ it "should assign user permissions when :type == 'person'" do
+ subject.default_permissions = [{:name=>'user1', :access=>'discover', :type=>'person'}]
+ subject.default_permissions.should == [{:type=>'user', :access=>'discover', :name=>'user1'}]
+ end
+ it "should raise an ArgumentError when the :type hashkey is invalid" do
+ expect{subject.default_permissions = [{:name=>'user1', :access=>'read', :type=>'foo'}]}.to raise_error(ArgumentError)
+ end
+ end
describe "Inheritable rights" do
before do
@policy = Hydra::AdminPolicy.new
@policy.default_permissions = [{:name=>"africana-faculty", :access=>"edit", :type=>"group"}, {:name=>"cool-kids", :access=>"edit", :type=>"group"}, {:name=>"julius_caesar", :access=>"edit", :type=>"user"}]