*/
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:<select', $generated[0]);
- $this->assertContains('selected="selected"', $generated[0]);
- $this->assertStringEndsWith('</select><br />', $generated[0]);
+ list($continents, $cities) = generateTimeZoneData($this->installedTimezones);
- // Javascript handler
- $this->assertStringStartsWith('<script>', $generated[1]);
- $this->assertContains(
- '<option value=\"Bermuda\">Bermuda<\/option>',
- $generated[1]
- );
- $this->assertStringEndsWith('</script>', $generated[1]);
+ $this->assertEquals($expected['continents'], $continents);
+ $this->assertEquals($expected['cities'], $cities);
}
/**
*/
public function testGenerateTimeZoneFormPreselected()
{
- $generated = generateTimeZoneForm('Antarctica/Syowa');
-
- // HTML form
- $this->assertStringStartsWith('Continent:<select', $generated[0]);
- $this->assertContains(
- 'value="Antarctica" selected="selected"',
- $generated[0]
- );
- $this->assertContains(
- 'value="Syowa" selected="selected"',
- $generated[0]
- );
- $this->assertStringEndsWith('</select><br />', $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('<script>', $generated[1]);
- $this->assertContains(
- '<option value=\"Bermuda\">Bermuda<\/option>',
- $generated[1]
- );
- $this->assertStringEndsWith('</script>', $generated[1]);
+ $this->assertEquals($expected['continents'], $continents);
+ $this->assertEquals($expected['cities'], $cities);
}
/**
{
$this->assertTrue(isTimeZoneValid('America', 'Argentina/Ushuaia'));
$this->assertTrue(isTimeZoneValid('Europe', 'Oslo'));
- $this->assertTrue(isTimeZoneValid('UTC', 'UTC'));
}
/**
$this->assertFalse(isTimeZoneValid('CEST', 'CEST'));
$this->assertFalse(isTimeZoneValid('Europe', 'Atlantis'));
$this->assertFalse(isTimeZoneValid('Middle_Earth', 'Moria'));
+ $this->assertFalse(isTimeZoneValid('UTC', 'UTC'));
}
}
-?>