Skip to content

Commit

Permalink
MDL-49323 mod_assign: Fixed numeric validation in grade form.
Browse files Browse the repository at this point in the history
The behat test for another decimal separator was incorporated.
  • Loading branch information
Nelson Moller committed Jun 1, 2015
1 parent 0c6faf4 commit b73eed1
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
2 changes: 1 addition & 1 deletion mod/assign/gradeform.php
Expand Up @@ -89,7 +89,7 @@ public function validation($data, $files) {
}

if ($instance->grade > 0) {
if (unformat_float($data['grade']) === null && (!empty($data['grade']))) {
if (!unformat_float($data['grade'], true) && (!empty($data['grade']))) {
$errors['grade'] = get_string('invalidfloatforgrade', 'assign', $data['grade']);
} else if (unformat_float($data['grade']) > $instance->grade) {
$errors['grade'] = get_string('gradeabovemaximum', 'assign', $instance->grade);
Expand Down
66 changes: 66 additions & 0 deletions mod/assign/tests/behat/display_error_message_onbadformat.feature
@@ -0,0 +1,66 @@
@mod @mod_assign
Feature: Check that the assignment grade can not be input in a wrong format.
In order to ensure that the grade is entered in the right format
As a teacher
I need to grade a student and ensure that the grade should be correctly entered

@javascript
Scenario: Error in the decimal separator ,
Given the following "courses" exist:
| fullname | shortname | category | groupmode |
| Course 1 | C1 | 0 | 1 |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@example.com |
| student1 | Student | 1 | student10@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And the following "groups" exist:
| name | course | idnumber |
| Group 1 | C1 | G1 |
And I log in as "teacher1"
And I follow "Course 1"
And I turn editing mode on
And I add a "Assignment" to section "1" and I fill the form with:
| Assignment name | Test assignment name |
| Description | Test assignment description |
| Use marking workflow | Yes |
When I follow "Test assignment name"
Then I follow "View/grade all submissions"
And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
And I set the field "Grade out of 100" to "50,,6"
And I press "Save changes"
And I should see "The grade provided could not be understood: 50,,6"

@javascript
Scenario: Error in the decimal separator .
Given the following "courses" exist:
| fullname | shortname | category | groupmode |
| Course 1 | C1 | 0 | 1 |
And the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@example.com |
| student1 | Student | 1 | student10@example.com |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And the following "groups" exist:
| name | course | idnumber |
| Group 1 | C1 | G1 |
And I log in as "teacher1"
And I follow "Course 1"
And I turn editing mode on
And I add a "Assignment" to section "1" and I fill the form with:
| Assignment name | Test assignment name |
| Description | Test assignment description |
| Use marking workflow | Yes |
When I follow "Test assignment name"
Then I follow "View/grade all submissions"
And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
And I set the field "Grade out of 100" to "50..6"
And I press "Save changes"
And I should see "The grade provided could not be understood: 50..6"

0 comments on commit b73eed1

Please sign in to comment.