// Back up config settings for restore later.
$originalcfg = new stdClass();
$originalcfg->fullnamedisplay = $CFG->fullnamedisplay;
+ $originalcfg->alternativefullnameformat = $CFG->alternativefullnameformat;
// Testing existing fullnamedisplay settings.
$CFG->fullnamedisplay = 'firstname';
// Test override parameter.
$CFG->fullnamedisplay = 'firstname';
+ $expectedname = "$user->firstname $user->lastname $user->firstnamephonetic $user->lastnamephonetic $user->middlename $user->alternatename";
+ $testname = fullname($user, true);
+ $this->assertSame($expectedname, $testname);
+
+ // Test alternativefullnameformat setting.
+ // Test alternativefullnameformat that has been set to nothing.
+ $CFG->alternativefullnameformat = '';
+ $expectedname = "$user->firstname $user->lastname $user->firstnamephonetic $user->lastnamephonetic $user->middlename $user->alternatename";
+ $testname = fullname($user, true);
+ $this->assertSame($expectedname, $testname);
+
+ // Test alternativefullnameformat that has been set to 'language'.
+ $CFG->alternativefullnameformat = 'language';
+ $expectedname = "$user->firstname $user->lastname $user->firstnamephonetic $user->lastnamephonetic $user->middlename $user->alternatename";
+ $testname = fullname($user, true);
+ $this->assertSame($expectedname, $testname);
+
+ // Test customising the alternativefullnameformat setting with a basic configuration.
+ $CFG->alternativefullnameformat = 'firstname lastname';
$expectedname = "$user->firstname $user->lastname";
$testname = fullname($user, true);
$this->assertSame($expectedname, $testname);
+ // Test customising the alternativefullnameformat setting with a more advanced configuration.
+ $CFG->alternativefullnameformat = 'firstname firstnamephonetic lastname lastnamephonetic, middlename';
+ $expectedname = "$user->firstname $user->firstnamephonetic $user->lastname $user->lastnamephonetic, $user->middlename";
+ $testname = fullname($user, true);
+ $this->assertSame($expectedname, $testname);
+
// Test additional name fields.
$CFG->fullnamedisplay = 'lastname lastnamephonetic firstname firstnamephonetic';
$expectedname = "$user->lastname $user->lastnamephonetic $user->firstname $user->firstnamephonetic";
// Tidy up after we finish testing.
$CFG->fullnamedisplay = $originalcfg->fullnamedisplay;
+ $CFG->alternativefullnameformat = $originalcfg->alternativefullnameformat;
}
public function test_get_all_user_name_fields() {