Переглянути джерело

Add id in select in order to be selected when doing test with behat

jmontoyaa 8 роки тому
батько
коміт
a887d50676

+ 4 - 1
main/exercise/fill_blanks.class.php

@@ -481,6 +481,7 @@ class FillBlanks extends Question
     }
 
     /**
+     * @param int $currentQuestion
      * @param int $questionId
      * @param string $correctItem
      * @param array $attributes
@@ -491,6 +492,7 @@ class FillBlanks extends Question
      * @return string
      */
     public static function getFillTheBlankHtml(
+        $currentQuestion,
         $questionId,
         $correctItem,
         $attributes,
@@ -510,7 +512,7 @@ class FillBlanks extends Question
                 // display a menu from answer separated with |
                 // if display for student, shuffle the correct answer menu
                 $listMenu = self::getFillTheBlankMenuAnswers($inTeacherSolution, $displayForStudent);
-                $result .= '<select name="choice['.$questionId.'][]">';
+                $result .= '<select id="choice_id_'.$currentQuestion.'_'.$inBlankNumber.'" name="choice['.$questionId.'][]">';
                 for ($k=0; $k < count($listMenu); $k++) {
                     $selected = '';
                     if ($correctItem == $listMenu[$k]) {
@@ -534,6 +536,7 @@ class FillBlanks extends Question
                 //no break
             case self::FILL_THE_BLANK_STANDARD:
             default:
+                $attributes['id'] = 'choice_id_'.$currentQuestion.'_'.$inBlankNumber;
                 $result = Display::input(
                     'text',
                     "choice[$questionId][]",

+ 2 - 0
main/inc/lib/exercise.lib.php

@@ -595,6 +595,7 @@ class ExerciseLib
                                 }
                                 $attributes['style'] = "width:" . $listAnswerInfo['tabinputsize'][$i] . "px";
                                 $answer .= FillBlanks::getFillTheBlankHtml(
+                                    $current_item,
                                     $questionId,
                                     $correctItem,
                                     $attributes,
@@ -615,6 +616,7 @@ class ExerciseLib
                                 // display the blank word
                                 $attributes["style"] = "width:" . $listAnswerInfo['tabinputsize'][$i] . "px";
                                 $answer .= FillBlanks::getFillTheBlankHtml(
+                                    $current_item,
                                     $questionId,
                                     '',
                                     $attributes,

+ 130 - 104
tests/behat/features/toolExercise.feature

@@ -6,6 +6,14 @@ Feature: Exercise tool
     Given I am a platform administrator
     And I am on course "TEMP" homepage
 
+  Scenario: Create an exercise category
+    Given I am on "/main/exercise/tests_category.php?action=addcategory&cidReq=TEMP"
+    When I fill in the following:
+      | category_name | Category 1 |
+    And I fill in ckeditor field "category_description" with "Category description"
+    And I press "SubmitNote"
+    Then I should see "Category added"
+
   Scenario: Create an exercise
     Given I am on "/main/exercise/exercise_admin.php?cidReq=TEMP"
     And I press advanced settings
@@ -15,108 +23,126 @@ Feature: Exercise tool
     And I press "submitExercise"
     Then I should see "Exercise added"
 
-#  Scenario: Edit an exercise
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Exercise 1"
-#    And I follow "Edit"
-#    And I follow "Edit test name and settings"
-#    And I press "submitExercise"
-#    Then I should see "Test name and settings have been saved."
-#
-#  Scenario: Add question "Multiple choice" to exercise created "Exercise 1"
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Exercise 1"
-#    And I follow "Edit"
-#    And I follow "Multiple choice"
-#    When I fill in the following:
-#      | questionName | Question Multiple choice |
-#      | weighting[1] | 10 |
-#    Then I fill in ckeditor field "answer[1]" with "Answer true"
-#    Then I fill in ckeditor field "answer[2]" with "Answer false"
-#    Then I fill in ckeditor field "answer[3]" with "Answer false"
-#    Then I fill in ckeditor field "answer[4]" with "Answer false"
-#
-#    Then I fill in ckeditor field "comment[1]" with "Comment true"
-#    Then I fill in ckeditor field "comment[2]" with "Comment false"
-#    Then I fill in ckeditor field "comment[3]" with "Comment false"
-#    Then I fill in ckeditor field "comment[4]" with "Comment false"
-#    And I press "submitQuestion"
-#    Then I should see "Item added"
-#
-#  Scenario: Add question "Multiple answer" to exercise created "Exercise 1"
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Exercise 1"
-#    And I follow "Edit"
-#    And I follow "Multiple answer"
-#    When I fill in the following:
-#      | questionName | Question Multiple |
-#      | weighting[1] | 10 |
-#    Then I check the "correct[1]" radio button
-#    Then I fill in ckeditor field "answer[1]" with "Answer true"
-#    Then I fill in ckeditor field "answer[2]" with "Answer false"
-#    Then I fill in ckeditor field "answer[3]" with "Answer false"
-#    Then I fill in ckeditor field "answer[4]" with "Answer false"
-#
-#    Then I fill in ckeditor field "comment[1]" with "Comment true"
-#    Then I fill in ckeditor field "comment[2]" with "Comment false"
-#    Then I fill in ckeditor field "comment[3]" with "Comment false"
-#    Then I fill in ckeditor field "comment[4]" with "Comment false"
-#    And I press "submitQuestion"
-#    Then I should see "Item added"
-#
-#  Scenario: Add question "Matching" to exercise created "Exercise 1"
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Exercise 1"
-#    And I follow "Edit"
-#    And I follow "Matching"
-#    When I fill in the following:
-#      | questionName | Question Matching |
-#      | answer[1] | Answer A |
-#      | answer[2] | Answer B |
-#      | option[1] | Option A |
-#      | option[2] | Option B |
-#    And I fill in select bootstrap static input "#matches_2" select "2"
-#
-#    And I press "submitQuestion"
-#    Then I should see "Item added"
-#
-#  Scenario: Try exercise "Exercise 1"
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Exercise 1"
-#    And I follow "Start test"
-#    Then I should see "Question Multiple choice"
-#    And I check the "Answer true" radio button
-#    And wait for the page to be loaded
-#    Then I follow "Next question"
-#    And wait for the page to be loaded
-#    And I check the "Answer true" radio button
-#    And wait for the page to be loaded
-#    Then I follow "Next question"
-#    And wait for the page to be loaded
-#    Then I select "A" from "choice_id_3_1"
-#    Then I select "B" from "choice_id_3_2"
-#    Then I follow "End test"
-#    Then I should see "Score for the test: 40 / 40"
+  Scenario: Edit an exercise
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Exercise 1"
+    And I follow "Edit"
+    And I follow "Edit test name and settings"
+    And I press "submitExercise"
+    Then I should see "Test name and settings have been saved."
+
+  Scenario: Add question "Multiple choice" to exercise created "Exercise 1"
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Exercise 1"
+    And I follow "Edit"
+    And I follow "Multiple choice"
+    When I fill in the following:
+      | questionName | Multiple choice |
+      | weighting[1] | 10 |
+    Then I fill in ckeditor field "answer[1]" with "Answer true"
+    Then I fill in ckeditor field "answer[2]" with "Answer false"
+    Then I fill in ckeditor field "answer[3]" with "Answer false"
+    Then I fill in ckeditor field "answer[4]" with "Answer false"
+
+    Then I fill in ckeditor field "comment[1]" with "Comment true"
+    Then I fill in ckeditor field "comment[2]" with "Comment false"
+    Then I fill in ckeditor field "comment[3]" with "Comment false"
+    Then I fill in ckeditor field "comment[4]" with "Comment false"
+    And I press "submitQuestion"
+    Then I should see "Item added"
+
+  Scenario: Add question "Multiple answer" to exercise created "Exercise 1"
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Exercise 1"
+    And I follow "Edit"
+    And I follow "Multiple answer"
+    When I fill in the following:
+      | questionName | Multiple answers |
+      | weighting[1] | 10 |
+    Then I check the "correct[1]" radio button
+    Then I fill in ckeditor field "answer[1]" with "Answer true"
+    Then I fill in ckeditor field "answer[2]" with "Answer false"
+    Then I fill in ckeditor field "answer[3]" with "Answer false"
+    Then I fill in ckeditor field "answer[4]" with "Answer false"
+
+    Then I fill in ckeditor field "comment[1]" with "Comment true"
+    Then I fill in ckeditor field "comment[2]" with "Comment false"
+    Then I fill in ckeditor field "comment[3]" with "Comment false"
+    Then I fill in ckeditor field "comment[4]" with "Comment false"
+    And I press "submitQuestion"
+    Then I should see "Item added"
+
+  Scenario: Add question "Fill in blanks" to "Exercise 1"
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Exercise 1"
+    And I follow "Edit"
+    And I follow "Fill blanks or form"
+    When I fill in the following:
+      | questionName | Fill blanks |
+    Then I fill in ckeditor field "answer" with "Romeo and [Juliet]"
+    And I press "submitQuestion"
+    Then I should see "Item added"
+
+  Scenario: Add question "Matching" to exercise created "Exercise 1"
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Exercise 1"
+    And I follow "Edit"
+    And I follow "Matching"
+    When I fill in the following:
+      | questionName | Matching |
+      | answer[1] | Answer A |
+      | answer[2] | Answer B |
+      | option[1] | Option A |
+      | option[2] | Option B |
+    And I fill in select bootstrap static input "#matches_2" select "2"
+    And I press "submitQuestion"
+    Then I should see "Item added"
+
+  Scenario: Try exercise "Exercise 1"
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Exercise 1"
+    And I follow "Start test"
+    Then I should see "Multiple choice"
+    And I check the "Answer true" radio button
+    And wait for the page to be loaded
+    Then I follow "Next question"
+    And wait for the page to be loaded
+    And I check the "Answer true" radio button
+    And wait for the page to be loaded
+    Then I follow "Next question"
+    Then I fill in the following:
+      | choice_id_3_0 | Juliet |
+    And wait for the page to be loaded
+    Then I follow "Next question"
+    Then I select "A" from "choice_id_4_1"
+    Then I select "B" from "choice_id_4_2"
+    Then I follow "End test"
+    Then I should see "Score for the test: 41 / 41"
+
+  Scenario: Check exercise result
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Exercise 1"
+    And I follow "Edit"
+    And I follow "Results and feedback"
+    Then I should see "Learner score"
+    And wait for the page to be loaded
+    And I follow "Grade activity"
+    Then I should see "Score for the test: 41 / 41"
+
+  Scenario: Duplicate exercise
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Copy this exercise as a new one"
+    And I confirm the popup
+    Then I should see "Exercise copied"
+    And I should see "Exercise 1 - Copy"
+
+  Scenario: Delete an exercise
+    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
+    And I follow "Delete"
+    And I confirm the popup
+    Then I should see "The test has been deleted"
 
-#  Scenario: Check exercise result
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Exercise 1"
-#    And I follow "Edit"
-#    And I follow "Results and feedback"
-#    Then I should see "Learner score"
-#    And wait for the page to be loaded
-#    And I follow "Grade activity"
-#    Then I should see "Score for the test: 20 / 20"
-#
-#  Scenario: Duplicate exercise
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Copy this exercise as a new one"
-#    And I confirm the popup
-#    Then I should see "Exercise copied"
-#    And I should see "Exercise 1 - Copy"
-#
-#  Scenario: Delete an exercise
-#    Given I am on "/main/exercise/exercise.php?cidReq=TEMP"
-#    And I follow "Delete"
-#    And I confirm the popup
-#    Then I should see "The test has been deleted"
+  Scenario: Delete an exercise category
+    Given I am on "/main/exercise/tests_category.php?cidReq=TEMP"
+    And I follow "Delete"
+    Then I should see "Category deleted"