function testClanNameNegativeValidation() { $clanName = 'Ù�س اÙ�Ù�Ø·Ø'; $this->assertFalse((bool) Clan::isValidClanName($clanName)); }
/** * Edits clan metadata * * @todo accumulate error messages * @param string $clan-avatar-url A url to an image to use as the clan icon * @param string $clan-description A single paragraph describing the clan * @param string $new_clan_name The desired new name of the clan * @return Array The viewspec * @throws Exception Only leaders can update clan details * @note * All parameters are options */ public function update() { $player = new Player(self_char_id()); $clan = ClanFactory::clanOfMember($player); if (!$this->playerIsLeader($player, $clan)) { throw new \Exception('You may not update a clan you are not a leader of.'); } $new_clan_avatar_url = in('clan-avatar-url'); $new_clan_description = in('clan-description'); $new_clan_name = trim(in('new_clan_name', '')); $error = null; if ($new_clan_name != $clan->getName()) { if (Clan::isValidClanName($new_clan_name)) { if (Clan::isUniqueClanName($new_clan_name)) { // *** Rename the clan if it is valid. $new_clan_name = Clan::renameClan($clan->getID(), $new_clan_name); $clan->setName($new_clan_name); } else { $error = 'That clan name is already in use!'; } } elseif ($new_clan_name) { $error = 'Sorry, too many special symbols in your clan name.'; } } // Saving incoming changes to clan leader edits. if (Clan::clanAvatarIsValid($new_clan_avatar_url)) { Clan::saveClanAvatarUrl($new_clan_avatar_url, $clan->getID()); $clan->setAvatarUrl($new_clan_avatar_url); } else { $error = 'That avatar url is not valid.'; } // Truncate at 500 chars if necessary. $truncated_clan_desc = substr((string) $new_clan_description, 0, 500); if ($truncated_clan_desc != (string) $new_clan_description) { $new_clan_description = $truncated_clan_desc; } if ($new_clan_description) { Clan::saveClanDescription($new_clan_description, $clan->getID()); $clan->setDescription($new_clan_description); } return $this->render(['action_message' => 'Your clan has been updated.', 'title' => 'Edit your clan', 'clan' => $clan, 'error' => $error, 'pageParts' => ['edit', 'info', 'member-list']]); }