6 require_once 'application/TimeZone.php';
9 * Unitary tests for timezone utilities
11 class TimeZoneTest
extends PHPUnit\Framework\TestCase
14 * @var array of timezones
16 protected $installedTimezones;
18 public function setUp()
20 $this->installedTimezones
= [
29 * Generate a timezone selection form
31 public function testGenerateTimeZoneForm()
41 ['continent' => 'Antarctica', 'city' => 'Syowa'],
42 ['continent' => 'Europe', 'city' => 'London'],
43 ['continent' => 'Europe', 'city' => 'Paris'],
44 ['continent' => 'UTC', 'city' => 'UTC'],
49 list($continents, $cities) = generateTimeZoneData($this->installedTimezones
);
51 $this->assertEquals($expected['continents'], $continents);
52 $this->assertEquals($expected['cities'], $cities);
56 * Generate a timezone selection form, with a preselected timezone
58 public function testGenerateTimeZoneFormPreselected()
65 'selected' => 'Antarctica',
68 ['continent' => 'Antarctica', 'city' => 'Syowa'],
69 ['continent' => 'Europe', 'city' => 'London'],
70 ['continent' => 'Europe', 'city' => 'Paris'],
71 ['continent' => 'UTC', 'city' => 'UTC'],
72 'selected' => 'Syowa',
76 list($continents, $cities) = generateTimeZoneData($this->installedTimezones
, 'Antarctica/Syowa');
78 $this->assertEquals($expected['continents'], $continents);
79 $this->assertEquals($expected['cities'], $cities);
83 * Check valid timezones
85 public function testValidTimeZone()
87 $this->assertTrue(isTimeZoneValid('America', 'Argentina/Ushuaia'));
88 $this->assertTrue(isTimeZoneValid('Europe', 'Oslo'));
92 * Check invalid timezones
94 public function testInvalidTimeZone()
96 $this->assertFalse(isTimeZoneValid('CEST', 'CEST'));
97 $this->assertFalse(isTimeZoneValid('Europe', 'Atlantis'));
98 $this->assertFalse(isTimeZoneValid('Middle_Earth', 'Moria'));
99 $this->assertFalse(isTimeZoneValid('UTC', 'UTC'));