From 4cdcd23fb28b087e4252220b902415a99677f05b Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Fri, 5 Jun 2020 19:48:07 +1000 Subject: [PATCH] MDL-68931 core: No feedback link on footer if the feature is disabled --- lib/classes/userfeedback.php | 13 +++++++++- lib/outputrenderers.php | 2 +- lib/tests/behat/userfeedback.feature | 36 ++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 lib/tests/behat/userfeedback.feature diff --git a/lib/classes/userfeedback.php b/lib/classes/userfeedback.php index d74f6214984..8128336cdf0 100644 --- a/lib/classes/userfeedback.php +++ b/lib/classes/userfeedback.php @@ -96,7 +96,7 @@ class core_userfeedback { public static function should_display_reminder(): bool { global $CFG; - if ($CFG->enableuserfeedback && isloggedin() && !isguestuser()) { + if (static::can_give_feedback()) { $give = get_user_preferences('core_userfeedback_give'); $remind = get_user_preferences('core_userfeedback_remind'); @@ -145,6 +145,17 @@ class core_userfeedback { return $url; } + /** + * Whether the current can give feedback. + * + * @return bool + */ + public static function can_give_feedback(): bool { + global $CFG; + + return $CFG->enableuserfeedback && isloggedin() && !isguestuser(); + } + /** * Returns the last major upgrade time * diff --git a/lib/outputrenderers.php b/lib/outputrenderers.php index 240d4490a9d..8802a9e90ec 100644 --- a/lib/outputrenderers.php +++ b/lib/outputrenderers.php @@ -835,7 +835,7 @@ class core_renderer extends renderer_base { } } - if (isloggedin() && !isguestuser()) { + if (core_userfeedback::can_give_feedback()) { $output .= html_writer::div( $this->render_from_template('core/userfeedback_footer_link', ['url' => core_userfeedback::make_link()->out(false)]) ); diff --git a/lib/tests/behat/userfeedback.feature b/lib/tests/behat/userfeedback.feature new file mode 100644 index 00000000000..b090f807f67 --- /dev/null +++ b/lib/tests/behat/userfeedback.feature @@ -0,0 +1,36 @@ +@core +Feature: Gathering user feedback + In order to facilitate data collection from as broad a sample of Moodle users as possible + As Moodle HQ + We should add a link within Moodle to a permanent URL on which surveys will be placed + + Scenario: Users should see a feedback link on footer when the feature is enabled + Given the following config values are set as admin: + | enableuserfeedback | 1 | + When I log in as "admin" + Then I should see "Give feedback" in the "page-footer" "region" + + Scenario: Users should not see a feedback link on footer when the feature is disabled + Given the following config values are set as admin: + | enableuserfeedback | 0 | + When I log in as "admin" + Then I should not see "Give feedback" in the "page-footer" "region" + + Scenario: Visitors should not see a feedback link on footer when they are not logged in + Given the following config values are set as admin: + | enableuserfeedback | 1 | + When I am on site homepage + Then I should not see "Give feedback" in the "page-footer" "region" + + @javascript + Scenario: Users should not see the notification after they click on the remind me later link + Given the following config values are set as admin: + | enableuserfeedback | 1 | + | userfeedback_nextreminder | 2 | + | userfeedback_remindafter | 90 | + When I log in as "admin" + And I follow "Dashboard" in the user menu + And I click on "Remind me later" "link" + And I reload the page + Then I should not see "Give feedback" in the "region-main" "region" + And I should not see "Remind me later" in the "region-main" "region"