83 lines
2.3 KiB
PHP
83 lines
2.3 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* TimeZone's tests
|
||
|
*/
|
||
|
|
||
|
require_once 'application/TimeZone.php';
|
||
|
|
||
|
/**
|
||
|
* Unitary tests for timezone utilities
|
||
|
*/
|
||
|
class TimeZoneTest extends PHPUnit_Framework_TestCase
|
||
|
{
|
||
|
/**
|
||
|
* Generate a timezone selection form
|
||
|
*/
|
||
|
public function testGenerateTimeZoneForm()
|
||
|
{
|
||
|
$generated = generateTimeZoneForm();
|
||
|
|
||
|
// HTML form
|
||
|
$this->assertStringStartsWith('Continent:<select', $generated[0]);
|
||
|
$this->assertContains('selected="selected"', $generated[0]);
|
||
|
$this->assertStringEndsWith('</select><br />', $generated[0]);
|
||
|
|
||
|
// Javascript handler
|
||
|
$this->assertStringStartsWith('<script>', $generated[1]);
|
||
|
$this->assertContains(
|
||
|
'<option value=\"Bermuda\">Bermuda<\/option>',
|
||
|
$generated[1]
|
||
|
);
|
||
|
$this->assertStringEndsWith('</script>', $generated[1]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Generate a timezone selection form, with a preselected timezone
|
||
|
*/
|
||
|
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]);
|
||
|
|
||
|
|
||
|
// Javascript handler
|
||
|
$this->assertStringStartsWith('<script>', $generated[1]);
|
||
|
$this->assertContains(
|
||
|
'<option value=\"Bermuda\">Bermuda<\/option>',
|
||
|
$generated[1]
|
||
|
);
|
||
|
$this->assertStringEndsWith('</script>', $generated[1]);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Check valid timezones
|
||
|
*/
|
||
|
public function testValidTimeZone()
|
||
|
{
|
||
|
$this->assertTrue(isTimeZoneValid('America', 'Argentina/Ushuaia'));
|
||
|
$this->assertTrue(isTimeZoneValid('Europe', 'Oslo'));
|
||
|
$this->assertTrue(isTimeZoneValid('UTC', 'UTC'));
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Check invalid timezones
|
||
|
*/
|
||
|
public function testInvalidTimeZone()
|
||
|
{
|
||
|
$this->assertFalse(isTimeZoneValid('CEST', 'CEST'));
|
||
|
$this->assertFalse(isTimeZoneValid('Europe', 'Atlantis'));
|
||
|
$this->assertFalse(isTimeZoneValid('Middle_Earth', 'Moria'));
|
||
|
}
|
||
|
}
|