diff --git a/completion/tests/behat/behat_completion.php b/completion/tests/behat/behat_completion.php index 6790dbf9ca6..3762290dcb9 100644 --- a/completion/tests/behat/behat_completion.php +++ b/completion/tests/behat/behat_completion.php @@ -122,4 +122,40 @@ class behat_completion extends behat_base { new Given('I press "'.get_string('savechangesanddisplay').'"') ); } + + /** + * Checks if the activity with specified name is maked as complete. + * + * @Given /^the "(?P(?:[^"]|\\")*)" "(?P(?:[^"]|\\")*)" activity with "(manual|auto)" completion should be marked as complete$/ + * @return array + */ + public function activity_marked_as_complete($activityname, $activitytype, $completiontype) { + if ($completiontype == "manual") { + $imgalttext = get_string("completion-alt-manual-y", 'core_completion', $activityname); + } else { + $imgalttext = get_string("completion-alt-auto-y", 'core_completion', $activityname); + } + $csselementforactivitytype = "li.modtype_".strtolower($activitytype); + + return new Given('"//img[contains(@alt, \''.$imgalttext.'\')]" "xpath_element" ' . + 'should exist in the "'.$csselementforactivitytype.'" "css_element"'); + } + + /** + * Checks if the activity with specified name is maked as complete. + * + * @Given /^the "(?P(?:[^"]|\\")*)" "(?P(?:[^"]|\\")*)" activity with "(manual|auto)" completion should be marked as not complete$/ + * @return array + */ + public function activity_marked_as_not_complete($activityname, $activitytype, $completiontype) { + if ($completiontype == "manual") { + $imgalttext = get_string("completion-alt-manual-n", 'core_completion', $activityname); + } else { + $imgalttext = get_string("completion-alt-auto-n", 'core_completion', $activityname); + } + $csselementforactivitytype = "li.modtype_".strtolower($activitytype); + + return new Given('"//img[contains(@alt, \''.$imgalttext.'\')]" "xpath_element" ' . + 'should exist in the "'.$csselementforactivitytype.'" "css_element"'); + } } diff --git a/mod/choice/tests/behat/publish_results_anonymously.feature b/mod/choice/tests/behat/publish_results_anonymously.feature index f195b0f8a3b..374f97d3fc8 100644 --- a/mod/choice/tests/behat/publish_results_anonymously.feature +++ b/mod/choice/tests/behat/publish_results_anonymously.feature @@ -22,7 +22,6 @@ Feature: A teacher can choose whether to publish choice activity results anonymo And I follow "Course 1" And I turn editing mode on - @javascript Scenario: Publish anonymous results Given I add a "Choice" to section "1" and I fill the form with: | Choice name | Choice 1 | @@ -41,9 +40,8 @@ Feature: A teacher can choose whether to publish choice activity results anonymo And I follow "Choice 1" Then I should not see "Student 1" And I should not see "Users who chose this option" - And I hover ".results .graph img" "css_element" + And ".results .graph img" "css_element" should exist - @javascript Scenario: Publish full results Given I add a "Choice" to section "1" and I fill the form with: | Choice name | Choice 1 | diff --git a/mod/forum/tests/behat/completion_condition_number_discussions.feature b/mod/forum/tests/behat/completion_condition_number_discussions.feature index 586d4ff5168..ce20f61836e 100644 --- a/mod/forum/tests/behat/completion_condition_number_discussions.feature +++ b/mod/forum/tests/behat/completion_condition_number_discussions.feature @@ -4,7 +4,6 @@ Feature: Set a certain number of discussions as a completion condition for a for As a teacher I need to set a minimum number of discussions to mark the forum activity as completed - @javascript Scenario: Set X number of discussions as a condition Given the following "users" exist: | username | firstname | lastname | email | @@ -36,7 +35,7 @@ Feature: Set a certain number of discussions as a completion condition for a for And I log out And I log in as "student1" And I follow "Course 1" - Then I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_forum ')]/descendant::img[@alt='Not completed: Test forum name']" "xpath_element" + Then the "Test forum name" "forum" activity with "auto" completion should be marked as not complete And I add a new discussion to "Test forum name" forum with: | Subject | Post 1 subject | | Message | Body 1 content | @@ -44,7 +43,7 @@ Feature: Set a certain number of discussions as a completion condition for a for | Subject | Post 2 subject | | Message | Body 2 content | And I follow "Course 1" - And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_forum ')]/descendant::img[contains(@alt, 'Completed: Test forum name')]" "xpath_element" + Then the "Test forum name" "forum" activity with "auto" completion should be marked as complete And I log out And I log in as "teacher1" And I follow "Course 1" diff --git a/mod/lesson/tests/behat/completion_condition_end_reached.feature b/mod/lesson/tests/behat/completion_condition_end_reached.feature index f563080d71a..ac44d5b9278 100644 --- a/mod/lesson/tests/behat/completion_condition_end_reached.feature +++ b/mod/lesson/tests/behat/completion_condition_end_reached.feature @@ -4,7 +4,6 @@ Feature: Set end of lesson reached as a completion condition for a lesson As a teacher I need to set end of lesson reached to mark the lesson activity as completed - @javascript Scenario: Set end reached as a condition Given the following "users" exist: | username | firstname | lastname | email | @@ -39,7 +38,7 @@ Feature: Set end of lesson reached as a completion condition for a lesson | id_answer_editor_0 | Next page | | id_jumpto_0 | Next page | And I press "Save page" - And I set the field "qtype" to "Add a content page" + And I select "Add a content page" from the "qtype" singleselect And I set the following fields to these values: | Page title | Second page name | | Page contents | Second page contents | @@ -51,11 +50,11 @@ Feature: Set end of lesson reached as a completion condition for a lesson And I log out When I log in as "student1" And I follow "Course 1" - Then I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element" + Then the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete And I follow "Test lesson" And I press "Next page" And I follow "Course 1" - And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element" + Then the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete And I follow "Course 1" And I follow "Test lesson" And I should see "You have seen more than one page of this lesson already." @@ -64,7 +63,7 @@ Feature: Set end of lesson reached as a completion condition for a lesson And I press "Next page" And I press "Next page" And I follow "Course 1" - And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Completed: Test lesson']" "xpath_element" + Then the "Test lesson" "lesson" activity with "auto" completion should be marked as complete And I log out And I log in as "teacher1" And I follow "Course 1" diff --git a/mod/lesson/tests/behat/completion_condition_time_spent.feature b/mod/lesson/tests/behat/completion_condition_time_spent.feature index e3c6cb1a805..821b152b9c1 100644 --- a/mod/lesson/tests/behat/completion_condition_time_spent.feature +++ b/mod/lesson/tests/behat/completion_condition_time_spent.feature @@ -41,7 +41,7 @@ Feature: Set time spent as a completion condition for a lesson | id_answer_editor_0 | Next page | | id_jumpto_0 | Next page | And I press "Save page" - And I set the field "qtype" to "Add a content page" + And I select "Add a content page" from the "qtype" singleselect And I set the following fields to these values: | Page title | Second page name | | Page contents | Second page contents | @@ -53,14 +53,14 @@ Feature: Set time spent as a completion condition for a lesson And I log out When I log in as "student1" And I follow "Course 1" - Then I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element" + Then the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete And I follow "Test lesson" And I press "Next page" And I press "Next page" And I should see "You completed this lesson in" And I should see ", which is less than the required time of 1 min. You might need to attempt the lesson again." And I follow "Course 1" - And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Not completed: Test lesson']" "xpath_element" + And the "Test lesson" "lesson" activity with "auto" completion should be marked as not complete And I follow "Course 1" And I follow "Test lesson" And I press "Next page" @@ -68,7 +68,7 @@ Feature: Set time spent as a completion condition for a lesson And I press "Next page" And I should not see "You might need to attempt the lesson again." And I follow "Course 1" - And I hover "//li[contains(concat(' ', normalize-space(@class), ' '), ' modtype_lesson ')]/descendant::img[@alt='Completed: Test lesson']" "xpath_element" + And the "Test lesson" "lesson" activity with "auto" completion should be marked as complete And I log out And I log in as "teacher1" And I follow "Course 1" diff --git a/mod/quiz/tests/behat/completion_condition_attempts_used.feature b/mod/quiz/tests/behat/completion_condition_attempts_used.feature index 405d7143607..2e9ff0ae742 100644 --- a/mod/quiz/tests/behat/completion_condition_attempts_used.feature +++ b/mod/quiz/tests/behat/completion_condition_attempts_used.feature @@ -35,14 +35,14 @@ Feature: Set a quiz to be marked complete when the student uses all attempts all Scenario: student1 uses up both attempts without passing When I log in as "student1" And I follow "Course 1" - And "//img[contains(@alt, 'Not completed: Test quiz name')]" "xpath_element" should exist in the "li.modtype_quiz" "css_element" + And the "Test quiz name" "quiz" activity with "auto" completion should be marked as not complete And I follow "Test quiz name" And I press "Attempt quiz now" And I set the field "False" to "1" And I press "Next" And I press "Submit all and finish" And I follow "C1" - And "//img[contains(@alt, 'Not completed: Test quiz name')]" "xpath_element" should exist in the "li.modtype_quiz" "css_element" + And the "Test quiz name" "quiz" activity with "auto" completion should be marked as not complete And I follow "Test quiz name" And I press "Re-attempt quiz" And I set the field "False" to "1" diff --git a/mod/quiz/tests/behat/completion_condition_passing_grade.feature b/mod/quiz/tests/behat/completion_condition_passing_grade.feature index ba735c1ab59..1d781e6fbee 100644 --- a/mod/quiz/tests/behat/completion_condition_passing_grade.feature +++ b/mod/quiz/tests/behat/completion_condition_passing_grade.feature @@ -35,7 +35,7 @@ Feature: Set a quiz to be marked complete when the student passes Scenario: student1 passes on the first try When I log in as "student1" And I follow "Course 1" - And "//img[contains(@alt, 'Not completed: Test quiz name')]" "xpath_element" should exist in the "li.modtype_quiz" "css_element" + And the "Test quiz name" "quiz" activity with "auto" completion should be marked as not complete And I follow "Test quiz name" And I press "Attempt quiz now" And I set the field "True" to "1"