/** * group accountconf **/ function testForNinjaThatAccountConfirmationProcessAllowsNinjaNamesOfTheRightFormat() { /* * Username requirements (from the username_is_valid() function) * A username must start with a lower-case or upper-case letter * A username can contain only letters, numbers, underscores, or dashes. * A username must be from 3 to 24 characters long * A username cannot end in an underscore * A username cannot contain 2 consecutive special characters */ $this->assertTrue((bool) username_is_valid('tchalvak'), 'Standard all alpha name tchalvak was rejected'); // This one had better be acceptable $this->assertTrue((bool) username_is_valid('Beagle')); $this->assertTrue((bool) username_is_valid('Kzqai')); // This one had better be acceptable $acceptable_names = array('xaz', 'NameWillBeExactly24Lett', 'tchalvak', 'Kzqai', 'Kakashi66', 'name_withunderscore', 'name-withdash', 'ninjamaster331', 'Over_Medicated', 'No_One_Important', 'murmkuma', 'XtoxxictantrumX', 'dragon39540lkjhgfdsa', 'SasukeMoNo31', 'SASAGAKURE', 'TheBlackPhynix', 'NGkillerdrillNG', 'BOTDFLUVER22', 'TheStripedShirtSlasher', 'sadasdasdasd124123l', 'L4RR3s222', 'Dark-Red-EyeZ'); foreach ($acceptable_names as $name) { $error = username_format_validate($name); $this->assertTrue((bool) username_is_valid($name), 'Rejected name was: [' . $name . '] and error was [' . $error . ']'); } }
/** * Just a simple wrapper to turn the presence of a username format error into a boolean check * * @return boolean */ function username_is_valid($username) { // Check for no error from the username_format_validate function. return !(bool) username_format_validate($username); }
/** * Return the reasons that a username isn't acceptable. * * @param String $send_name * @return String|null */ private function validate_username($send_name) { $error = null; $format_error = username_format_validate($send_name); if ($format_error) { $error = 'Phase 1 Incomplete: Ninja name: ' . $error; } return $error; }