From 201327e1f319c42ded745ac216cb5b321df7636e Mon Sep 17 00:00:00 2001 From: André Bernardes Date: Tue, 24 Feb 2015 13:20:01 -0300 Subject: [PATCH] Created tests for the new controller and added images --- public/images/control-panel/role-management.gif | Bin 0 -> 2117 bytes public/images/control-panel/role-management.png | Bin 0 -> 3712 bytes public/stylesheets/application.css | 6 ++++++ test/functional/profile_roles_controller_test.rb | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 4 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 public/images/control-panel/role-management.gif create mode 100644 public/images/control-panel/role-management.png diff --git a/public/images/control-panel/role-management.gif b/public/images/control-panel/role-management.gif new file mode 100644 index 0000000..7b01c9e Binary files /dev/null and b/public/images/control-panel/role-management.gif differ diff --git a/public/images/control-panel/role-management.png b/public/images/control-panel/role-management.png new file mode 100644 index 0000000..1b518bb Binary files /dev/null and b/public/images/control-panel/role-management.png differ diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 403b71d..ed847c8 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -4685,6 +4685,12 @@ h1#agenda-title { .controller-profile_editor a.control-panel-welcome-page { background-image: url(../images/control-panel/welcome-page.png) } +.controller-profile_editor a.control-panel-roles { + background-image: url(../images/control-panel/role-management.png) +} +.controller-profile_editor .msie6 a.control-panel-roles { + background-image: url(../images/control-panel/role-management.gif) +} /* ==> public/stylesheets/controller_profile_members.css <== */ .controller-profile_members .no-boxes { margin: 30px diff --git a/test/functional/profile_roles_controller_test.rb b/test/functional/profile_roles_controller_test.rb index 01efb2b..d849c8a 100644 --- a/test/functional/profile_roles_controller_test.rb +++ b/test/functional/profile_roles_controller_test.rb @@ -1,32 +1,106 @@ -class ProfileRolesController < ActionController::TestCase +require_relative "../test_helper" +require 'profile_roles_controller' + +class ProfileRolesControllerTest < ActionController::TestCase def setup - @controller = RoleController.new + @controller = ProfileRolesController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new @role = Role.find(:first) - login_as(:ze) end should 'create a custom role' do - + community = fast_create(Community) + admin = create_user_with_permission('admin_user', 'manage_custom_roles', community) + login_as :admin_user + post :create, :profile => community.identifier, :role => {:name => "some_role", :permissions => ["edit_profile"] } + role = Role.last + assert_equal "some_role" , role.name + assert_equal community.id, role.profile_id end + should 'not create a custom role without permission' do + community = fast_create(Community) + moderator = create_user_with_permission('profile_admin', 'edit_profile', community) + login_as :profile_admin + post :create, :profile => community.identifier, :role => {:name => "admin", :permissions => ["edit_profile"] } + + assert_response 403 + assert_template 'access_denied' + + role = Role.last + + assert_not_equal "admin" , role.name + end + + should 'delete a custom role not used' do + community = fast_create(Community) + admin = create_user_with_permission('admin_user', 'manage_custom_roles', community) + login_as :admin_user + role = Role.create!({:name => 'delete_article', :key => 'profile_delete_article', :profile_id => community.id, :environment => Environment.default}, :without_protection => true) + post :remove , :profile => community.identifier, :id => role.id + assert_response :redirect + assert_redirected_to :action => 'index' + + assert_not_includes Role.all, role end should 'delete a custom role being used' do + community = fast_create(Community) + admin = create_user_with_permission('admin_user', 'manage_custom_roles', community) + login_as :admin_user + role = Role.create!({:name => 'delete_article', :key => 'profile_delete_article', :profile_id => community.id, :environment => Environment.default}, :without_protection => true) + admin.add_role(role, community) + moderator_role = Role.find_by_name("moderator") + + assert_not_includes community.members_by_role(moderator_role), admin + post :remove , :profile => community.identifier, :id => role.id, :roles => [moderator_role.id] + + assert_response :redirect + assert_redirected_to :action => 'index' + + assert_not_includes Role.all, role + assert_includes community.members_by_role(moderator_role), admin end should 'assign a custom role to single user' do + community = fast_create(Community) + admin = create_user_with_permission('admin_user', 'manage_custom_roles', community) + login_as :admin_user + role = Role.create!({:name => 'delete_article', :key => 'profile_delete_article', :profile_id => community.id, :environment => Environment.default}, :without_protection => true) + + assert_not_includes community.members_by_role(role), admin + + post :define, :profile => community.identifier, :id => role.id, :assign_role_by => "members", :person_id => admin.id + assert_includes community.members_by_role(role), admin end should 'replace a role with a custom role' do + community = fast_create(Community) + admin = create_user_with_permission('admin_user', 'manage_custom_roles', community) + moderator = create_user_with_permission('profile_admin', 'edit_profile', community) + login_as :admin_user + role = Role.create!({:name => 'delete_article', :key => 'profile_delete_article', :profile_id => community.id, :environment => Environment.default}, :without_protection => true) + moderator_role = Role.find_by_name("moderator") + admin.add_role(moderator_role, community) + + assert_not_includes community.members_by_role(role), admin + + assert_not_includes community.members_by_role(role), moderator + assert_not_includes community.members_by_role(moderator_role), moderator + + post :define, :profile => community.identifier, :id => role.id, :assign_role_by => "roles", :selected_role => moderator_role.id + + assert_not_includes community.members_by_role(moderator_role), admin + assert_includes community.members_by_role(role), admin + assert_not_includes community.members_by_role(role), moderator + assert_not_includes community.members_by_role(moderator_role), moderator end - role = Role.create!(:name => 'environment_role', :key => 'environment_role', :environment => Environment.default) end -- libgit2 0.21.2