new Given('I press "'.get_string('savechangesanddisplay').'"')
);
}
+
+ /**
+ * Checks if the activity with specified name is maked as complete.
+ *
+ * @Given /^the "(?P<activityname_string>(?:[^"]|\\")*)" "(?P<activitytype_string>(?:[^"]|\\")*)" 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<activityname_string>(?:[^"]|\\")*)" "(?P<activitytype_string>(?:[^"]|\\")*)" 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"');
+ }
}
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 |
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 |
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 |
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 |
| 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"
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 |
| 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 |
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."
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"
| 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 |
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"
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"
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"
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"