+ /**
+ * @test
+ */
+ public function getProcessedValueDisplaysAgeForDateInputFieldsIfSettingAbsent() {
+ /** @var ObjectProphecy $languageServiceProphecy */
+ $languageServiceProphecy = $this->prophesize(LanguageService::class);
+ $languageServiceProphecy->sL(Argument::cetera())->willReturn(' min| hrs| days| yrs| min| hour| day| year');
+ $GLOBALS['LANG'] = $languageServiceProphecy->reveal();
+
+ $GLOBALS['EXEC_TIME'] = mktime(0, 0, 0, 8, 30, 2015);
+
+ $GLOBALS['TCA'] = [
+ 'tt_content' => [
+ 'columns' => [
+ 'date' => [
+ 'config' => [
+ 'type' => 'input',
+ 'eval' => 'date',
+ ],
+ ],
+ ],
+ ],
+ ];
+ $this->assertSame('28-08-15 (-2 days)', BackendUtility::getProcessedValue('tt_content', 'date', mktime(0, 0, 0, 8, 28, 2015)));
+ }
+
+ /**
+ * @return array
+ */
+ public function inputTypeDateDisplayOptions() {
+ return [
+ 'typeSafe Setting' => [
+ TRUE,
+ '28-08-15',
+ ],
+ 'non typesafe setting' => [
+ 1,
+ '28-08-15',
+ ],
+ 'setting disabled typesafe' => [
+ FALSE,
+ '28-08-15 (-2 days)',
+ ],
+ 'setting disabled not typesafe' => [
+ 0,
+ '28-08-15 (-2 days)',
+ ],
+ ];
+ }
+
+ /**
+ * @test
+ *
+ * @dataProvider inputTypeDateDisplayOptions
+ *
+ * @param string $input
+ * @param string $expected
+ */
+ public function getProcessedValueHandlesAgeDisplayCorrectly($input, $expected) {
+ /** @var ObjectProphecy $languageServiceProphecy */
+ $languageServiceProphecy = $this->prophesize(LanguageService::class);
+ $languageServiceProphecy->sL(Argument::cetera())->willReturn(' min| hrs| days| yrs| min| hour| day| year');
+ $GLOBALS['LANG'] = $languageServiceProphecy->reveal();
+
+ $GLOBALS['EXEC_TIME'] = mktime(0, 0, 0, 8, 30, 2015);
+
+ $GLOBALS['TCA'] = [
+ 'tt_content' => [
+ 'columns' => [
+ 'date' => [
+ 'config' => [
+ 'type' => 'input',
+ 'eval' => 'date',
+ 'disableAgeDisplay' => $input,
+ ],
+ ],
+ ],
+ ],
+ ];
+ $this->assertSame($expected, BackendUtility::getProcessedValue('tt_content', 'date', mktime(0, 0, 0, 8, 28, 2015)));
+ }
+