diff --git a/tests/functional/ucp_profile_test.php b/tests/functional/ucp_profile_test.php index e7abba9255..c9f335a052 100644 --- a/tests/functional/ucp_profile_test.php +++ b/tests/functional/ucp_profile_test.php @@ -46,4 +46,89 @@ class phpbb_functional_ucp_profile_test extends phpbb_functional_test_case $this->assertEquals('phpbb_twitter', $form->get('pf_phpbb_twitter')->getValue()); $this->assertEquals('phpbb.youtube', $form->get('pf_phpbb_youtube')->getValue()); } + + public function test_submitting_emoji_allowed() + { + $this->add_lang('ucp'); + $this->login(); + + $crawler = self::request('GET', 'ucp.php?i=ucp_profile&mode=profile_info'); + $this->assertContainsLang('UCP_PROFILE_PROFILE_INFO', $crawler->filter('#cp-main h2')->text()); + + $form = $crawler->selectButton('Submit')->form([ + 'pf_phpbb_location' => '๐Ÿ˜', // grinning face with smiling eyes Emoji + ]); + $crawler = self::submit($form); + $this->assertContainsLang('PROFILE_UPDATED', $crawler->filter('#message')->text()); + + $crawler = self::request('GET', 'ucp.php?i=ucp_profile&mode=profile_info'); + $form = $crawler->selectButton('Submit')->form(); + $this->assertEquals('๐Ÿ˜', $form->get('pf_phpbb_location')->getValue()); + } + + public function test_submitting_emoji_disallowed() + { + $this->add_lang(['ucp', 'acp/permissions']); + $this->login(); + $this->admin_login(); + + // Group global permissions + $crawler = self::request('GET', 'adm/index.php?i=acp_permissions&icat=16&mode=setting_group_global&sid=' . $this->sid); + $this->assertContainsLang('ACP_GROUPS_PERMISSIONS_EXPLAIN', $this->get_content()); + + // Select Registered users group + $form = $crawler->selectButton($this->lang('SUBMIT'))->form(['group_id' => [2]]); + $crawler = self::submit($form); + $this->assertContainsLang('ACL_SET', $crawler->filter('h1')->eq(1)->text()); + + // Globals for \phpbb\auth\auth + global $db, $cache; + $db = $this->get_db(); + $cache = new phpbb_mock_null_cache; + + $auth = new \phpbb\auth\auth; + // Hardcoded user_id + $user_data = $auth->obtain_user_data(2); + $auth->acl($user_data); + $this->assertEquals(1, $auth->acl_get('u_emoji')); + + // Set u_emoji to never + $form = $crawler->selectButton($this->lang('APPLY_PERMISSIONS'))->form(['setting[2][0][u_emoji]' => '0']); + $crawler = self::submit($form); + $this->assertContainsLang('AUTH_UPDATED', $crawler->text()); + + // check acl again + $auth = new \phpbb\auth\auth; + $user_data = $auth->obtain_user_data(2); + $auth->acl($user_data); + $this->assertEquals(0, $auth->acl_get('u_emoji')); + + $crawler = self::request('GET', 'ucp.php?i=ucp_profile&mode=profile_info'); + $this->assertContainsLang('UCP_PROFILE_PROFILE_INFO', $crawler->filter('#cp-main h2')->text()); + + $form = $crawler->selectButton('Submit')->form([ + 'pf_phpbb_location' => '๐Ÿ˜', // grinning face with smiling eyes Emoji + ]); + + $crawler = self::submit($form); + $this->assertContains('The field โ€œLocationโ€ has invalid characters.', $crawler->filter('p[class="error"]')->text()); + + // Set u_emoji back to Yes + $crawler = self::request('GET', 'adm/index.php?i=acp_permissions&icat=16&mode=setting_group_global&sid=' . $this->sid); + $this->assertContainsLang('ACP_GROUPS_PERMISSIONS_EXPLAIN', $this->get_content()); + // Select Registered users group + $form = $crawler->selectButton($this->lang('SUBMIT'))->form(['group_id' => [2]]); + $crawler = self::submit($form); + $this->assertContainsLang('ACL_SET', $crawler->filter('h1')->eq(1)->text()); + // Set u_emoji to never + $form = $crawler->selectButton($this->lang('APPLY_PERMISSIONS'))->form(["setting[2][0][u_emoji]" => '1']); + $crawler = self::submit($form); + $this->assertContainsLang('AUTH_UPDATED', $crawler->text()); + + // check acl again + $auth = new \phpbb\auth\auth; + $user_data = $auth->obtain_user_data(2); + $auth->acl($user_data); + $this->assertEquals(1, $auth->acl_get('u_emoji')); + } }