From 0c76aa984c4ff6dea4535b095a63ecfbaea733bd Mon Sep 17 00:00:00 2001 From: Adrian Greeve Date: Mon, 14 Oct 2013 10:36:25 +0800 Subject: [PATCH] MDL-42177 libraries: Unit tests for new functions that deal with user name fields. functions with unit tests: get_required_user_name_fields, get_enabled_user_name_fields, get_disabled_user_name_fields. --- user/tests/editlib_test.php | 118 ++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 user/tests/editlib_test.php diff --git a/user/tests/editlib_test.php b/user/tests/editlib_test.php new file mode 100644 index 00000000000..a4c76fd169c --- /dev/null +++ b/user/tests/editlib_test.php @@ -0,0 +1,118 @@ +. + +/** + * Unit tests for user/editlib.php. + * + * @package core_user + * @category phpunit + * @copyright 2013 Adrian Greeve + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +global $CFG; +require_once($CFG->dirroot.'/user/editlib.php'); + +/** + * Unit tests for user editlib api. + * + * @package core_user + * @category phpunit + * @copyright 2013 Adrian Greeve + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class core_user_editlib_testcase extends advanced_testcase { + + /** + * Test that the required fields are returned in the correct order. + */ + function test_useredit_get_required_name_fields() { + global $CFG; + // Back up config settings for restore later. + $originalcfg = new stdClass(); + $originalcfg->fullnamedisplay = $CFG->fullnamedisplay; + + $CFG->fullnamedisplay = 'language'; + $expectedresult = array(5 => 'firstname', 21 => 'lastname'); + $this->assertEquals(useredit_get_required_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstname'; + $expectedresult = array(5 => 'firstname', 21 => 'lastname'); + $this->assertEquals(useredit_get_required_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'lastname firstname'; + $expectedresult = array('lastname', 9 => 'firstname'); + $this->assertEquals(useredit_get_required_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstnamephonetic lastnamephonetic'; + $expectedresult = array(5 => 'firstname', 21 => 'lastname'); + $this->assertEquals(useredit_get_required_name_fields(), $expectedresult); + + // Tidy up after we finish testing. + $CFG->fullnamedisplay = $originalcfg->fullnamedisplay; + } + + /** + * Test that the enabled fields are returned in the correct order. + */ + function test_useredit_get_enabled_name_fields() { + global $CFG; + // Back up config settings for restore later. + $originalcfg = new stdClass(); + $originalcfg->fullnamedisplay = $CFG->fullnamedisplay; + + $CFG->fullnamedisplay = 'language'; + $expectedresult = array(); + $this->assertEquals(useredit_get_enabled_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstname lastname firstnamephonetic'; + $expectedresult = array(19 => 'firstnamephonetic'); + $this->assertEquals(useredit_get_enabled_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstnamephonetic, lastname lastnamephonetic (alternatename)'; + $expectedresult = array('firstnamephonetic', 28 => 'lastnamephonetic', 46 => 'alternatename'); + $this->assertEquals(useredit_get_enabled_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstnamephonetic lastnamephonetic alternatename middlename'; + $expectedresult = array('firstnamephonetic', 18 => 'lastnamephonetic', 35 => 'alternatename', 49 => 'middlename'); + $this->assertEquals(useredit_get_enabled_name_fields(), $expectedresult); + + // Tidy up after we finish testing. + $CFG->fullnamedisplay = $originalcfg->fullnamedisplay; + } + + /** + * Test that the disabled fields are returned. + */ + function test_useredit_get_disabled_name_fields() { + global $CFG; + // Back up config settings for restore later. + $originalcfg = new stdClass(); + $originalcfg->fullnamedisplay = $CFG->fullnamedisplay; + + $CFG->fullnamedisplay = 'language'; + $expectedresult = array('firstnamephonetic', 'lastnamephonetic', 'middlename', 'alternatename'); + $this->assertEquals(useredit_get_disabled_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstname lastname firstnamephonetic'; + $expectedresult = array(1 => 'lastnamephonetic', 2 => 'middlename', 3 => 'alternatename'); + $this->assertEquals(useredit_get_disabled_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstnamephonetic, lastname lastnamephonetic (alternatename)'; + $expectedresult = array(2 => 'middlename'); + $this->assertEquals(useredit_get_disabled_name_fields(), $expectedresult); + $CFG->fullnamedisplay = 'firstnamephonetic lastnamephonetic alternatename middlename'; + $expectedresult = array(); + $this->assertEquals(useredit_get_disabled_name_fields(), $expectedresult); + + // Tidy up after we finish testing. + $CFG->fullnamedisplay = $originalcfg->fullnamedisplay; + } +}