From 289187238f24af7b338f0058766b1fafb4c6c418 Mon Sep 17 00:00:00 2001 From: Bola Ahmed Buari Date: Tue, 21 Sep 2021 15:58:41 +0100 Subject: [PATCH] Maintenance: Port old preferences permission check tests to capybara. --- script/build/test_slice_tests.sh | 6 -- .../preferences_permission_check_spec.rb | 83 +++++++++++++++++++ .../preferences_permission_check_test.rb | 69 --------------- 3 files changed, 83 insertions(+), 75 deletions(-) create mode 100644 spec/system/profile/preferences_permission_check_spec.rb delete mode 100644 test/browser/preferences_permission_check_test.rb diff --git a/script/build/test_slice_tests.sh b/script/build/test_slice_tests.sh index ab85a1e08..86fe9c48f 100755 --- a/script/build/test_slice_tests.sh +++ b/script/build/test_slice_tests.sh @@ -64,7 +64,6 @@ if [ "$LEVEL" == '1' ]; then rm test/browser/integration_sipgate_test.rb rm test/browser/integration_cti_test.rb rm test/browser/preferences_language_test.rb - rm test/browser/preferences_permission_check_test.rb rm test/browser/preferences_token_access_test.rb # test/browser/swich_to_user_test.rb # test/browser/taskbar_session_test.rb @@ -132,7 +131,6 @@ elif [ "$LEVEL" == '2' ]; then rm test/browser/integration_sipgate_test.rb rm test/browser/integration_cti_test.rb rm test/browser/preferences_language_test.rb - rm test/browser/preferences_permission_check_test.rb rm test/browser/preferences_token_access_test.rb rm test/browser/switch_to_user_test.rb rm test/browser/taskbar_session_test.rb @@ -200,7 +198,6 @@ elif [ "$LEVEL" == '3' ]; then rm test/browser/integration_sipgate_test.rb rm test/browser/integration_cti_test.rb rm test/browser/preferences_language_test.rb - rm test/browser/preferences_permission_check_test.rb rm test/browser/preferences_token_access_test.rb rm test/browser/switch_to_user_test.rb rm test/browser/taskbar_session_test.rb @@ -268,7 +265,6 @@ elif [ "$LEVEL" == '4' ]; then rm test/browser/integration_sipgate_test.rb rm test/browser/integration_cti_test.rb rm test/browser/preferences_language_test.rb - rm test/browser/preferences_permission_check_test.rb rm test/browser/preferences_token_access_test.rb rm test/browser/switch_to_user_test.rb rm test/browser/taskbar_session_test.rb @@ -335,7 +331,6 @@ elif [ "$LEVEL" == '5' ]; then rm test/browser/integration_sipgate_test.rb rm test/browser/integration_cti_test.rb rm test/browser/preferences_language_test.rb - rm test/browser/preferences_permission_check_test.rb rm test/browser/preferences_token_access_test.rb rm test/browser/switch_to_user_test.rb rm test/browser/taskbar_session_test.rb @@ -405,7 +400,6 @@ elif [ "$LEVEL" == '6' ]; then # rm test/browser/integration_sipgate_test.rb # rm test/browser/integration_cti_test.rb # test/browser/preferences_language_test.rb - # test/browser/preferences_permission_check_test.rb # test/browser/preferences_token_access_test.rb rm test/browser/switch_to_user_test.rb rm test/browser/taskbar_session_test.rb diff --git a/spec/system/profile/preferences_permission_check_spec.rb b/spec/system/profile/preferences_permission_check_spec.rb new file mode 100644 index 000000000..ae1421017 --- /dev/null +++ b/spec/system/profile/preferences_permission_check_spec.rb @@ -0,0 +1,83 @@ +# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/ + +require 'rails_helper' + +RSpec.describe 'Profile > PreferencesPermissionCheck', type: :system do + let(:admin) { create(:admin) } + let(:agent) { create(:agent) } + let(:customer) { create(:customer) } + + before { visit 'profile' } + + shared_examples 'having profile page link to' do |link_name| + it "shows the #{link_name} link" do + within '.content .NavBarProfile' do + expect(page).to have_link(link_name) + end + end + end + + shared_examples 'not having profile page link to' do |link_name| + it "does not show the #{link_name} link" do + within '.content .NavBarProfile' do + expect(page).to have_no_link(link_name) + end + end + end + + context 'when logged in as admin', authenticated_as: :admin do + it_behaves_like 'having profile page link to', 'Password' + + it_behaves_like 'having profile page link to', 'Language' + + it_behaves_like 'having profile page link to', 'Linked Accounts' + + it_behaves_like 'having profile page link to', 'Avatar' + + it_behaves_like 'having profile page link to', 'Notifications' + + it_behaves_like 'having profile page link to', 'Out of Office' + + it_behaves_like 'having profile page link to', 'Calendar' + + it_behaves_like 'having profile page link to', 'Devices' + + it_behaves_like 'having profile page link to', 'Token Access' + end + + context 'when logged in as agent', authenticated_as: :agent do + it_behaves_like 'having profile page link to', 'Password' + + it_behaves_like 'having profile page link to', 'Language' + + it_behaves_like 'having profile page link to', 'Linked Accounts' + + it_behaves_like 'having profile page link to', 'Avatar' + + it_behaves_like 'having profile page link to', 'Notifications' + + it_behaves_like 'having profile page link to', 'Out of Office' + + it_behaves_like 'having profile page link to', 'Calendar' + + it_behaves_like 'having profile page link to', 'Devices' + + it_behaves_like 'having profile page link to', 'Token Access' + end + + context 'when logged in as customer', authenticated_as: :customer do + it_behaves_like 'having profile page link to', 'Password' + + it_behaves_like 'having profile page link to', 'Language' + + it_behaves_like 'having profile page link to', 'Linked Accounts' + + it_behaves_like 'having profile page link to', 'Avatar' + + it_behaves_like 'not having profile page link to', 'Notifications' + + it_behaves_like 'not having profile page link to', 'Calendar' + + it_behaves_like 'not having profile page link to', 'Token Access' + end +end diff --git a/test/browser/preferences_permission_check_test.rb b/test/browser/preferences_permission_check_test.rb deleted file mode 100644 index 9328200ad..000000000 --- a/test/browser/preferences_permission_check_test.rb +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/ - -require 'browser_test_helper' - -class PreferencesPermissionCheckTest < TestCase - - def test_permission_agent - @browser = browser_instance - login( - username: 'admin@example.com', - password: 'test', - url: browser_url, - ) - click(css: 'a[href="#current_user"]') - click(css: 'a[href="#profile"]') - match( - css: '.content .NavBarProfile', - value: 'Password', - ) - match( - css: '.content .NavBarProfile', - value: 'Language', - ) - match( - css: '.content .NavBarProfile', - value: 'Notifications', - ) - match( - css: '.content .NavBarProfile', - value: 'Calendar', - ) - match( - css: '.content .NavBarProfile', - value: 'Token Access', - ) - end - - def test_permission_customer - @browser = browser_instance - login( - username: 'nicole.braun@zammad.org', - password: 'test', - url: browser_url, - ) - click(css: 'a[href="#current_user"]') - click(css: 'a[href="#profile"]') - match( - css: '.content .NavBarProfile', - value: 'Password', - ) - match( - css: '.content .NavBarProfile', - value: 'Language', - ) - match_not( - css: '.content .NavBarProfile', - value: 'Notifications', - ) - match_not( - css: '.content .NavBarProfile', - value: 'Calendar', - ) - match_not( - css: '.content .NavBarProfile', - value: 'Token Access', - ) - end - -end