mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
Merge branch 'MDL-52989-master' of git://github.com/junpataleta/moodle
This commit is contained in:
commit
a9d98d5029
@ -2515,6 +2515,11 @@ class lesson extends lesson_base {
|
||||
if (!array_key_exists($exitjump, $lessonpages)) {
|
||||
return LESSON_EOL;
|
||||
}
|
||||
// Check to see that the return type is not a cluster.
|
||||
if ($lessonpages[$exitjump]->qtype == LESSON_PAGE_CLUSTER) {
|
||||
// If the exitjump is a cluster then go through this function again and try to find an unseen question.
|
||||
$exitjump = $this->cluster_jump($exitjump, $userid);
|
||||
}
|
||||
return $exitjump;
|
||||
}
|
||||
}
|
||||
|
228
mod/lesson/tests/behat/lesson_exit_enter_clusters.feature
Normal file
228
mod/lesson/tests/behat/lesson_exit_enter_clusters.feature
Normal file
@ -0,0 +1,228 @@
|
||||
@mod @mod_lesson
|
||||
Feature: In a lesson activity, students can exit and re-enter the activity when it consists only of cluster pages
|
||||
As a student
|
||||
I need to exit and re-enter a lesson out and into clusters.
|
||||
|
||||
Background:
|
||||
Given the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@example.com |
|
||||
| student1 | Student | 1 | student1@example.com |
|
||||
And the following "courses" exist:
|
||||
| fullname | shortname | category |
|
||||
| Course 1 | C1 | 0 |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C1 | student |
|
||||
And I log in as "teacher1"
|
||||
And I am on "Course 1" course homepage with editing mode on
|
||||
And I add a "Lesson" to section "1" and I fill the form with:
|
||||
| Name | Lesson with cluster |
|
||||
| Description | Cluster lesson description |
|
||||
And I follow "Lesson with cluster"
|
||||
And I follow "Add a content page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | First page name |
|
||||
| Page contents | First page contents |
|
||||
| id_answer_editor_0 | Next page |
|
||||
| id_jumpto_0 | Next page |
|
||||
And I press "Save page"
|
||||
And I follow "Expanded"
|
||||
And I click on "Add a cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][2]" "xpath_element"
|
||||
And I follow "Update page: Cluster"
|
||||
And I set the following fields to these values:
|
||||
| Page title | C Cluster |
|
||||
| Page contents | C Cluster |
|
||||
| Jump | Unseen question within a cluster |
|
||||
And I press "Save page"
|
||||
And I click on "Add a cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][2]" "xpath_element"
|
||||
And I follow "Update page: Cluster"
|
||||
And I set the following fields to these values:
|
||||
| Page title | B Cluster |
|
||||
| Page contents | B Cluster |
|
||||
| Jump | Unseen question within a cluster |
|
||||
And I press "Save page"
|
||||
And I click on "Add a cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][2]" "xpath_element"
|
||||
And I follow "Update page: Cluster"
|
||||
And I set the following fields to these values:
|
||||
| Page title | A Cluster |
|
||||
| Page contents | A Cluster |
|
||||
| Jump | Unseen question within a cluster |
|
||||
And I press "Save page"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][3]" "xpath_element"
|
||||
And I set the field "Select a question type" to "Multichoice"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 1 A Cluster |
|
||||
| Page contents | Question 1 from A cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | B Cluster |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][4]" "xpath_element"
|
||||
And I set the field "Select a question type" to "Multichoice"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 2 A Cluster |
|
||||
| Page contents | Question 2 from A cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | B Cluster |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][5]" "xpath_element"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 3 A Cluster |
|
||||
| Page contents | Question 3 from A cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | B Cluster |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add an end of cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][6]" "xpath_element"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][8]" "xpath_element"
|
||||
And I set the field "Select a question type" to "Multichoice"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 1 B Cluster |
|
||||
| Page contents | Question 1 from B cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | C Cluster |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][9]" "xpath_element"
|
||||
And I set the field "Select a question type" to "Multichoice"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 2 B Cluster |
|
||||
| Page contents | Question 2 from B cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | C Cluster |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][10]" "xpath_element"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 3 B Cluster |
|
||||
| Page contents | Question 3 from B cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | C Cluster |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add an end of cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][11]" "xpath_element"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][13]" "xpath_element"
|
||||
And I set the field "Select a question type" to "Multichoice"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 1 C Cluster |
|
||||
| Page contents | Question 1 from C cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | End of lesson |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][14]" "xpath_element"
|
||||
And I set the field "Select a question type" to "Multichoice"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 2 C Cluster |
|
||||
| Page contents | Question 2 from C cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | End of lesson |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add a question page here" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][15]" "xpath_element"
|
||||
And I press "Add a question page"
|
||||
And I set the following fields to these values:
|
||||
| Page title | Question 3 C Cluster |
|
||||
| Page contents | Question 3 from C cluster |
|
||||
| id_answer_editor_0 | Correct answer |
|
||||
| id_response_editor_0 | Good |
|
||||
| id_jumpto_0 | End of lesson |
|
||||
| id_score_0 | 1 |
|
||||
| id_answer_editor_1 | Incorrect answer |
|
||||
| id_response_editor_1 | Bad |
|
||||
| id_jumpto_1 | Unseen question within a cluster |
|
||||
| id_score_1 | 0 |
|
||||
And I press "Save page"
|
||||
And I click on "Add an end of cluster" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' addlinks ')][16]" "xpath_element"
|
||||
And I log out
|
||||
|
||||
Scenario: Accessing as student to a cluster only lesson
|
||||
Given I log in as "student1"
|
||||
And I am on "Course 1" course homepage
|
||||
And I follow "Lesson with cluster"
|
||||
And I should see "First page contents"
|
||||
And I press "Next page"
|
||||
And I should see "Correct answer"
|
||||
And I set the following fields to these values:
|
||||
| Incorrect answer | 1 |
|
||||
And I press "Submit"
|
||||
And I should see "Bad"
|
||||
And I press "Continue"
|
||||
And I set the following fields to these values:
|
||||
| Incorrect answer | 1 |
|
||||
And I press "Submit"
|
||||
And I should see "Bad"
|
||||
And I press "Continue"
|
||||
And I set the following fields to these values:
|
||||
| Correct answer | 1 |
|
||||
And I press "Submit"
|
||||
And I should see "Good"
|
||||
And I press "Continue"
|
||||
And I should see "Incorrect answer"
|
||||
And I set the following fields to these values:
|
||||
| Incorrect answer | 1 |
|
||||
And I press "Submit"
|
||||
And I am on "Course 1" course homepage
|
||||
And I follow "Lesson with cluster"
|
||||
And I should see "Do you want to start at the last page you saw?"
|
||||
And I click on "No" "link" in the "#page-content" "css_element"
|
||||
And I should see "First page contents"
|
||||
And I press "Next page"
|
||||
And I should see "Correct answer"
|
||||
And I set the following fields to these values:
|
||||
| Correct answer | 1 |
|
||||
And I press "Submit"
|
||||
And I should see "Good"
|
||||
And I press "Continue"
|
||||
Then I should see "Correct answer"
|
Loading…
x
Reference in New Issue
Block a user