mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 08:22:07 +02:00
Merge branch 'MDL-55209' of https://github.com/NeillM/moodle
This commit is contained in:
commit
6aefea74a4
@ -348,3 +348,20 @@ Feature: Test category management actions
|
||||
| Category ID number | CAT1 |
|
||||
When I press "Create category"
|
||||
Then I should see "ID number is already used for another category"
|
||||
|
||||
Scenario: Test that is possible to remove an idnumber from a course category
|
||||
Given the following "categories" exist:
|
||||
| name | category | idnumber |
|
||||
| Cat 1 | 0 | CAT1 |
|
||||
| Cat 2 | 0 ||
|
||||
And I log in as "admin"
|
||||
And I go to the courses management page
|
||||
And I should see "CAT1" in the "#category-listing" "css_element"
|
||||
When I click on "edit" action for "Cat 1" in management category listing
|
||||
And I set the following fields to these values:
|
||||
| Category name | Category 1 (edited) |
|
||||
| Category ID number ||
|
||||
And I press "Save changes"
|
||||
# Redirect
|
||||
Then I should see "Category 1 (edited)" in the "#category-listing" "css_element"
|
||||
And I should not see "CAT1" in the "#course-listing" "css_element"
|
||||
|
@ -361,15 +361,13 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate {
|
||||
$newcategory->name = $data->name;
|
||||
|
||||
// Validate and set idnumber.
|
||||
if (!empty($data->idnumber)) {
|
||||
if (isset($data->idnumber)) {
|
||||
if (core_text::strlen($data->idnumber) > 100) {
|
||||
throw new moodle_exception('idnumbertoolong');
|
||||
}
|
||||
if ($DB->record_exists('course_categories', array('idnumber' => $data->idnumber))) {
|
||||
if (strval($data->idnumber) !== '' && $DB->record_exists('course_categories', array('idnumber' => $data->idnumber))) {
|
||||
throw new moodle_exception('categoryidnumbertaken');
|
||||
}
|
||||
}
|
||||
if (isset($data->idnumber)) {
|
||||
$newcategory->idnumber = $data->idnumber;
|
||||
}
|
||||
|
||||
@ -484,11 +482,11 @@ class coursecat implements renderable, cacheable_object, IteratorAggregate {
|
||||
$newcategory->name = $data->name;
|
||||
}
|
||||
|
||||
if (isset($data->idnumber) && $data->idnumber != $this->idnumber) {
|
||||
if (isset($data->idnumber) && $data->idnumber !== $this->idnumber) {
|
||||
if (core_text::strlen($data->idnumber) > 100) {
|
||||
throw new moodle_exception('idnumbertoolong');
|
||||
}
|
||||
if ($DB->record_exists('course_categories', array('idnumber' => $data->idnumber))) {
|
||||
if (strval($data->idnumber) !== '' && $DB->record_exists('course_categories', array('idnumber' => $data->idnumber))) {
|
||||
throw new moodle_exception('categoryidnumbertaken');
|
||||
}
|
||||
$newcategory->idnumber = $data->idnumber;
|
||||
|
@ -128,6 +128,21 @@ class core_coursecatlib_testcase extends advanced_testcase {
|
||||
} catch (moodle_exception $e) {
|
||||
$this->assertInstanceOf('moodle_exception', $e);
|
||||
}
|
||||
// Test that duplicates with an idnumber of 0 cannot be created.
|
||||
coursecat::create(array('name' => 'Cat3', 'idnumber' => '0'));
|
||||
try {
|
||||
coursecat::create(array('name' => 'Cat4', 'idnumber' => '0'));
|
||||
$this->fail('Duplicate idnumber "0" exception expected in coursecat::create');
|
||||
} catch (moodle_exception $e) {
|
||||
$this->assertInstanceOf('moodle_exception', $e);
|
||||
}
|
||||
// Test an update cannot make a duplicate idnumber of 0.
|
||||
try {
|
||||
$cat2->update(array('idnumber' => '0'));
|
||||
$this->fail('Duplicate idnumber "0" exception expected in coursecat::update');
|
||||
} catch (Exception $e) {
|
||||
$this->assertInstanceOf('moodle_exception', $e);
|
||||
}
|
||||
}
|
||||
|
||||
public function test_visibility() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user