diff --git a/main/exercise/fill_blanks.class.php b/main/exercise/fill_blanks.class.php index 089fe0baf3..b7a6b747cf 100755 --- a/main/exercise/fill_blanks.class.php +++ b/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 .= ''; 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][]", diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php index 974fa18734..2edb1c6ebf 100644 --- a/main/inc/lib/exercise.lib.php +++ b/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, diff --git a/tests/behat/features/toolExercise.feature b/tests/behat/features/toolExercise.feature index 721974ccf2..5b4575fed4 100644 --- a/tests/behat/features/toolExercise.feature +++ b/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" \ No newline at end of file + 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" \ No newline at end of file