MDL-45469 profile: make sure profile fields can be initialised without arguments
This commit is contained in:
@@ -14,9 +14,13 @@ class profile_field_menu extends profile_field_base {
|
||||
$this->profile_field_base($fieldid, $userid);
|
||||
|
||||
/// Param 1 for menu type is the options
|
||||
$options = explode("\n", $this->field->param1);
|
||||
if (isset($this->field->param1)) {
|
||||
$options = explode("\n", $this->field->param1);
|
||||
} else {
|
||||
$options = array();
|
||||
}
|
||||
$this->options = array();
|
||||
if ($this->field->required){
|
||||
if (!empty($this->field->required)) {
|
||||
$this->options[''] = get_string('choose').'...';
|
||||
}
|
||||
foreach($options as $key => $option) {
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Unit tests for user/profile/lib.php.
|
||||
*
|
||||
* @package core_user
|
||||
* @copyright 2014 The Open University
|
||||
* @licensehttp://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
global $CFG;
|
||||
|
||||
/**
|
||||
* Unit tests for user/profile/lib.php.
|
||||
*
|
||||
* @package core_user
|
||||
* @copyright 2014 The Open University
|
||||
* @licensehttp://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class core_user_profilelib_testcase extends advanced_testcase {
|
||||
/**
|
||||
* Make sure that all profile fields can be initialised without arguments.
|
||||
*/
|
||||
public function test_default_constructor() {
|
||||
global $DB, $CFG;
|
||||
require_once($CFG->dirroot . '/user/profile/lib.php');
|
||||
require_once($CFG->dirroot . '/user/profile/definelib.php');
|
||||
$datatypes = profile_list_datatypes();
|
||||
foreach ($datatypes as $datatype => $datatypename) {
|
||||
require_once($CFG->dirroot . '/user/profile/field/' .
|
||||
$datatype . '/field.class.php');
|
||||
$newfield = 'profile_field_' . $datatype;
|
||||
$formfield = new $newfield();
|
||||
$this->assertNotNull($formfield);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user