From 414a99535bc4f7fe5d6dd7fdb0e7a802c0bbaf7c Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Wed, 2 Nov 2022 10:36:37 +0800 Subject: [PATCH 1/5] MDL-76169 behat: Add improved steps for using action menus This commit adds new steps related to action menus to support: * Choosing an item in a named action menu * Choosing an item in a named action menu within a container * Confirming that an action menu item does or does not exist in a named action menu * Confirming that an action menu item does or does not exist in a named action menu within a container The existing action menu steps were insufficient as they assume that there is only one action menu within he container, which is not necessarily the case. The existing action menu steps are not non-JS friendly and will error if JS is disabled, without providing any fallback when one is easily available. Unfortunately these steps cannot be used to replace the existing steps without manual intervention. --- lib/behat/classes/partial_named_selector.php | 12 ++ lib/tests/behat/behat_action_menu.php | 122 ++++++++++++++++++- 2 files changed, 132 insertions(+), 2 deletions(-) diff --git a/lib/behat/classes/partial_named_selector.php b/lib/behat/classes/partial_named_selector.php index f0d0ddcb96e..99c7d1b12a6 100644 --- a/lib/behat/classes/partial_named_selector.php +++ b/lib/behat/classes/partial_named_selector.php @@ -86,6 +86,7 @@ class behat_partial_named_selector extends \Behat\Mink\Selector\PartialNamedSele */ protected static $allowedselectors = array( 'activity' => 'activity', + 'actionmenu' => 'actionmenu', 'badge' => 'badge', 'block' => 'block', 'button' => 'button', @@ -138,6 +139,17 @@ class behat_partial_named_selector extends \Behat\Mink\Selector\PartialNamedSele protected static $moodleselectors = array( 'activity' => << << <<ensure_node_is_visible($node); $node->click(); } + + /** + * Select a specific item in an action menu. + * + * @When /^I choose the "(?P(?:[^"]|\\")*)" item in the "(?P(?:[^"]|\\")*)" action menu$/ + * @param string $item The item to choose + * @param string $actionmenu The text used in the description of the action menu + */ + public function i_choose_in_the_named_menu(string $item, string $actionmenu): void { + $menu = $this->find('actionmenu', $actionmenu); + $this->select_item_in_action_menu($item, $menu); + } + + /** + * Select a specific item in an action menu within a container. + * + * @When /^I choose the "(?P(?:[^"]|\\")*)" item in the "(?P(?:[^"]|\\")*)" action menu of the "(?P(?:[^"]|\\")*)" "(?P(?:[^"]|\\")*)"$/ + * @param string $item The item to choose + * @param string $actionmenu The text used in the description of the action menu + * @param string|NodeElement $locator The identifer used for the container + * @param string $selector The type of container to locate + */ + public function i_choose_in_the_named_menu_in_container(string $item, string $actionmenu, $locator, $selector): void { + $container = $this->find($selector, $locator); + $menu = $this->find('actionmenu', $actionmenu, false, $container); + $this->select_item_in_action_menu($item, $menu); + } + + /** + * Select an item in the specified menu. + * + * Note: This step does work both with, and without, JavaScript. + * + * @param string $item Item string value + * @param NodeElement $menu The menu NodeElement to select from + */ + protected function select_item_in_action_menu(string $item, NodeElement $menu): void { + if ($this->running_javascript()) { + // Open the menu by clicking on the trigger. + $this->execute( + 'behat_general::i_click_on', + [$menu, "NodeElement"] + ); + } + + // Select the menu item. + $this->execute( + 'behat_general::i_click_on_in_the', + [$item, "link", $menu, "NodeElement"] + ); + } + + /** + * The action menu item should not exist. + * + * @Then /^the "(?P(?:[^"]|\\")*)" item should not exist in the "(?P(?:[^"]|\\")*)" action menu$/ + * @param string $item The item to check + * @param string $actionmenu The text used in the description of the action menu + */ + public function item_should_not_exist(string $item, string $actionmenu): void { + $menu = $this->find('actionmenu', $actionmenu); + $this->execute('behat_general::should_not_exist_in_the', [ + $item, 'link', + $menu, 'NodeElement' + ]); + } + + /** + * The action menu item should not exist within a container. + * + * @Then /^the "(?P(?:[^"]|\\")*)" item should not exist in the "(?P(?:[^"]|\\")*)" action menu of the "(?P(?:[^"]|\\")*)" "(?P(?:[^"]|\\")*)"$/ + * @param string $item The item to check + * @param string $actionmenu The text used in the description of the action menu + * @param string|NodeElement $locator The identifer used for the container + * @param string $selector The type of container to locate + */ + public function item_should_not_exist_in_the(string $item, string $actionmenu, $locator, $selector): void { + $container = $this->find($selector, $locator); + $menu = $this->find('actionmenu', $actionmenu, false, $container); + $this->execute('behat_general::should_not_exist_in_the', [ + $item, 'link', + $menu, 'NodeElement' + ]); + } + + + /** + * The action menu item should exist. + * + * @Then /^the "(?P(?:[^"]|\\")*)" item should exist in the "(?P(?:[^"]|\\")*)" action menu$/ + * @param string $item The item to check + * @param string $actionmenu The text used in the description of the action menu + */ + public function item_should_exist(string $item, string $actionmenu): void { + $menu = $this->find('actionmenu', $actionmenu); + $this->execute('behat_general::should_exist_in_the', [ + $item, 'link', + $menu, 'NodeElement' + ]); + } + + /** + * The action menu item should exist within a container. + * + * @Then /^the "(?P(?:[^"]|\\")*)" item should exist in the "(?P(?:[^"]|\\")*)" action menu of the "(?P(?:[^"]|\\")*)" "(?P(?:[^"]|\\")*)"$/ + * @param string $item The item to check + * @param string $actionmenu The text used in the description of the action menu + * @param string|NodeElement $locator The identifer used for the container + * @param string $selector The type of container to locate + */ + public function item_should_exist_in_the(string $item, string $actionmenu, $locator, $selector): void { + $container = $this->find($selector, $locator); + $menu = $this->find('actionmenu', $actionmenu, false, $container); + $this->execute('behat_general::should_exist_in_the', [ + $item, 'link', + $menu, 'NodeElement' + ]); + } } From e53e25af94983801e566655a58d64a597e28c05f Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Wed, 2 Nov 2022 10:52:32 +0800 Subject: [PATCH 2/5] MDL-76169 behat: Normalise exception message in should (not) steps These steps have accepted a NodeElement instance as an argument for some time, but were trying to cast it to string when formulating exception messages, making it harder to debug and, in the case of the 'should see' step, not work at all. This patch introduces a new function to produce a consistent naming for them. --- lib/behat/classes/behat_session_trait.php | 16 ++++++++++++++++ lib/tests/behat/behat_general.php | 7 +++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/behat/classes/behat_session_trait.php b/lib/behat/classes/behat_session_trait.php index dc9082795ba..a9c5f317f89 100644 --- a/lib/behat/classes/behat_session_trait.php +++ b/lib/behat/classes/behat_session_trait.php @@ -224,6 +224,22 @@ trait behat_session_trait { ]; } + /** + * Get a description of the selector and locator to use in an exception message. + * + * @param string $selector The type of locator + * @param mixed $locator The locator text + * @return string + */ + protected function get_selector_description(string $selector, $locator): string { + if ($selector === 'NodeElement') { + $description = $locator->getText(); + return "'{$description}' {$selector}"; + } + + return "'{$locator}' {$selector}"; + } + /** * Send key presses straight to the currently active element. * diff --git a/lib/tests/behat/behat_general.php b/lib/tests/behat/behat_general.php index e421253d68e..6beb204bc2a 100644 --- a/lib/tests/behat/behat_general.php +++ b/lib/tests/behat/behat_general.php @@ -1209,7 +1209,8 @@ EOF; $containernode = $this->find($containerselectortype, $containerelement); // Specific exception giving info about where can't we find the element. - $locatorexceptionmsg = "{$element} in the {$containerelement} {$containerselectortype}"; + $containerdescription = $this->get_selector_description($containerselectortype, $containerelement); + $locatorexceptionmsg = "{$element} not found in the {$containerdescription}}"; $exception = new ElementNotFoundException($this->getSession(), $selectortype, null, $locatorexceptionmsg); // Looks for the requested node inside the container node. @@ -1243,8 +1244,10 @@ EOF; } // The element was found and should not have been. Throw an exception. + $elementdescription = $this->get_selector_description($selectortype, $element); + $containerdescription = $this->get_selector_description($containerselectortype, $containerelement); throw new ExpectationException( - "The '{$element}' '{$selectortype}' exists in the '{$containerelement}' '{$containerselectortype}'", + "The {$elementdescription} exists in the {$containerdescription}", $this->getSession() ); } From 5e0b23579035eb652744b9ca37813540fd675764 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Wed, 2 Nov 2022 10:58:20 +0800 Subject: [PATCH 3/5] MDL-76169 mod_quiz: Add quiz question bank behat resolver --- .../overview/tests/behat/regrading.feature | 50 +++++++------ mod/quiz/tests/behat/behat_mod_quiz.php | 7 ++ .../bulkmove/tests/behat/bulk_move.feature | 6 +- .../tests/behat/columnsortorder.feature | 16 ++--- .../tests/behat/question_comment.feature | 39 ++++------- .../behat/question_comment_column.feature | 6 +- .../tests/behat/customfield_question.feature | 3 +- .../customfield_question_visbility.feature | 3 +- .../behat/delete_question_column.feature | 18 ++--- .../tests/behat/qbank_editquestion.feature | 6 +- .../tests/behat/question_status.feature | 4 +- .../tests/behat/export_to_xml_action.feature | 6 +- .../behat/question_history_action.feature | 10 +-- .../behat/question_version_column.feature | 6 +- .../behat/move_question_categories.feature | 12 ++-- .../view_manage_categories_plugin.feature | 3 +- .../tests/behat/preview_question.feature | 4 +- .../behat/preview_question_action.feature | 14 ++-- .../tests/behat/statistics_action.feature | 6 +- .../tests/behat/statistics_values.feature | 52 +++++++------- .../tests/behat/tag_question_action.feature | 12 ++-- .../tests/behat/question_usage_column.feature | 10 +-- .../behat/view_view_creator_column.feature | 6 +- .../behat/view_question_name_column.feature | 6 +- .../behat/view_question_name_column.feature | 6 +- .../behat/view_question_type_column.feature | 6 +- .../gift/tests/behat/import_export.feature | 4 +- .../behat/edit_question_versioning.feature | 10 ++- .../tests/behat/backup_and_restore.feature | 70 +++++++++---------- .../gapselect/tests/behat/basic_test.feature | 55 +++++++-------- .../tests/behat/question_reports.feature | 24 +++---- 31 files changed, 202 insertions(+), 278 deletions(-) diff --git a/mod/quiz/report/overview/tests/behat/regrading.feature b/mod/quiz/report/overview/tests/behat/regrading.feature index 58d1bd60514..7b78eb58321 100644 --- a/mod/quiz/report/overview/tests/behat/regrading.feature +++ b/mod/quiz/report/overview/tests/behat/regrading.feature @@ -1,8 +1,8 @@ @mod @mod_quiz @quiz @quiz_overview @javascript Feature: Regrading quiz attempts using the Grades report - In order to be able to correct mistakes I made setting up my quiz - As a teacher - I need to be able to re-grade attempts after editing questions + In order to be able to correct mistakes I made setting up my quiz + As a teacher + I need to be able to re-grade attempts after editing questions Background: Given the following "users" exist: @@ -24,24 +24,24 @@ Feature: Regrading quiz attempts using the Grades report | contextlevel | reference | name | | Course | C1 | Test questions | And the following "activities" exist: - | activity | name | course | idnumber | - | quiz | Quiz for testing regrading | C1 | quiz1 | + | activity | name | course | idnumber | + | quiz | Quiz for testing regrading | C1 | quiz1 | And the following "questions" exist: - | questioncategory | qtype | name | - | Test questions | truefalse | TF | - | Test questions | shortanswer | SA | + | questioncategory | qtype | name | + | Test questions | truefalse | TF | + | Test questions | shortanswer | SA | And quiz "Quiz for testing regrading" contains the following questions: | question | page | maxmark | | TF | 1 | 5.0 | | SA | 1 | 5.0 | And user "student1" has attempted "Quiz for testing regrading" with responses: | slot | response | - | 1 | True | - | 2 | frog | + | 1 | True | + | 2 | frog | And user "student2" has attempted "Quiz for testing regrading" with responses: | slot | response | - | 1 | True | - | 2 | toad | + | 1 | True | + | 2 | toad | Scenario: Regrade all attempts Given I am on the "Quiz for testing regrading" "quiz activity" page logged in as teacher @@ -76,8 +76,7 @@ Feature: Regrading quiz attempts using the Grades report And I should see "Overall number of students achieving grade ranges" Scenario: Dry-run a full regrade, then regrade the attempts that will need it. - Given I am on the "Quiz for testing regrading" "quiz activity" page logged in as teacher - When I navigate to "Questions" in current page administration + Given I am on the "Quiz for testing regrading" "mod_quiz > edit" page logged in as teacher And I follow "Edit question SA" And I set the field "id_fraction_1" to "50%" And I press "id_submitbutton" @@ -123,11 +122,11 @@ Feature: Regrading quiz attempts using the Grades report And I should see "Quiz for testing regrading" And I should see "Overall number of students achieving grade ranges" And "Student One" row "Regrade" column of "attempts" table should not contain "Needed" - And I navigate to "Question bank" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > question bank" page And I choose "Edit question" action for "TF" in the question bank And I set the field "Correct answer" to "False" And I press "id_submitbutton" - And I navigate to "Questions" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > edit" page And I set the field "version" in the "TF" "list_item" to "v2 (latest)" And I navigate to "Results" in current page administration And I press "Dry run a full regrade" @@ -148,10 +147,10 @@ Feature: Regrading quiz attempts using the Grades report And I click on "mod-quiz-report-overview-report-selectall-attempts" "checkbox" And I click on "Delete selected attempts" "button" And I click on "Yes" "button" - And I navigate to "Questions" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > edit" page And I should see "(latest)" in the "TF" "list_item" # Create multiple question versions. - And I navigate to "Question bank" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > question bank" page And I choose "Edit question" action for "TF" in the question bank And I set the field "Correct answer" to "True" And I press "id_submitbutton" @@ -159,7 +158,7 @@ Feature: Regrading quiz attempts using the Grades report And I set the field "Question name" to "New version of TF" And I set the field "Correct answer" to "False" And I press "id_submitbutton" - And I navigate to "Questions" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > edit" page And I should see "(latest)" in the "TF" "list_item" And I click on "version" "select" in the "TF" "list_item" And I should see "v1" @@ -169,9 +168,9 @@ Feature: Regrading quiz attempts using the Grades report And I set the field "version" in the "TF" "list_item" to "v1" And user "student3" has attempted "Quiz for testing regrading" with responses: | slot | response | - | 1 | True | - | 2 | toad | - And I navigate to "Questions" in current page administration + | 1 | True | + | 2 | toad | + And I am on the "Quiz for testing regrading" "mod_quiz > edit" page And I set the field "version" in the "TF" "list_item" to "Always latest" And I navigate to "Results" in current page administration And I press "Regrade all" @@ -188,10 +187,10 @@ Feature: Regrading quiz attempts using the Grades report And I click on "Delete selected attempts" "button" And I click on "Yes" "button" # Create multiple question versions. - And I navigate to "Question bank" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > question bank" page And I choose "Delete" action for "SA" in the question bank And I press "Delete" - And I navigate to "Questions" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > edit" page And I click on "Delete" "link" in the "TF" "list_item" And I click on "Yes" "button" in the "Confirm" "dialogue" And I click on "Delete" "link" in the "SA" "list_item" @@ -207,8 +206,7 @@ Feature: Regrading quiz attempts using the Grades report And I click on "Finish attempt ..." "button" And I press "Submit all and finish" And I click on "Submit all and finish" "button" in the "Confirmation" "dialogue" - And I am on the "Quiz for testing regrading" "quiz activity" page logged in as teacher - And I navigate to "Question bank" in current page administration + And I am on the "Quiz for testing regrading" "mod_quiz > question bank" page logged in as teacher And I choose "Edit question" action for "TF" in the question bank And I set the field "Correct answer" to "False" And I press "id_submitbutton" diff --git a/mod/quiz/tests/behat/behat_mod_quiz.php b/mod/quiz/tests/behat/behat_mod_quiz.php index a4f777619d1..5c2198b057b 100644 --- a/mod/quiz/tests/behat/behat_mod_quiz.php +++ b/mod/quiz/tests/behat/behat_mod_quiz.php @@ -71,6 +71,7 @@ class behat_mod_quiz extends behat_question_base { * | Manual grading report | Quiz name | The manual grading report for a quiz | * | Statistics report | Quiz name | The statistics report for a quiz | * | Attempt review | Quiz name > username > [Attempt] attempt no | Review page for a given attempt (review.php) | + * | Question bank | Quiz name | The question bank page for a quiz | * * @param string $type identifies which type of page this is, e.g. 'Attempt review'. * @param string $identifier identifies the particular page, e.g. 'Test quiz > student > Attempt 1'. @@ -141,6 +142,12 @@ class behat_mod_quiz extends behat_question_base { ['quiz' => $quiz->id, 'userid' => $user->id, 'attempt' => $attemptno], '*', MUST_EXIST); return new moodle_url('/mod/quiz/review.php', ['attempt' => $attempt->id]); + case 'question bank': + return new moodle_url('/question/edit.php', [ + 'cmid' => $this->get_cm_by_quiz_name($identifier)->id, + ]); + + default: throw new Exception('Unrecognised quiz page type "' . $type . '."'); } diff --git a/question/bank/bulkmove/tests/behat/bulk_move.feature b/question/bank/bulkmove/tests/behat/bulk_move.feature index 6ddf0980a88..9acf88e3392 100644 --- a/question/bank/bulkmove/tests/behat/bulk_move.feature +++ b/question/bank/bulkmove/tests/behat/bulk_move.feature @@ -22,15 +22,13 @@ Feature: Use the qbank plugin manager page for bulkmove When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Bulk move questions" And I click on "Disable" "link" in the "Bulk move questions" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on "First question" "checkbox" And I click on "With selected" "button" Then I should not see question bulk action "move" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Bulk move questions" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on "First question" "checkbox" And I click on "With selected" "button" And I should see question bulk action "move" diff --git a/question/bank/columnsortorder/tests/behat/columnsortorder.feature b/question/bank/columnsortorder/tests/behat/columnsortorder.feature index 0c3be762255..82e81ea40b4 100644 --- a/question/bank/columnsortorder/tests/behat/columnsortorder.feature +++ b/question/bank/columnsortorder/tests/behat/columnsortorder.feature @@ -1,8 +1,8 @@ @qbank @qbank_columnsortorder @javascript Feature: An plugin column can be reordered and displayed in the question bank view. - In order to reorganise the question bank view columns - As an admin - I need to be able to reorder them + In order to reorganise the question bank view columns + As an admin + I need to be able to reorder them Background: Given the following "users" exist: @@ -16,8 +16,8 @@ Feature: An plugin column can be reordered and displayed in the question bank vi | course | C1 | | name | Test quiz Q001 | And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | + | user | course | role | + | teacher1 | C1 | editingteacher | And the following "question category" exist: | contextlevel | reference | name | | Activity module | Test quiz Q001 | Question category 1 | @@ -26,8 +26,7 @@ Feature: An plugin column can be reordered and displayed in the question bank vi | Question category 1 | essay | Test question to be seen | teacher1 | Write about whatever you want | idnumber1 | Scenario: Teacher can see proper view - Given I am on the "Test quiz Q001" "quiz activity" page logged in as "teacher1" - When I navigate to "Question bank" in current page administration + Given I am on the "Test quiz Q001" "mod_quiz > question bank" page logged in as "teacher1" And I set the field "category" to "Question category 1" And I should see "Test question to be seen" Then I should see "Teacher 1" @@ -36,8 +35,7 @@ Feature: An plugin column can be reordered and displayed in the question bank vi Given I log in as "admin" When I navigate to "Plugins > Question bank plugins > Column sort order" in site administration And I drag "Created by (creator_name_column)" "text" and I drop it in "T (question_type_column)" "text" - And I am on the "Test quiz Q001" "quiz activity" page logged in as "teacher1" - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz Q001" "mod_quiz > question bank" page logged in as "teacher1" And I set the field "category" to "Question category 1" Then ".creatorname" "css_element" should appear before ".qtype" "css_element" diff --git a/question/bank/comment/tests/behat/question_comment.feature b/question/bank/comment/tests/behat/question_comment.feature index 18e306eff1d..2ed1b405efa 100644 --- a/question/bank/comment/tests/behat/question_comment.feature +++ b/question/bank/comment/tests/behat/question_comment.feature @@ -14,20 +14,18 @@ Feature: A Teacher can comment in a question | teacher1 | C1 | editingteacher | | teacher2 | C1 | editingteacher | And the following "activities" exist: - | activity | name | course | idnumber | - | quiz | Test quiz | C1 | quiz1 | + | activity | name | course | idnumber | + | quiz | Test quiz | C1 | quiz1 | And the following "question categories" exist: - | contextlevel | reference | name | - | Course | C1 | Test questions | + | contextlevel | reference | name | + | Course | C1 | Test questions | And the following "questions" exist: | questioncategory | qtype | name | questiontext | | Test questions | truefalse | First question | Answer the first question | @javascript Scenario: Add a comment in question - Given I log in as "teacher1" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher1" And I set the field "Select a category" to "Test questions" And I should see "0" on the comments column When I click "0" on the row on the comments column @@ -39,9 +37,7 @@ Feature: A Teacher can comment in a question @javascript Scenario: Delete a comment from question - Given I log in as "teacher1" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher1" And I set the field "Select a category" to "Test questions" And I should see "0" on the comments column When I click "0" on the row on the comments column @@ -58,9 +54,7 @@ Feature: A Teacher can comment in a question @javascript Scenario: Preview question with comments - Given I log in as "teacher1" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher1" And I set the field "Select a category" to "Test questions" And I choose "Preview" action for "First question" in the question bank And I click on "Comments" "link" @@ -86,9 +80,7 @@ Feature: A Teacher can comment in a question | moodle/question:commentmine | Allow | | moodle/question:commentall | Prevent | And I log out - Then I log in as "teacher1" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher1" And I set the field "Select a category" to "Test questions" And I choose "Preview" action for "First question" in the question bank Then I should not see "Save comment" @@ -105,10 +97,7 @@ Feature: A Teacher can comment in a question And I click on "Comments" "link" Then I should see "Save comment" And I log out - Then I log in as "teacher2" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration - And I set the field "Select a category" to "Test questions" + And I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher2" And I choose "Preview" action for "First question" in the question bank Then I should not see "Save comment" And I click on "Close preview" "button" @@ -118,9 +107,7 @@ Feature: A Teacher can comment in a question @javascript Scenario: Comments added from the quiz page are visible - Given I log in as "teacher1" - And I am on the "Test quiz" "quiz activity" page - When I navigate to "Questions" in current page administration + Given I am on the "Test quiz" "mod_quiz > edit" page logged in as "teacher1" And I press "Add" And I follow "from question bank" And I click on "Select" "checkbox" in the "First question" "table_row" @@ -132,16 +119,14 @@ Feature: A Teacher can comment in a question And I click on "Save comment" "link" And I should see "Some new comment" And I switch to the main window - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I choose "Preview" action for "First question" in the question bank And I click on "Comments" "link" And I should see "Some new comment" And I should see "T1 Teacher1" And I delete "Some new comment" comment from question preview And I should not see "Some new comment" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Questions" in current page administration + And I am on the "Test quiz" "mod_quiz > edit" page And I click on "Preview question" "link" And I switch to "questionpreview" window And I press "Comments" diff --git a/question/bank/comment/tests/behat/question_comment_column.feature b/question/bank/comment/tests/behat/question_comment_column.feature index 59824a2bad9..74006caf219 100644 --- a/question/bank/comment/tests/behat/question_comment_column.feature +++ b/question/bank/comment/tests/behat/question_comment_column.feature @@ -22,11 +22,9 @@ Feature: Use the qbank plugin manager page for comment When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Question comments" And I click on "Disable" "link" in the "Question comments" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then "#categoryquestions .header.commentcount" "css_element" should not be visible And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Question comments" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And "#categoryquestions .header.commentcount" "css_element" should be visible diff --git a/question/bank/customfields/tests/behat/customfield_question.feature b/question/bank/customfields/tests/behat/customfield_question.feature index 133c1f0169f..660f3f70ca7 100644 --- a/question/bank/customfields/tests/behat/customfield_question.feature +++ b/question/bank/customfields/tests/behat/customfield_question.feature @@ -37,8 +37,7 @@ Feature: A teacher can edit question with custom fields | Correct answer | False | | Feedback for the response 'True'. | So you think it is true | | Feedback for the response 'False'. | So you think it is false | - And I am on the "Test quiz name" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz name" "mod_quiz > question bank" page Scenario: Edit a previously created question and see the custom field in the overview table and in the question preview. When I choose "Edit question" action for "First question" in the question bank diff --git a/question/bank/customfields/tests/behat/customfield_question_visbility.feature b/question/bank/customfields/tests/behat/customfield_question_visbility.feature index 9ca11ff967f..def18fe2a2c 100644 --- a/question/bank/customfields/tests/behat/customfield_question_visbility.feature +++ b/question/bank/customfields/tests/behat/customfield_question_visbility.feature @@ -37,8 +37,7 @@ Feature: The visibility of question custom fields control where they are display | Correct answer | False | | Feedback for the response 'True'. | So you think it is true | | Feedback for the response 'False'. | So you think it is false | - And I am on the "Test quiz name" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz name" "mod_quiz > question bank" page @javascript Scenario: Display custom question fields to teachers based on their visibility. diff --git a/question/bank/deletequestion/tests/behat/delete_question_column.feature b/question/bank/deletequestion/tests/behat/delete_question_column.feature index cdd38b623ad..e24f0d63f95 100644 --- a/question/bank/deletequestion/tests/behat/delete_question_column.feature +++ b/question/bank/deletequestion/tests/behat/delete_question_column.feature @@ -22,14 +22,14 @@ Feature: Use the qbank plugin manager page for deletequestion When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Delete question" And I click on "Disable" "link" in the "Delete question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" Then I should not see "Delete" in the "region-main" "region" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Delete question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page + + # TODO This is a worthless test - the word "Delete" can appear anywhere in the page to make this test pass. And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" And I should see "Delete" in the "region-main" "region" @@ -39,22 +39,18 @@ Feature: Use the qbank plugin manager page for deletequestion When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Delete question" And I click on "Disable" "link" in the "Delete question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on "With selected" "button" Then I should not see question bulk action "deleteselected" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Delete question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on "With selected" "button" And I should see question bulk action "deleteselected" @javascript Scenario: I should not see the deleted questions in the base view - Given I log in as "admin" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "admin" And I click on "First question" "checkbox" And I click on "First question second" "checkbox" And I click on "With selected" "button" diff --git a/question/bank/editquestion/tests/behat/qbank_editquestion.feature b/question/bank/editquestion/tests/behat/qbank_editquestion.feature index b85b15cd67c..9b4e94a3d9a 100644 --- a/question/bank/editquestion/tests/behat/qbank_editquestion.feature +++ b/question/bank/editquestion/tests/behat/qbank_editquestion.feature @@ -22,16 +22,14 @@ Feature: Use the qbank plugin manager page for editquestion When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Edit question" And I click on "Disable" "link" in the "Edit question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then I should not see "Status" And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" And I should not see "Edit question" in the "region-main" "region" And I should not see "Duplicate" in the "region-main" "region" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Edit question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" Then I should see "Status" And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" diff --git a/question/bank/editquestion/tests/behat/question_status.feature b/question/bank/editquestion/tests/behat/question_status.feature index db6349647a9..e66622bf527 100644 --- a/question/bank/editquestion/tests/behat/question_status.feature +++ b/question/bank/editquestion/tests/behat/question_status.feature @@ -19,9 +19,7 @@ Feature: Use the qbank base view to test the status change using @javascript Scenario: Question status dropdown should change the status of the question - Given I log in as "admin" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "admin" And I set the field "Select a category" to "Test questions" And I should see "Test questions" And the field "question_status_dropdown" in the "First question" "table_row" matches value "Ready" diff --git a/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature b/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature index f172d6c0f64..4af997ba530 100644 --- a/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature +++ b/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature @@ -21,13 +21,11 @@ Feature: Use the qbank plugin manager page for exporttoxml When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Export to XML" And I click on "Disable" "link" in the "Export to XML" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" Then I should not see "Export as Moodle XML" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Export to XML" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" And I should see "Export as Moodle XML" diff --git a/question/bank/history/tests/behat/question_history_action.feature b/question/bank/history/tests/behat/question_history_action.feature index 982c9070f04..f2ea0c30c6e 100644 --- a/question/bank/history/tests/behat/question_history_action.feature +++ b/question/bank/history/tests/behat/question_history_action.feature @@ -22,21 +22,17 @@ Feature: Use the qbank plugin manager page for question history When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Question history" And I click on "Disable" "link" in the "Question history" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" Then I should not see "History" in the "region-main" "region" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Question history" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" And I should see "History" in the "region-main" "region" Scenario: History page shows only the specified features and questions - Given I log in as "admin" - And I am on the "Test quiz" "quiz activity" page - When I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "admin" And I choose "History" action for "First question" in the question bank Then I should not see "Select a category" And I should see "No tag filters applied" diff --git a/question/bank/history/tests/behat/question_version_column.feature b/question/bank/history/tests/behat/question_version_column.feature index 87d365d375f..81ddace0cb7 100644 --- a/question/bank/history/tests/behat/question_version_column.feature +++ b/question/bank/history/tests/behat/question_version_column.feature @@ -21,11 +21,9 @@ Feature: Use the qbank plugin manager page for version column And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Question history" When I click on "Disable" "link" in the "Question history" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then I should not see "Version" in the "region-main" "region" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Question history" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I should see "Version" in the "region-main" "region" diff --git a/question/bank/managecategories/tests/behat/move_question_categories.feature b/question/bank/managecategories/tests/behat/move_question_categories.feature index c73897ae1b1..85953139c70 100644 --- a/question/bank/managecategories/tests/behat/move_question_categories.feature +++ b/question/bank/managecategories/tests/behat/move_question_categories.feature @@ -15,14 +15,11 @@ Feature: A teacher can move question categories in the question bank | user | course | role | | teacher1 | C1 | editingteacher | And the following "activities" exist: - | activity | name | course | idnumber | - | quiz | Test quiz | C1 | quiz1 | - And I log in as "teacher1" - And I am on "Course 1" course homepage + | activity | name | course | idnumber | + | quiz | Test quiz | C1 | quiz1 | Scenario: A question category can be moved to another context - When I follow "Test quiz" - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher1" And I select "Categories" from the "Question bank tertiary navigation" singleselect And I follow "Add category" And I set the following fields to these values: @@ -33,8 +30,7 @@ Feature: A teacher can move question categories in the question bank Then I should see "Test category" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' questioncategories ') and contains(concat(' ', normalize-space(@class), ' '), ' contextlevel50 ')]" "xpath_element" Scenario: A question category can be moved to top level - When I follow "Test quiz" - And I navigate to "Question bank" in current page administration + Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher1" And I select "Categories" from the "Question bank tertiary navigation" singleselect And I follow "Add category" And I set the following fields to these values: diff --git a/question/bank/managecategories/tests/behat/view_manage_categories_plugin.feature b/question/bank/managecategories/tests/behat/view_manage_categories_plugin.feature index ac121f0ef54..d50f3d288a9 100644 --- a/question/bank/managecategories/tests/behat/view_manage_categories_plugin.feature +++ b/question/bank/managecategories/tests/behat/view_manage_categories_plugin.feature @@ -25,8 +25,7 @@ Feature: Use the qbank plugin manager page for managecategories Then "Categories" "link" should not exist in current page administration And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Manage categories" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I should see "Categories" in the "//div[contains(@class, 'urlselect')]//option[contains(text(), 'Categories')]" "xpath_element" Scenario: Enable/disable the tab New category when tyring to add a random question to a quiz diff --git a/question/bank/previewquestion/tests/behat/preview_question.feature b/question/bank/previewquestion/tests/behat/preview_question.feature index 976a3fc20cb..961bed738f3 100644 --- a/question/bank/previewquestion/tests/behat/preview_question.feature +++ b/question/bank/previewquestion/tests/behat/preview_question.feature @@ -23,9 +23,7 @@ Feature: A teacher can preview questions in the question bank And the following "questions" exist: | questioncategory | qtype | name | | Test questions | numerical | Test question to be previewed | - And I log in as "teacher1" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page logged in as "teacher1" When I choose "Preview" action for "Test question to be previewed" in the question bank Scenario: Question preview shows the question and other information diff --git a/question/bank/previewquestion/tests/behat/preview_question_action.feature b/question/bank/previewquestion/tests/behat/preview_question_action.feature index ce758a803a9..1ac19093d35 100644 --- a/question/bank/previewquestion/tests/behat/preview_question_action.feature +++ b/question/bank/previewquestion/tests/behat/preview_question_action.feature @@ -22,16 +22,12 @@ Feature: Use the qbank plugin manager page for previewquestion When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Preview question" And I click on "Disable" "link" in the "Preview question" "table_row" - And I am on the "C1" "Course" page - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".action-menu" "css_element" in the "First question" "table_row" Then I should not see "Preview" in the "region-main" "region" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Preview question" "table_row" - And I am on the "C1" "Course" page - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".action-menu" "css_element" in the "First question" "table_row" And I should see "Preview" in the "region-main" "region" @@ -40,13 +36,11 @@ Feature: Use the qbank plugin manager page for previewquestion When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Preview question" And I click on "Disable" "link" in the "Preview question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I choose "Edit question" action for "First question" in the question bank Then I should not see "Preview" in the "region-main" "region" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Preview question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I choose "Edit question" action for "First question" in the question bank And I should see "Preview" in the "region-main" "region" diff --git a/question/bank/statistics/tests/behat/statistics_action.feature b/question/bank/statistics/tests/behat/statistics_action.feature index 1ffaccc58bf..9a5b274640d 100644 --- a/question/bank/statistics/tests/behat/statistics_action.feature +++ b/question/bank/statistics/tests/behat/statistics_action.feature @@ -21,15 +21,13 @@ Feature: Use the qbank plugin manager page for statistics When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Question statistics" And I click on "Disable" "link" in the "Question statistics" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then I should not see "Facility index" And I should not see "Discriminative efficiency" And I should not see "Needs checking?" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Question statistics" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I should see "Facility index" And I should see "Discriminative efficiency" And I should see "Needs checking?" diff --git a/question/bank/statistics/tests/behat/statistics_values.feature b/question/bank/statistics/tests/behat/statistics_values.feature index 24d301a4a34..a65a7f58275 100644 --- a/question/bank/statistics/tests/behat/statistics_values.feature +++ b/question/bank/statistics/tests/behat/statistics_values.feature @@ -70,11 +70,10 @@ Feature: Show statistics in question bank | 2 | True | And user "student2" has attempted "Quiz 2" with responses: | slot | response | - | 1 | True | - | 2 | True | - When I am on the "Course 1" course page logged in as admin - And I navigate to "Question bank" in current page administration - And I should see "50.00%" in the "TF1" "table_row" + | 1 | True | + | 2 | True | + When I am on the "Course 1" "core_question > course question bank" page logged in as "admin" + Then I should see "50.00%" in the "TF1" "table_row" And I should see "75.00%" in the "TF2" "table_row" And I should see "75.00%" in the "TF3" "table_row" And I should see "50.00%" in the "TF4" "table_row" @@ -82,15 +81,14 @@ Feature: Show statistics in question bank Scenario: View discriminative efficiency in question bank Given user "student1" has attempted "Quiz 2" with responses: | slot | response | - | 1 | False | - | 2 | False | + | 1 | False | + | 2 | False | And user "student2" has attempted "Quiz 2" with responses: | slot | response | - | 1 | True | - | 2 | True | - When I am on the "Course 1" course page logged in as admin - And I navigate to "Question bank" in current page administration - And I should see "50.00%" in the "TF1" "table_row" + | 1 | True | + | 2 | True | + When I am on the "Course 1" "core_question > course question bank" page logged in as "admin" + Then I should see "50.00%" in the "TF1" "table_row" And I should see "75.00%" in the "TF2" "table_row" And I should see "75.00%" in the "TF3" "table_row" And I should see "50.00%" in the "TF4" "table_row" @@ -98,15 +96,14 @@ Feature: Show statistics in question bank Scenario: View discrimination index in question bank, good questions Given user "student1" has attempted "Quiz 2" with responses: | slot | response | - | 1 | False | - | 2 | False | + | 1 | False | + | 2 | False | And user "student2" has attempted "Quiz 2" with responses: | slot | response | - | 1 | True | - | 2 | True | - When I am on the "Course 1" course page logged in as admin - And I navigate to "Question bank" in current page administration - And I should see "Likely" in the "TF1" "table_row" + | 1 | True | + | 2 | True | + When I am on the "Course 1" "core_question > course question bank" page logged in as "admin" + Then I should see "Likely" in the "TF1" "table_row" And I should see "Unlikely" in the "TF2" "table_row" And I should see "Unlikely" in the "TF3" "table_row" And I should see "Likely" in the "TF4" "table_row" @@ -116,19 +113,18 @@ Feature: Show statistics in question bank Scenario: View discrimination index in question bank, bad questions Given user "student1" has attempted "Quiz 2" with responses: | slot | response | - | 1 | True | - | 2 | True | + | 1 | True | + | 2 | True | And user "student2" has attempted "Quiz 2" with responses: | slot | response | - | 1 | False | - | 2 | True | + | 1 | False | + | 2 | True | And user "student3" has attempted "Quiz 2" with responses: | slot | response | - | 1 | True | - | 2 | False | - When I am on the "Course 1" course page logged in as admin - And I navigate to "Question bank" in current page administration - And I should see "Likely" in the "TF1" "table_row" + | 1 | True | + | 2 | False | + When I am on the "Course 1" "core_question > course question bank" page logged in as "admin" + Then I should see "Likely" in the "TF1" "table_row" And I should see "Very likely" in the "TF2" "table_row" And I should see "Very likely" in the "TF3" "table_row" And I should see "Likely" in the "TF4" "table_row" diff --git a/question/bank/tagquestion/tests/behat/tag_question_action.feature b/question/bank/tagquestion/tests/behat/tag_question_action.feature index 0a0c13f9a79..845a046effe 100644 --- a/question/bank/tagquestion/tests/behat/tag_question_action.feature +++ b/question/bank/tagquestion/tests/behat/tag_question_action.feature @@ -21,14 +21,12 @@ Feature: Use the qbank plugin manager page for tagquestion When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Tag question" And I click on "Disable" "link" in the "Tag question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" Then I should not see "Manage tags" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Tag question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" And I should see "Manage tags" @@ -37,13 +35,11 @@ Feature: Use the qbank plugin manager page for tagquestion When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Tag question" And I click on "Disable" "link" in the "Tag question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I choose "Edit question" action for "First question" in the question bank Then I should not see "Tags" in the "region-main" "region" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Tag question" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I choose "Edit question" action for "First question" in the question bank And I should see "Tags" in the "region-main" "region" diff --git a/question/bank/usage/tests/behat/question_usage_column.feature b/question/bank/usage/tests/behat/question_usage_column.feature index ed0f73b18fe..a327eeb25b3 100644 --- a/question/bank/usage/tests/behat/question_usage_column.feature +++ b/question/bank/usage/tests/behat/question_usage_column.feature @@ -21,20 +21,16 @@ Feature: Use the qbank plugin manager page for question usage And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Question usage" When I click on "Disable" "link" in the "Question usage" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then I should not see "Usage" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Question usage" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I should see "Usage" @javascript Scenario: Question usage modal should work without any usage data - Given I log in as "admin" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page logged in as "admin" And I set the field "Select a category" to "Test questions" And I should see "Test questions" And I should see "0" on the usage column diff --git a/question/bank/viewcreator/tests/behat/view_view_creator_column.feature b/question/bank/viewcreator/tests/behat/view_view_creator_column.feature index ec5bd5d8f7d..7d1cd3f293b 100644 --- a/question/bank/viewcreator/tests/behat/view_view_creator_column.feature +++ b/question/bank/viewcreator/tests/behat/view_view_creator_column.feature @@ -21,11 +21,9 @@ Feature: Use the qbank plugin manager page for viewcreator plugin And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "View creator" When I click on "Disable" "link" in the "View creator" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then I should not see "Created by" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "View creator" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then I should see "Created by" diff --git a/question/bank/viewquestionname/tests/behat/view_question_name_column.feature b/question/bank/viewquestionname/tests/behat/view_question_name_column.feature index 9f59437cce4..a51cb3ada94 100644 --- a/question/bank/viewquestionname/tests/behat/view_question_name_column.feature +++ b/question/bank/viewquestionname/tests/behat/view_question_name_column.feature @@ -21,11 +21,9 @@ Feature: Use the qbank plugin manager page for viewquestionname And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "View question name" When I click on "Disable" "link" in the "View question name" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then I should not see "First question" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "View question name" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I should see "First question" diff --git a/question/bank/viewquestiontext/tests/behat/view_question_name_column.feature b/question/bank/viewquestiontext/tests/behat/view_question_name_column.feature index 69d4ec5f48c..2c27ffc1d98 100644 --- a/question/bank/viewquestiontext/tests/behat/view_question_name_column.feature +++ b/question/bank/viewquestiontext/tests/behat/view_question_name_column.feature @@ -22,14 +22,12 @@ Feature: Use the qbank plugin manager page for viewquestiontext And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "View question text" When I click on "Disable" "link" in the "View question text" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I should not see "Show question text in the question list" Then "#categoryquestions .questiontext" "css_element" should not be visible And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "View question text" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And I should see "Show question text in the question list" And I click on "qbshowtext" "checkbox" And I should see "Answer the first question" diff --git a/question/bank/viewquestiontype/tests/behat/view_question_type_column.feature b/question/bank/viewquestiontype/tests/behat/view_question_type_column.feature index a8df68b2e09..faa5b4f9bfc 100644 --- a/question/bank/viewquestiontype/tests/behat/view_question_type_column.feature +++ b/question/bank/viewquestiontype/tests/behat/view_question_type_column.feature @@ -22,11 +22,9 @@ Feature: Use the qbank plugin manager page for viewquestiontype When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "View question type" And I click on "Disable" "link" in the "View question type" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page Then "#categoryquestions .header.qtype" "css_element" should not be visible And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "View question type" "table_row" - And I am on the "Test quiz" "quiz activity" page - And I navigate to "Question bank" in current page administration + And I am on the "Test quiz" "mod_quiz > question bank" page And "#categoryquestions .header.qtype" "css_element" should be visible diff --git a/question/format/gift/tests/behat/import_export.feature b/question/format/gift/tests/behat/import_export.feature index 38bd2f661e2..fc00ec7300f 100644 --- a/question/format/gift/tests/behat/import_export.feature +++ b/question/format/gift/tests/behat/import_export.feature @@ -28,9 +28,7 @@ Feature: Test importing questions from GIFT format. Then I should see "colours" # Now export again. - And I am on "Course 1" course homepage - And I navigate to "Question bank" in current page administration - And I select "Export" from the "Question bank tertiary navigation" singleselect + And I am on the "Course 1" "core_question > course question export" page And I set the field "id_format_gift" to "1" And I press "Export questions to file" And following "click here" should download between "1500" and "1800" bytes diff --git a/question/tests/behat/edit_question_versioning.feature b/question/tests/behat/edit_question_versioning.feature index 4d13bca2c5b..8db0192074f 100644 --- a/question/tests/behat/edit_question_versioning.feature +++ b/question/tests/behat/edit_question_versioning.feature @@ -24,14 +24,12 @@ Feature: Questions in the question bank have versions | questioncategory | qtype | name | questiontext | answer 1 | | Test questions | truefalse | First question | Answer the first question | True | And quiz "Quiz 1" contains the following questions: - | question | page | - | First question | 1 | - And I log in as "teacher1" - And I am on "Course 1" course homepage + | question | page | + | First question | 1 | @javascript Scenario: Question version is displayed - When I navigate to "Question bank" in current page administration + Given I am on the "Course 1" "core_question > course question bank" page logged in as "teacher1" And I should see "First question" And I click on "Edit" "link" in the "First question" "table_row" And I follow "Edit question" @@ -39,7 +37,7 @@ Feature: Questions in the question bank have versions @javascript Scenario: Question version change when question is altered - When I navigate to "Question bank" in current page administration + Given I am on the "Course 1" "core_question > course question bank" page logged in as "teacher1" And I should see "First question" And I click on "Edit" "link" in the "First question" "table_row" And I follow "Edit question" diff --git a/question/type/ddmarker/tests/behat/backup_and_restore.feature b/question/type/ddmarker/tests/behat/backup_and_restore.feature index f9432366c6d..449936d077d 100644 --- a/question/type/ddmarker/tests/behat/backup_and_restore.feature +++ b/question/type/ddmarker/tests/behat/backup_and_restore.feature @@ -29,40 +29,40 @@ Feature: Test duplicating a quiz containing a drag and drop markers question And I restore "test_backup.mbz" backup into a new course using this options: | Schema | Course name | Course 2 | | Schema | Course short name | C2 | - And I navigate to "Question bank" in current page administration + And I am on the "Course 2" "core_question > course question bank" page And I choose "Edit question" action for "Drag markers" in the question bank Then the following fields match these values: - | Question name | Drag markers | - | Question text | Please place the markers on the map of Milton Keynes and be aware that there is more than one railway station. | - | General feedback | The Open University is at the junction of Brickhill Street and Groveway. There are three railway stations, Wolverton, Milton Keynes Central and Bletchley. | - | Default mark | 1 | - | id_shuffleanswers | 0 | - | id_drags_0_label | OU | - | id_drags_0_noofdrags | 1 | - | id_drags_1_label | Railway station | - | id_drags_1_noofdrags | 3 | - | id_drops_0_shape | Circle | - | id_drops_0_coords | 322,213;10 | - | id_drops_0_choice | OU | - | id_drops_1_shape | Circle | - | id_drops_1_coords | 144,84;10 | - | id_drops_1_choice | Railway station | - | id_drops_2_shape | Circle | - | id_drops_2_coords | 195,180;10 | - | id_drops_2_choice | Railway station | - | id_drops_3_shape | Circle | - | id_drops_3_coords | 267,302;10 | - | id_drops_3_choice | Railway station | - | For any correct response | Well done! | - | For any partially correct response | Parts, but only parts, of your response are correct. | - | id_shownumcorrect | 1 | - | For any incorrect response | That is not right at all. | - | Penalty for each incorrect try | 33.33333% | - | Hint 1 | You are trying to place four markers on the map. | - | id_hintshownumcorrect_0 | 1 | - | id_hintclearwrong_0 | 0 | - | id_hintoptions_0 | 0 | - | Hint 2 | You are trying to mark three railway stations. | - | id_hintshownumcorrect_1 | 1 | - | id_hintclearwrong_1 | 1 | - | id_hintoptions_1 | 1 | + | Question name | Drag markers | + | Question text | Please place the markers on the map of Milton Keynes and be aware that there is more than one railway station. | + | General feedback | The Open University is at the junction of Brickhill Street and Groveway. There are three railway stations, Wolverton, Milton Keynes Central and Bletchley. | + | Default mark | 1 | + | id_shuffleanswers | 0 | + | id_drags_0_label | OU | + | id_drags_0_noofdrags | 1 | + | id_drags_1_label | Railway station | + | id_drags_1_noofdrags | 3 | + | id_drops_0_shape | Circle | + | id_drops_0_coords | 322,213;10 | + | id_drops_0_choice | OU | + | id_drops_1_shape | Circle | + | id_drops_1_coords | 144,84;10 | + | id_drops_1_choice | Railway station | + | id_drops_2_shape | Circle | + | id_drops_2_coords | 195,180;10 | + | id_drops_2_choice | Railway station | + | id_drops_3_shape | Circle | + | id_drops_3_coords | 267,302;10 | + | id_drops_3_choice | Railway station | + | For any correct response | Well done! | + | For any partially correct response | Parts, but only parts, of your response are correct. | + | id_shownumcorrect | 1 | + | For any incorrect response | That is not right at all. | + | Penalty for each incorrect try | 33.33333% | + | Hint 1 | You are trying to place four markers on the map. | + | id_hintshownumcorrect_0 | 1 | + | id_hintclearwrong_0 | 0 | + | id_hintoptions_0 | 0 | + | Hint 2 | You are trying to mark three railway stations. | + | id_hintshownumcorrect_1 | 1 | + | id_hintclearwrong_1 | 1 | + | id_hintoptions_1 | 1 | diff --git a/question/type/gapselect/tests/behat/basic_test.feature b/question/type/gapselect/tests/behat/basic_test.feature index 1f2df5eef0d..eba31511661 100644 --- a/question/type/gapselect/tests/behat/basic_test.feature +++ b/question/type/gapselect/tests/behat/basic_test.feature @@ -20,19 +20,19 @@ Feature: Test all the basic functionality of this question type # Create a new question. And I add a "Select missing words" question filling the form with: - | Question name | Select missing words 001 | - | Question text | The [[1]] [[2]] on the [[3]]. | - | General feedback | The cat sat on the mat. | - | id_choices_0_answer | cat | - | id_choices_1_answer | sat | - | id_choices_1_choicegroup | 2 | - | id_choices_2_answer | mat | - | id_choices_3_answer | dog | - | id_choices_4_answer | table | - | id_choices_5_answer | ran | - | id_choices_5_choicegroup | 2 | - | Hint 1 | First hint | - | Hint 2 | Second hint | + | Question name | Select missing words 001 | + | Question text | The [[1]] [[2]] on the [[3]]. | + | General feedback | The cat sat on the mat. | + | id_choices_0_answer | cat | + | id_choices_1_answer | sat | + | id_choices_1_choicegroup | 2 | + | id_choices_2_answer | mat | + | id_choices_3_answer | dog | + | id_choices_4_answer | table | + | id_choices_5_answer | ran | + | id_choices_5_choicegroup | 2 | + | Hint 1 | First hint | + | Hint 2 | Second hint | Then I should see "Select missing words 001" # Preview it. @@ -128,26 +128,25 @@ Feature: Test all the basic functionality of this question type | Confirmation | Filename | test_backup.mbz | And I restore "test_backup.mbz" backup into a new course using this options: | Schema | Course name | Course 2 | - And I should see "Course 2" - And I navigate to "Question bank" in current page administration + And I am on the "Course 2 copy 1" "core_question > course question bank" page And I should see "Select missing words 001" # Edit the copy and verify the form field contents. And I choose "Edit question" action for "Select missing words 001" in the question bank And the following fields match these values: - | Question name | Select missing words 001 | - | Question text | The [[1]] [[2]] on the [[3]]. | - | General feedback | The cat sat on the mat. | - | id_choices_0_answer | cat | - | id_choices_1_answer | sat | - | id_choices_1_choicegroup | 2 | - | id_choices_2_answer | mat | - | id_choices_3_answer | dog | - | id_choices_4_answer | table | - | id_choices_5_answer | ran | - | id_choices_5_choicegroup | 2 | - | Hint 1 | First hint | - | Hint 2 | Second hint | + | Question name | Select missing words 001 | + | Question text | The [[1]] [[2]] on the [[3]]. | + | General feedback | The cat sat on the mat. | + | id_choices_0_answer | cat | + | id_choices_1_answer | sat | + | id_choices_1_choicegroup | 2 | + | id_choices_2_answer | mat | + | id_choices_3_answer | dog | + | id_choices_4_answer | table | + | id_choices_5_answer | ran | + | id_choices_5_choicegroup | 2 | + | Hint 1 | First hint | + | Hint 2 | Second hint | And I set the following fields to these values: | Question name | Edited question name | And I press "id_submitbutton" diff --git a/report/questioninstances/tests/behat/question_reports.feature b/report/questioninstances/tests/behat/question_reports.feature index 49b9789d209..5306a38be7d 100644 --- a/report/questioninstances/tests/behat/question_reports.feature +++ b/report/questioninstances/tests/behat/question_reports.feature @@ -1,8 +1,8 @@ @core @core_question @javascript @report @report_questioninstance Feature: A Teacher can generate question instance reports - In order to see question instance reports - As a Teacher - I need to generate them + In order to see question instance reports + As a Teacher + I need to generate them Background: Given the following "users" exist: @@ -18,19 +18,19 @@ Feature: A Teacher can generate question instance reports | activity | course | name | | quiz | C1 | Test quiz Q001 | And the following "questions" exist: - | questioncategory | qtype | name | - | Test questions | truefalse | TF | - | Test questions | shortanswer | SA | + | questioncategory | qtype | name | + | Test questions | truefalse | TF | + | Test questions | shortanswer | SA | And quiz "Test quiz Q001" contains the following questions: | question | page | maxmark | | TF | 1 | 5.0 | | SA | 1 | 5.0 | And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | + | user | course | role | + | teacher1 | C1 | editingteacher | And the following "question categories" exist: - | contextlevel | reference | name | - | Activity module | Test quiz Q001 | Quiz category | + | contextlevel | reference | name | + | Activity module | Test quiz Q001 | Quiz category | @javascript Scenario: Generate general and specific report @@ -43,9 +43,7 @@ Feature: A Teacher can generate question instance reports @javascript Scenario: Generate report displaying hidden questions - Given I am on the "Test quiz Q001" "quiz activity" page logged in as "admin" - And I navigate to "Question bank" in current page administration - And I click on "Edit" "link" in the "TF" "table_row" + Given I am on the "Test quiz Q001" "mod_quiz > question bank" page logged in as "admin" And I choose "Delete" in the open action menu And I press "Delete" And I navigate to "Reports > Question instances" in site administration From b4a53cba594b0eca241b2d434409b4b01d2bbaa5 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Wed, 2 Nov 2022 11:10:56 +0800 Subject: [PATCH 4/5] MDL-76169 question: Use action menu steps consistently --- .../behat/delete_question_column.feature | 8 +--- .../tests/behat/qbank_editquestion.feature | 11 ++--- .../tests/behat/export_to_xml_action.feature | 6 +-- .../behat/question_history_action.feature | 12 ++---- .../behat/preview_question_action.feature | 6 +-- .../tests/behat/tag_question_action.feature | 12 +++--- question/tests/behat/behat_core_question.php | 43 ++++++++++++++++--- .../behat/edit_question_versioning.feature | 15 +++---- question/tests/behat/edit_questions.feature | 12 +++--- .../tests/behat/question_reports.feature | 2 +- 10 files changed, 68 insertions(+), 59 deletions(-) diff --git a/question/bank/deletequestion/tests/behat/delete_question_column.feature b/question/bank/deletequestion/tests/behat/delete_question_column.feature index e24f0d63f95..c20b49baecf 100644 --- a/question/bank/deletequestion/tests/behat/delete_question_column.feature +++ b/question/bank/deletequestion/tests/behat/delete_question_column.feature @@ -23,15 +23,11 @@ Feature: Use the qbank plugin manager page for deletequestion And I should see "Delete question" And I click on "Disable" "link" in the "Delete question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - Then I should not see "Delete" in the "region-main" "region" + Then the "Delete" action should not exist for the "First question" question in the question bank And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Delete question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - - # TODO This is a worthless test - the word "Delete" can appear anywhere in the page to make this test pass. - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - And I should see "Delete" in the "region-main" "region" + And the "Delete" action should exist for the "First question" question in the question bank @javascript Scenario: Enable/disable delete questions bulk action from the base view diff --git a/question/bank/editquestion/tests/behat/qbank_editquestion.feature b/question/bank/editquestion/tests/behat/qbank_editquestion.feature index 9b4e94a3d9a..7614c0989b7 100644 --- a/question/bank/editquestion/tests/behat/qbank_editquestion.feature +++ b/question/bank/editquestion/tests/behat/qbank_editquestion.feature @@ -24,14 +24,11 @@ Feature: Use the qbank plugin manager page for editquestion And I click on "Disable" "link" in the "Edit question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page Then I should not see "Status" - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - And I should not see "Edit question" in the "region-main" "region" - And I should not see "Duplicate" in the "region-main" "region" + And the "Edit question" action should not exist for the "First question" question in the question bank + And the "Duplicate" action should not exist for the "First question" question in the question bank And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Edit question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" Then I should see "Status" - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - And I should see "Edit question" in the "region-main" "region" - And I should see "Duplicate" in the "region-main" "region" + And the "Edit question" action should exist for the "First question" question in the question bank + And the "Duplicate" action should exist for the "First question" question in the question bank diff --git a/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature b/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature index 4af997ba530..64ef39857c7 100644 --- a/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature +++ b/question/bank/exporttoxml/tests/behat/export_to_xml_action.feature @@ -22,10 +22,8 @@ Feature: Use the qbank plugin manager page for exporttoxml And I should see "Export to XML" And I click on "Disable" "link" in the "Export to XML" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - Then I should not see "Export as Moodle XML" + Then the "Export as Moodle XML" action should not exist for the "First question" question in the question bank And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Export to XML" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - And I should see "Export as Moodle XML" + And the "Export as Moodle XML" action should exist for the "First question" question in the question bank diff --git a/question/bank/history/tests/behat/question_history_action.feature b/question/bank/history/tests/behat/question_history_action.feature index f2ea0c30c6e..6a39b0852f9 100644 --- a/question/bank/history/tests/behat/question_history_action.feature +++ b/question/bank/history/tests/behat/question_history_action.feature @@ -23,13 +23,11 @@ Feature: Use the qbank plugin manager page for question history And I should see "Question history" And I click on "Disable" "link" in the "Question history" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - Then I should not see "History" in the "region-main" "region" + Then the "History" action should not exist for the "First question" question in the question bank And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Question history" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - And I should see "History" in the "region-main" "region" + Then the "History" action should exist for the "First question" question in the question bank Scenario: History page shows only the specified features and questions Given I am on the "Test quiz" "mod_quiz > question bank" page logged in as "admin" @@ -42,8 +40,6 @@ Feature: Use the qbank plugin manager page for question history And I should see "Version" And I should see "Created by" And I should see "First question" - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - But I should not see "History" + And the "History" action should not exist for the "First question" question in the question bank And I click on "#qbank-history-close" "css_element" - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - And I should see "History" in the "region-main" "region" + And the "History" action should exist for the "First question" question in the question bank diff --git a/question/bank/previewquestion/tests/behat/preview_question_action.feature b/question/bank/previewquestion/tests/behat/preview_question_action.feature index 1ac19093d35..2ed058f546e 100644 --- a/question/bank/previewquestion/tests/behat/preview_question_action.feature +++ b/question/bank/previewquestion/tests/behat/preview_question_action.feature @@ -23,13 +23,11 @@ Feature: Use the qbank plugin manager page for previewquestion And I should see "Preview question" And I click on "Disable" "link" in the "Preview question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".action-menu" "css_element" in the "First question" "table_row" - Then I should not see "Preview" in the "region-main" "region" + Then the "Preview" item should not exist in the "Edit" action menu of the "First question" "table_row" And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Preview question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".action-menu" "css_element" in the "First question" "table_row" - And I should see "Preview" in the "region-main" "region" + And the "Preview" item should exist in the "Edit" action menu of the "First question" "table_row" Scenario: Enable/disable preview button from question edit form Given I log in as "admin" diff --git a/question/bank/tagquestion/tests/behat/tag_question_action.feature b/question/bank/tagquestion/tests/behat/tag_question_action.feature index 845a046effe..f62bf00a65d 100644 --- a/question/bank/tagquestion/tests/behat/tag_question_action.feature +++ b/question/bank/tagquestion/tests/behat/tag_question_action.feature @@ -18,21 +18,19 @@ Feature: Use the qbank plugin manager page for tagquestion Scenario: Enable/disable tagquestion column from the base view Given I log in as "admin" - When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration + And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Tag question" And I click on "Disable" "link" in the "Tag question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - Then I should not see "Manage tags" - And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration + And the "Manage tags" action should not exist for the "First question" question in the question bank + When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I click on "Enable" "link" in the "Tag question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page - And I click on ".dropdown-toggle" "css_element" in the "First question" "table_row" - And I should see "Manage tags" + Then the "Manage tags" action should exist for the "First question" question in the question bank Scenario: Enable/disable tagquestion section from question edit form Given I log in as "admin" - When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration + And I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration And I should see "Tag question" And I click on "Disable" "link" in the "Tag question" "table_row" And I am on the "Test quiz" "mod_quiz > question bank" page diff --git a/question/tests/behat/behat_core_question.php b/question/tests/behat/behat_core_question.php index 494e4d54025..601d2f884c3 100644 --- a/question/tests/behat/behat_core_question.php +++ b/question/tests/behat/behat_core_question.php @@ -174,13 +174,44 @@ class behat_core_question extends behat_question_base { * @param string $questionname the question name. */ public function i_action_the_question($action, $questionname) { - // Open the menu. - $this->execute("behat_general::i_click_on_in_the", - [get_string('edit'), 'link', $questionname, 'table_row']); + $this->execute('behat_action_menu::i_choose_in_the_named_menu_in_container', [ + $action, + get_string('edit', 'core'), + $questionname, + 'table_row', + ]); + } - // Click the action from the menu. - $this->execute("behat_general::i_click_on_in_the", - [$action, 'link', $questionname, 'table_row']); + /** + * Checks that action does exist for a question. + * + * @Then the :action action should exist for the :questionname question in the question bank + * @param string $action the label for the action you want to activate. + * @param string $questionname the question name. + */ + public function action_exists($action, $questionname) { + $this->execute('behat_action_menu::item_should_exist_in_the', [ + $action, + get_string('edit', 'core'), + $questionname, + 'table_row', + ]); + } + + /** + * Checks that action does not exist for a question. + * + * @Then the :action action should not exist for the :questionname question in the question bank + * @param string $action the label for the action you want to activate. + * @param string $questionname the question name. + */ + public function action_not_exists($action, $questionname) { + $this->execute('behat_action_menu::item_should_not_exist_in_the', [ + $action, + get_string('edit', 'core'), + $questionname, + 'table_row', + ]); } /** diff --git a/question/tests/behat/edit_question_versioning.feature b/question/tests/behat/edit_question_versioning.feature index 8db0192074f..4fa0bf7f561 100644 --- a/question/tests/behat/edit_question_versioning.feature +++ b/question/tests/behat/edit_question_versioning.feature @@ -30,24 +30,19 @@ Feature: Questions in the question bank have versions @javascript Scenario: Question version is displayed Given I am on the "Course 1" "core_question > course question bank" page logged in as "teacher1" - And I should see "First question" - And I click on "Edit" "link" in the "First question" "table_row" - And I follow "Edit question" + When I choose "Edit question" action for "First question" in the question bank Then I should see "Version 1" @javascript Scenario: Question version change when question is altered Given I am on the "Course 1" "core_question > course question bank" page logged in as "teacher1" - And I should see "First question" - And I click on "Edit" "link" in the "First question" "table_row" - And I follow "Edit question" + When I choose "Edit question" action for "First question" in the question bank And I should see "Version 1" - And I set the field "id_name" to "Renamed question v2" + When I set the field "id_name" to "Renamed question v2" And I set the field "id_questiontext" to "edited question" And I press "id_submitbutton" - And I should not see "First question" + Then I should not see "First question" And I should see "Renamed question v2" - And I click on "Edit" "link" in the "Renamed question v2" "table_row" - And I follow "Edit question" + When I choose "Edit question" action for "Renamed question v2" in the question bank Then I should see "Version 2" And I should not see "Version 1" diff --git a/question/tests/behat/edit_questions.feature b/question/tests/behat/edit_questions.feature index bb999f10acd..266370d1cfc 100644 --- a/question/tests/behat/edit_questions.feature +++ b/question/tests/behat/edit_questions.feature @@ -83,9 +83,9 @@ Feature: A teacher can edit questions in the question bank | questioncategory | qtype | name | questiontext | | Test questions | missingtype | Broken question | Write something | When I am on the "Course 1" "core_question > course question bank" page logged in as "teacher1" - Then "Edit question" "link" should not exist in the "Broken question" "table_row" - And "Duplicate" "link" should not exist in the "Broken question" "table_row" - And "Manage tags" "link" should exist in the "Broken question" "table_row" - And "Preview" "link" should not exist in the "Broken question" "table_row" - And "Delete" "link" should exist in the "Broken question" "table_row" - And "Export as Moodle XML" "link" should not exist in the "Broken question" "table_row" + Then the "Edit question" item should not exist in the "Edit" action menu of the "Broken question" "table_row" + And the "Duplicate" item should not exist in the "Edit" action menu of the "Broken question" "table_row" + And the "Preview" item should not exist in the "Edit" action menu of the "Broken question" "table_row" + And the "Export as XML" item should not exist in the "Edit" action menu of the "Broken question" "table_row" + And the "Manage tags" item should exist in the "Edit" action menu of the "Broken question" "table_row" + And the "Delete" item should exist in the "Edit" action menu of the "Broken question" "table_row" diff --git a/report/questioninstances/tests/behat/question_reports.feature b/report/questioninstances/tests/behat/question_reports.feature index 5306a38be7d..87fcb9a42a0 100644 --- a/report/questioninstances/tests/behat/question_reports.feature +++ b/report/questioninstances/tests/behat/question_reports.feature @@ -44,7 +44,7 @@ Feature: A Teacher can generate question instance reports @javascript Scenario: Generate report displaying hidden questions Given I am on the "Test quiz Q001" "mod_quiz > question bank" page logged in as "admin" - And I choose "Delete" in the open action menu + And I choose "Delete" action for "TF" in the question bank And I press "Delete" And I navigate to "Reports > Question instances" in site administration When I press "Get the report" From 6509945bcd76aca3f2cfe84a0da39feb84bee0f4 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Wed, 2 Nov 2022 15:11:21 +0800 Subject: [PATCH 5/5] MDL-76169 question: General behat fixes Whilst amending these tests I discovered some other minor fixes to be made. --- .../tests/behat/preview_question.feature | 2 +- .../behat/preview_question_action.feature | 1 - .../behat/delete_question_activities.feature | 1 - question/tests/behat/delete_questions.feature | 7 +++--- question/tests/behat/sort_questions.feature | 25 +++++++------------ .../tests/behat/edit_min_max_fields.feature | 3 --- .../tests/behat/question_reports.feature | 4 +-- 7 files changed, 14 insertions(+), 29 deletions(-) diff --git a/question/bank/previewquestion/tests/behat/preview_question.feature b/question/bank/previewquestion/tests/behat/preview_question.feature index 961bed738f3..b552815b27c 100644 --- a/question/bank/previewquestion/tests/behat/preview_question.feature +++ b/question/bank/previewquestion/tests/behat/preview_question.feature @@ -1,4 +1,4 @@ -@qbank @qbank_previewquestion @javascript +@qbank @qbank_previewquestion Feature: A teacher can preview questions in the question bank In order to ensure the questions are properly created As a teacher diff --git a/question/bank/previewquestion/tests/behat/preview_question_action.feature b/question/bank/previewquestion/tests/behat/preview_question_action.feature index 2ed058f546e..8123cb5e943 100644 --- a/question/bank/previewquestion/tests/behat/preview_question_action.feature +++ b/question/bank/previewquestion/tests/behat/preview_question_action.feature @@ -16,7 +16,6 @@ Feature: Use the qbank plugin manager page for previewquestion | questioncategory | qtype | name | questiontext | | Test questions | truefalse | First question | Answer the first question | - @javascript Scenario: Enable/disable previewquestion column from the base view Given I log in as "admin" When I navigate to "Plugins > Question bank plugins > Manage question bank plugins" in site administration diff --git a/question/tests/behat/delete_question_activities.feature b/question/tests/behat/delete_question_activities.feature index 54519ffa39f..a4be3e0d05e 100644 --- a/question/tests/behat/delete_question_activities.feature +++ b/question/tests/behat/delete_question_activities.feature @@ -15,7 +15,6 @@ Feature: An activity module instance with questions in its context can be delete | user | course | role | | teacher1 | C1 | editingteacher | - @javascript Scenario: Synchronously deleting a quiz with existing questions in its context Given the following config values are set as admin: | coursebinenable | 0 | tool_recyclebin | diff --git a/question/tests/behat/delete_questions.feature b/question/tests/behat/delete_questions.feature index e7c83d07ee2..4eb57105222 100644 --- a/question/tests/behat/delete_questions.feature +++ b/question/tests/behat/delete_questions.feature @@ -26,10 +26,9 @@ Feature: A teacher can delete questions in the question bank Scenario: A question not used anywhere can really be deleted When I choose "Delete" action for "Test question to be deleted" in the question bank And I press "Delete" - And I click on "Also show old questions" "checkbox" + And I set the field "Also show old questions" to "1" Then I should not see "Test question to be deleted" - @javascript Scenario: Deleting a question can be cancelled When I choose "Delete" action for "Test question to be deleted" in the question bank And I press "Cancel" @@ -54,7 +53,7 @@ Feature: A teacher can delete questions in the question bank And I choose "Delete" action for "Test used question to be deleted" in the question bank And I press "Delete" Then I should not see "Test used question to be deleted" - And I click on "Also show old questions" "checkbox" + And I set the field "Also show old questions" to "1" And I should see "Test used question to be deleted" And I am on the "Test quiz" "quiz activity" page And I click on "Preview quiz" "button" @@ -68,5 +67,5 @@ Feature: A teacher can delete questions in the question bank And I reload the page When I choose "Delete" action for "Broken question" in the question bank And I press "Delete" - And I click on "Also show old questions" "checkbox" + And I set the field "Also show old questions" to "1" Then I should not see "Broken question" diff --git a/question/tests/behat/sort_questions.feature b/question/tests/behat/sort_questions.feature index c025f751d32..ca0f2d7b620 100644 --- a/question/tests/behat/sort_questions.feature +++ b/question/tests/behat/sort_questions.feature @@ -1,19 +1,19 @@ @core @core_question Feature: The questions in the question bank can be sorted in various ways - In order to see what questions I have - As a teacher - I want to view them in different orders + In order to see what questions I have + As a teacher + I want to view them in different orders Background: Given the following "users" exist: - | username | firstname | lastname | email | - | teacher1 | Teacher | 1 | teacher1@example.com | + | username | firstname | lastname | email | + | teacher1 | Teacher | 1 | teacher1@example.com | And the following "courses" exist: | fullname | shortname | format | - | Course 1 | C1 | weeks | + | Course 1 | C1 | weeks | And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | + | user | course | role | + | teacher1 | C1 | editingteacher | And the following "question categories" exist: | contextlevel | reference | name | | Course | C1 | Test questions | @@ -24,11 +24,9 @@ Feature: The questions in the question bank can be sorted in various ways | Test questions | numerical | C question 3 name | teacher1 | Question 3 text | numidnum course question bank" page logged in as "teacher1" - @javascript Scenario: The questions are sorted by type by default Then "A question 1 name" "checkbox" should appear before "C question 3 name" "checkbox" - @javascript Scenario: The questions can be sorted by idnumber When I change the window size to "large" And I follow "Sort by ID number ascending" @@ -37,30 +35,25 @@ Feature: The questions in the question bank can be sorted in various ways And I follow "Sort by ID number descending" And "C question 3 name" "checkbox" should appear before "A question 1 name" "checkbox" - @javascript Scenario: The questions can be sorted in reverse order by type When I follow "Sort by Question type descending" Then "C question 3 name" "checkbox" should appear before "A question 1 name" "checkbox" - @javascript Scenario: The questions can be sorted by name When I follow "Sort by Question name ascending" Then "A question 1 name" "checkbox" should appear before "B question 2 name" "checkbox" And "B question 2 name" "checkbox" should appear before "C question 3 name" "checkbox" - @javascript Scenario: The questions can be sorted in reverse order by name When I follow "Sort by Question name ascending" And I follow "Sort by Question name descending" Then "C question 3 name" "checkbox" should appear before "B question 2 name" "checkbox" And "B question 2 name" "checkbox" should appear before "A question 1 name" "checkbox" - @javascript Scenario: The questions can be sorted by creator name When I follow "Sort by First name ascending" Then "A question 1 name" "checkbox" should appear before "B question 2 name" "checkbox" - @javascript Scenario: The questions can be sorted in reverse order by creator name When I follow "Sort by First name ascending" And I follow "Sort by First name descending" @@ -68,7 +61,7 @@ Feature: The questions in the question bank can be sorted in various ways @javascript Scenario: The question text can be shown in the list of questions - When I click on "Show question text in the question list" "checkbox" + When I set the field "Show question text in the question list" to "1" Then I should see "Question 1 text" And I should see "Question 2 text" And I should see "Question 3 text" diff --git a/question/type/essay/tests/behat/edit_min_max_fields.feature b/question/type/essay/tests/behat/edit_min_max_fields.feature index 384d3db989b..66564663a98 100644 --- a/question/type/essay/tests/behat/edit_min_max_fields.feature +++ b/question/type/essay/tests/behat/edit_min_max_fields.feature @@ -21,14 +21,12 @@ Feature: In an essay question, let the question author choose the min/max number | questioncategory | qtype | name | template | minwordlimit | maxwordlimit | | Test questions | essay | essay-min-max | editor | 0 | 0 | - @javascript Scenario: Minimum/Maximum word limit are enabled but not set. When I am on the "essay-min-max" "core_question > edit" page logged in as teacher And I set the field "minwordenabled" to "1" And I click on "Save changes" "button" Then I should see "Minimum word limit is enabled but is not set" - @javascript Scenario: Minimum/Maximum word limit cannot be set to a negative number. When I am on the "essay-min-max" "core_question > edit" page logged in as teacher And I set the field "minwordenabled" to "1" @@ -36,7 +34,6 @@ Feature: In an essay question, let the question author choose the min/max number And I click on "Save changes" "button" Then I should see "Minimum word limit cannot be a negative number" - @javascript Scenario: Maximum word limit cannot be greater than minimum word limit. When I am on the "essay-min-max" "core_question > edit" page logged in as teacher And I set the field "minwordenabled" to "1" diff --git a/report/questioninstances/tests/behat/question_reports.feature b/report/questioninstances/tests/behat/question_reports.feature index 87fcb9a42a0..4c7e57e7724 100644 --- a/report/questioninstances/tests/behat/question_reports.feature +++ b/report/questioninstances/tests/behat/question_reports.feature @@ -1,4 +1,4 @@ -@core @core_question @javascript @report @report_questioninstance +@core @core_question @report @report_questioninstance Feature: A Teacher can generate question instance reports In order to see question instance reports As a Teacher @@ -32,7 +32,6 @@ Feature: A Teacher can generate question instance reports | contextlevel | reference | name | | Activity module | Test quiz Q001 | Quiz category | - @javascript Scenario: Generate general and specific report Given I am on the "C1" "Course" page logged in as "admin" And I navigate to "Reports > Question instances" in site administration @@ -41,7 +40,6 @@ Feature: A Teacher can generate question instance reports And "Course: Course 1" row "Visible" column of "generaltable" table should contain "2" And "Course: Course 1" row "Hidden" column of "generaltable" table should contain "0" - @javascript Scenario: Generate report displaying hidden questions Given I am on the "Test quiz Q001" "mod_quiz > question bank" page logged in as "admin" And I choose "Delete" action for "TF" in the question bank