summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/Helper/UserHelper.php6
-rw-r--r--tests/units/Helper/UserHelperTest.php1
-rw-r--r--tests/units/User/Avatar/LetterAvatarProviderTest.php8
3 files changed, 12 insertions, 3 deletions
diff --git a/app/Helper/UserHelper.php b/app/Helper/UserHelper.php
index 5c466df3..ae3efe1d 100644
--- a/app/Helper/UserHelper.php
+++ b/app/Helper/UserHelper.php
@@ -36,10 +36,10 @@ class UserHelper extends Base
$initials = '';
foreach (explode(' ', $name, 2) as $string) {
- $initials .= mb_substr($string, 0, 1);
+ $initials .= mb_substr($string, 0, 1, 'UTF-8');
}
- return mb_strtoupper($initials);
+ return mb_strtoupper($initials, 'UTF-8');
}
/**
@@ -174,7 +174,7 @@ class UserHelper extends Base
if (isset($task['creator_id']) && $task['creator_id'] == $this->userSession->getId()) {
return true;
}
-
+
if ($this->userSession->isAdmin() || $this->getProjectUserRole($task['project_id']) === Role::PROJECT_MANAGER) {
return true;
}
diff --git a/tests/units/Helper/UserHelperTest.php b/tests/units/Helper/UserHelperTest.php
index c149e663..10bbc58e 100644
--- a/tests/units/Helper/UserHelperTest.php
+++ b/tests/units/Helper/UserHelperTest.php
@@ -20,6 +20,7 @@ class UserHelperTest extends Base
$this->assertEquals('CN', $helper->getInitials('chuck norris'));
$this->assertEquals('CN', $helper->getInitials('chuck norris #2'));
$this->assertEquals('A', $helper->getInitials('admin'));
+ $this->assertEquals('Ü君', $helper->getInitials('Ü 君が代'));
}
public function testGetRoleName()
diff --git a/tests/units/User/Avatar/LetterAvatarProviderTest.php b/tests/units/User/Avatar/LetterAvatarProviderTest.php
index 39e51c98..0eb3ef8e 100644
--- a/tests/units/User/Avatar/LetterAvatarProviderTest.php
+++ b/tests/units/User/Avatar/LetterAvatarProviderTest.php
@@ -34,4 +34,12 @@ class LetterAvatarProviderTest extends Base
$expected = '<div class="avatar-letter" style="background-color: rgb(134, 45, 132)" title="admin">A</div>';
$this->assertEquals($expected, $provider->render($user, 48));
}
+
+ public function testRenderWithUTF8()
+ {
+ $provider = new LetterAvatarProvider($this->container);
+ $user = array('id' => 123, 'name' => 'ü', 'username' => 'admin', 'email' => '');
+ $expected = '<div class="avatar-letter" style="background-color: rgb(62, 147, 31)" title="ü">Ü</div>';
+ $this->assertEquals($expected, $provider->render($user, 48));
+ }
}