Path: blob/master/src/applications/almanac/util/__tests__/AlmanacNamesTestCase.php
12262 views
<?php12final class AlmanacNamesTestCase extends PhabricatorTestCase {34public function testServiceOrDeviceNames() {5$map = array(6'' => false,7'a' => false,8'ab' => false,9'...' => false,10'ab.' => false,11'.ab' => false,12'A-B' => false,13'A!B' => false,14'A.B' => false,15'a..b' => false,16'1.2' => false,17'127.0.0.1' => false,18'1.b' => false,19'a.1' => false,20'a.1.b' => false,21'-.a' => false,22'-a.b' => false,23'a-.b' => false,24'a.-' => false,25'a.-b' => false,26'a.b-' => false,27'-.-' => false,28'a--b' => false,2930'abc' => true,31'a.b' => true,32'db.companyname.instance' => true,33'web002.useast.example.com' => true,34'master.example-corp.com' => true,3536// Maximum length is 100.37str_repeat('a', 100) => true,38str_repeat('a', 101) => false,39);4041foreach ($map as $input => $expect) {42$caught = null;43try {44AlmanacNames::validateName($input);45} catch (Exception $ex) {46$caught = $ex;47}48$this->assertEqual(49$expect,50!($caught instanceof Exception),51$input);52}53}54}555657