X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=tests%2FTimeZoneTest.php;h=127fdc192ccab36ec57427ba270f444f9108b29f;hb=f8c5660df82432c7f3bb0686e393db5a2b46eeb5;hp=b219030a3a4da19f3c73b53d9a845723b4fb1352;hpb=afd7b77b4c79a0450a6ef0489ca383c156111173;p=github%2Fshaarli%2FShaarli.git diff --git a/tests/TimeZoneTest.php b/tests/TimeZoneTest.php index b219030a..127fdc19 100644 --- a/tests/TimeZoneTest.php +++ b/tests/TimeZoneTest.php @@ -10,25 +10,46 @@ require_once 'application/TimeZone.php'; */ class TimeZoneTest extends PHPUnit_Framework_TestCase { + /** + * @var array of timezones + */ + protected $installedTimezones; + + public function setUp() + { + $this->installedTimezones = [ + 'Antarctica/Syowa', + 'Europe/London', + 'Europe/Paris', + 'UTC' + ]; + } + /** * Generate a timezone selection form */ public function testGenerateTimeZoneForm() { - $generated = generateTimeZoneForm(); + $expected = [ + 'continents' => [ + 'Antarctica', + 'Europe', + 'UTC', + 'selected' => '', + ], + 'cities' => [ + ['continent' => 'Antarctica', 'city' => 'Syowa'], + ['continent' => 'Europe', 'city' => 'London'], + ['continent' => 'Europe', 'city' => 'Paris'], + ['continent' => 'UTC', 'city' => 'UTC'], + 'selected' => '', + ] + ]; - // HTML form - $this->assertStringStartsWith('Continent:assertContains('selected="selected"', $generated[0]); - $this->assertStringEndsWith('
', $generated[0]); + list($continents, $cities) = generateTimeZoneData($this->installedTimezones); - // Javascript handler - $this->assertStringStartsWith('', $generated[1]); + $this->assertEquals($expected['continents'], $continents); + $this->assertEquals($expected['cities'], $cities); } /** @@ -36,28 +57,26 @@ class TimeZoneTest extends PHPUnit_Framework_TestCase */ public function testGenerateTimeZoneFormPreselected() { - $generated = generateTimeZoneForm('Antarctica/Syowa'); - - // HTML form - $this->assertStringStartsWith('Continent:assertContains( - 'value="Antarctica" selected="selected"', - $generated[0] - ); - $this->assertContains( - 'value="Syowa" selected="selected"', - $generated[0] - ); - $this->assertStringEndsWith('
', $generated[0]); + $expected = [ + 'continents' => [ + 'Antarctica', + 'Europe', + 'UTC', + 'selected' => 'Antarctica', + ], + 'cities' => [ + ['continent' => 'Antarctica', 'city' => 'Syowa'], + ['continent' => 'Europe', 'city' => 'London'], + ['continent' => 'Europe', 'city' => 'Paris'], + ['continent' => 'UTC', 'city' => 'UTC'], + 'selected' => 'Syowa', + ] + ]; + list($continents, $cities) = generateTimeZoneData($this->installedTimezones, 'Antarctica/Syowa'); - // Javascript handler - $this->assertStringStartsWith('', $generated[1]); + $this->assertEquals($expected['continents'], $continents); + $this->assertEquals($expected['cities'], $cities); } /** @@ -67,7 +86,6 @@ class TimeZoneTest extends PHPUnit_Framework_TestCase { $this->assertTrue(isTimeZoneValid('America', 'Argentina/Ushuaia')); $this->assertTrue(isTimeZoneValid('Europe', 'Oslo')); - $this->assertTrue(isTimeZoneValid('UTC', 'UTC')); } /** @@ -78,5 +96,6 @@ class TimeZoneTest extends PHPUnit_Framework_TestCase $this->assertFalse(isTimeZoneValid('CEST', 'CEST')); $this->assertFalse(isTimeZoneValid('Europe', 'Atlantis')); $this->assertFalse(isTimeZoneValid('Middle_Earth', 'Moria')); + $this->assertFalse(isTimeZoneValid('UTC', 'UTC')); } }