aboutsummaryrefslogtreecommitdiff
path: root/tests/behat/combinable.feature
blob: 213d80621d5d8e160a1199d4b5f2b6d31eebac6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
@qtype @qtype_algebra
Feature: Test algebra questions in combined question
  In order to evaluate students responses, As a teacher I need to
  create and preview combined (Combined) questions with algebra subquestions.

  Background:
    Given the following "users" exist:
      | username | firstname | lastname | email               |
      | teacher1 | T1        | Teacher1 | teacher1@moodle.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 |

  @javascript
  Scenario: Create, edit and preview a combined question.
    Given I log in as "teacher1"
    And I am on "Course 1" course homepage
    And I navigate to "Question bank" in current page administration
    Then I press "Create a new question ..."
    And I set the field "Combined" to "1"
    And I click on "Add" "button" in the "Choose a question type to add" "dialogue"
    Then I should see "Adding a combined question"
    And I set the field "Question name" to "Combined 001"
    And I set the field "Question text" to "What is the square of 2xy? [[1:algebra]].<br/> What is the derivative of the function f(x) = x^2 f'(x) = [[2:algebra]]."
    Then I set the field "General feedback" to "The square of 2*x*y is 4*x^2*y^2 and the derivative of x^2 is 2*x."
    And I press "Verify the question text and update the form"

    # Follow sub questions (The order of sub questions comes from the question text).
    Then I follow "'algebra' input '1'"
    And I press "Blanks for 1 More Variables"
    And I set the following fields to these values:
      | id_subqalgebra1defaultmark     | 50%                                     |
      | id_subqalgebra1compareby       | Evaluation                              |
      | id_subqalgebra1variable_0      | x                                       |
      | id_subqalgebra1varmin_0        | -5                                      |
      | id_subqalgebra1varmax_0        | 5                                       |
      | id_subqalgebra1variable_1      | y                                       |
      | id_subqalgebra1varmin_1        | -8                                      |
      | id_subqalgebra1varmax_1        | 8                                       |
      | id_subqalgebra1answer_0        | 4*x^2*y^2                               |
      | id_subqalgebra1generalfeedback  | Your square is incorrect               |

    Then I follow "'algebra' input '2'"
    And I set the following fields to these values:
      | id_subqalgebra2defaultmark     | 50%                                     |
      | id_subqalgebra2compareby       | Evaluation                              |
      | id_subqalgebra2variable_0      | x                                       |
      | id_subqalgebra2varmin_0        | -5                                      |
      | id_subqalgebra2varmax_0        | 5                                       |
      | id_subqalgebra2answer_0        | 2*x                                     |
      | id_subqalgebra2generalfeedback  | Your derivative is incorrect           |

    # Set hints for Multiple tries
    And I follow "Multiple tries"
    And I set the field "Hint 1" to "First hint"
    And I set the field "Hint 2" to "Second hint"

    And I press "id_submitbutton"
    Then I should see "Combined 001"

    # Preview it.
    When I click on "Preview" "link" in the "Combined 001" "table_row"
    And I switch to "questionpreview" window

    # Set display and behaviour options
    And I set the following fields to these values:
      | How questions behave | Interactive with multiple tries |
      | Marked out of        | 3                               |
      | Marks                | Show mark and max               |
      | Specific feedback    | Shown                           |
      | Right answer         | Shown                           |
    And I press "Start again with these options"

    # Attempt the question
    # Test html editor for answer field in Combined MultiResponse.
    And I set the field "Answer 1" to "4*x^2*y^2"
    And I set the field "Answer 2" to "x"
    And I press "Check"
    Then I should see "Your answer is partially correct."
    And I should see "Your derivative is incorrect"
    And I should see "First hint"

    When I press "Try again"
    And I set the following fields to these values:
      | Answer 2 | 2*x |
    Then I press "Check"
    And I should see "Your answer is correct."
    And I should see "The square of 2*x*y is 4*x^2*y^2 and the derivative of x^2 is 2*x."
    And I switch to the main window

    # Backup the course and restore it.
    When I log out
    And I log in as "admin"
    When I backup "Course 1" course using this options:
      | Confirmation | Filename | test_backup.mbz |
    When I restore "test_backup.mbz" backup into a new course using this options:
      | Schema | Course name | Course 2 |
    Then I should see "Course 2"
    When I navigate to "Question bank" in current page administration
    Then I should see "Combined 001"

    # Edit the copy and verify the form field contents.
    When I click on "Edit" "link" in the "Combined 001" "table_row"
    Then the following fields match these values:
      | Question name   | Combined 001 |
      | Question text   | What is the square of 2xy? [[1:algebra]].<br/> What is the derivative of the function f(x) = x^2 f'(x) = [[2:algebra]]. |

      | id_subqalgebra1defaultmark     | 50%                                     |
      | id_subqalgebra1compareby       | Evaluation                              |
      | id_subqalgebra1variable_0      | x                                       |
      | id_subqalgebra1varmin_0        | -5                                      |
      | id_subqalgebra1varmax_0        | 5                                       |
      | id_subqalgebra1variable_1      | y                                       |
      | id_subqalgebra1varmin_1        | -8                                      |
      | id_subqalgebra1varmax_1        | 8                                       |
      | id_subqalgebra1answer_0        | 4*x^2*y^2                               |
      | id_subqalgebra1generalfeedback  | Your square is incorrect               |

      | id_subqalgebra2defaultmark     | 50%                                     |
      | id_subqalgebra2compareby       | Evaluation                              |
      | id_subqalgebra2variable_0      | x                                       |
      | id_subqalgebra2varmin_0        | -5                                      |
      | id_subqalgebra2varmax_0        | 5                                       |
      | id_subqalgebra2answer_0        | 2*x                                     |
      | id_subqalgebra2generalfeedback  | Your derivative is incorrect           |

      | 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"
    Then I should see "Edited question name"