33 $this->backupLocales = array(
34 'LC_COLLATE' => setlocale(LC_COLLATE, 0),
35 'LC_CTYPE' => setlocale(LC_CTYPE, 0),
36 'LC_MONETARY' => setlocale(LC_MONETARY, 0),
37 'LC_TIME' => setlocale(LC_TIME, 0),
39 $this->timezone = @date_default_timezone_get();
40 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'ddmmyy'] =
'Y-m-d';
44 foreach ($this->backupLocales as $category => $locale) {
45 setlocale(constant($category), $locale);
47 date_default_timezone_set($this->timezone);
56 $actualResult = $viewHelper->render(
new \DateTime(
'1980-12-13'));
57 $this->assertEquals(
'1980-12-13', $actualResult);
65 $actualResult = $viewHelper->render(
'1980-12-13');
66 $this->assertEquals(
'1980-12-13', $actualResult);
74 $actualResult = $viewHelper->render(
new \DateTime(
'1980-02-01'),
'd.m.Y');
75 $this->assertEquals(
'01.02.1980', $actualResult);
81 public function viewHelperReturnsEmptyStringIfNULLIsGiven() {
83 $viewHelper = $this->getMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Format\\DateViewHelper', array(
'renderChildren'));
84 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(NULL));
85 $actualResult = $viewHelper->render();
86 $this->assertEquals(
'', $actualResult);
93 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'ddmmyy'] =
'';
95 $actualResult = $viewHelper->render(
'@1391876733');
96 $this->assertEquals(
'2014-02-08', $actualResult);
103 $GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'ddmmyy'] =
'l, j. M y';
105 $actualResult = $viewHelper->render(
'@1391876733');
106 $this->assertEquals(
'Saturday, 8. Feb 14', $actualResult);
115 $viewHelper->render(
'foo');
121 public function viewHelperUsesChildNodesIfDateAttributeIsNotSpecified() {
123 $viewHelper = $this->getMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Format\\DateViewHelper', array(
'renderChildren'));
124 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(
new \DateTime(
'1980-12-13')));
125 $actualResult = $viewHelper->render();
126 $this->assertEquals(
'1980-12-13', $actualResult);
132 public function viewHelperUsesChildNodesWithTimestamp() {
134 $viewHelper = $this->getMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Format\\DateViewHelper', array(
'renderChildren'));
135 $viewHelper->expects($this->once())->method(
'renderChildren')->will($this->returnValue(
'1359891658'));
136 $actualResult = $viewHelper->render();
137 $this->assertEquals(
'2013-02-03', $actualResult);
143 public function dateArgumentHasPriorityOverChildNodes() {
145 $viewHelper = $this->getMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Format\\DateViewHelper', array(
'renderChildren'));
146 $viewHelper->expects($this->never())->method(
'renderChildren');
147 $actualResult = $viewHelper->render(
'1980-12-12');
148 $this->assertEquals(
'1980-12-12', $actualResult);
158 'Europe/Berlin' => array(
162 'Asia/Riyadh' => array(
173 public function viewHelperRespectsDefaultTimezoneForIntegerTimestamp(
$timezone, $expected) {
175 $viewHelper = $this->getMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Format\\DateViewHelper', array(
'renderChildren'));
178 $format =
'Y-m-d H:i';
181 $this->assertEquals($expected, $viewHelper->render($date, $format));
191 'Europe/Berlin UTC' => array(
196 'Europe/Berlin Moscow' => array(
198 '03/Oct/2000:14:55:36 +0400',
201 'Asia/Riyadh UTC' => array(
206 'Asia/Riyadh Moscow' => array(
208 '03/Oct/2000:14:55:36 +0400',
219 public function viewHelperRespectsDefaultTimezoneForStringTimestamp($timeZone, $date, $expected) {
221 $viewHelper = $this->getMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Format\\DateViewHelper', array(
'renderChildren'));
222 $format =
'Y-m-d H:i';
224 date_default_timezone_set($timeZone);
225 $this->assertEquals($expected, $viewHelper->render($date, $format));
235 'de_DE.UTF-8' => array(
239 'en_ZW.utf8' => array(
251 public function dateViewHelperFormatsDateLocalized($locale, $expected) {
253 $viewHelper = $this->getMock(
'TYPO3\\CMS\\Fluid\\ViewHelpers\\Format\\DateViewHelper', array(
'renderChildren'));
254 $format =
'%d. %B %Y';
256 $timestamp =
'@1359891658';
258 if (!setlocale(LC_COLLATE, $locale)) {
259 $this->markTestSkipped(
'Locale ' . $locale .
' is not available.');
262 $this->assertEquals($expected, $viewHelper->render($timestamp, $format));
269 setlocale(LC_CTYPE, $locale);
270 setlocale(LC_MONETARY, $locale);
271 setlocale(LC_TIME, $locale);
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]