diff --git a/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php b/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php index 334a0c3..2b8e77c 100644 --- a/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php +++ b/core/modules/datetime_range/src/Tests/DateRangeFieldTest.php @@ -165,6 +165,17 @@ public function testDateRangeField() { $this->renderTestEntity($id); $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->displayOptions['type'] = 'daterange_custom'; + $this->displayOptions['settings'] = array('date_format' => 'Y') + $this->defaultSettings; + entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') + ->setComponent($field_name, $this->displayOptions) + ->save(); + $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); + $end_date_rendered = $end_date->format($this->displayOptions['settings']['date_format']); + $expected = $start_date_rendered . ' - ' . $end_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + // Test formatters when start date and end date are the same $this->drupalGet('entity_test/add'); $value = '2012-12-31 00:00:00'; @@ -232,6 +243,17 @@ public function testDateRangeField() { $this->renderTestEntity($id); $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); $this->assertNoText(' THESEPARATOR ', 'Separator not found on page'); + + $this->displayOptions['type'] = 'daterange_custom'; + $this->displayOptions['settings'] = array('date_format' => 'Y') + $this->defaultSettings; + entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') + ->setComponent($field_name, $this->displayOptions) + ->save(); + $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); + $expected = $start_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->assertNoText(' THESEPARATOR ', 'Not found proper separator'); } } @@ -324,6 +346,18 @@ public function testDatetimeRangeField() { $this->renderTestEntity($id); $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->displayOptions['type'] = 'daterange_custom'; + $this->displayOptions['settings'] = array('date_format' => 'Y') + $this->defaultSettings; + entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') + ->setComponent($field_name, $this->displayOptions) + ->save(); + $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); + $end_date_rendered = $end_date->format($this->displayOptions['settings']['date_format']); + $expected = $start_date_rendered . ' - ' . $end_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + + // Verify that the 'timezone_override' setting works. $this->displayOptions['type'] = 'daterange_custom'; $this->displayOptions['settings'] = ['date_format' => 'm/d/Y g:i:s A', 'timezone_override' => 'America/New_York'] + $this->defaultSettings; @@ -399,6 +433,29 @@ public function testDatetimeRangeField() { $this->renderTestEntity($id); $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); $this->assertNoText(' THESEPARATOR ', 'Separator not found on page'); + + $this->displayOptions['type'] = 'daterange_custom'; + $this->displayOptions['settings'] = array('date_format' => 'm/d/Y') + $this->defaultSettings; + entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') + ->setComponent($field_name, $this->displayOptions) + ->save(); + $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); + $expected = $start_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->assertNoText(' THESEPARATOR ', 'Not found proper separator'); + + $this->displayOptions['type'] = 'daterange_custom'; + $this->displayOptions['settings'] = array('date_format' => 'Y') + $this->defaultSettings; + entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') + ->setComponent($field_name, $this->displayOptions) + ->save(); + $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); + $expected = $start_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->assertNoText(' THESEPARATOR ', 'Not found proper separator'); + } /** @@ -485,6 +542,17 @@ public function testAlldayRangeField() { $this->renderTestEntity($id); $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->displayOptions['type'] = 'daterange_custom'; + $this->displayOptions['settings'] = array('date_format' => 'Y') + $this->defaultSettings; + entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') + ->setComponent($field_name, $this->displayOptions) + ->save(); + $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); + $end_date_rendered = $end_date->format($this->displayOptions['settings']['date_format']); + $expected = $start_date_rendered . ' - ' . $end_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + // Verify that the 'timezone_override' setting works. $this->displayOptions['type'] = 'daterange_custom'; $this->displayOptions['settings'] = ['date_format' => 'm/d/Y g:i:s A', 'timezone_override' => 'America/New_York'] + $this->defaultSettings; @@ -553,24 +621,29 @@ public function testAlldayRangeField() { $this->assertText(' THESEPARATOR ', 'Found proper separator'); $this->displayOptions['type'] = 'daterange_custom'; - $this->displayOptions['settings']['date_format'] = 'm/d/Y'; + $this->displayOptions['settings'] = array('date_format' => 'm/d/Y') + $this->defaultSettings; entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') ->setComponent($field_name, $this->displayOptions) ->save(); $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); - $end_date_rendered = $end_date->format($this->displayOptions['settings']['date_format']); - if ($start_date_rendered !== $end_date_rendered) { - $expected = $start_date_rendered . ' THESEPARATOR ' . $end_date_rendered; - $this->renderTestEntity($id); - $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); - $this->assertText(' THESEPARATOR ', 'Found proper separator'); - } - else { - $expected = $start_date_rendered; - $this->renderTestEntity($id); - $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); - $this->assertNoText(' THESEPARATOR ', 'Not found proper separator'); - } + $expected = $start_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->assertNoText(' THESEPARATOR ', 'Not found proper separator'); + + + $this->displayOptions['type'] = 'daterange_custom'; + $this->displayOptions['settings'] = array('date_format' => 'Y') + $this->defaultSettings; + entity_get_display($this->field->getTargetEntityTypeId(), $this->field->getTargetBundle(), 'full') + ->setComponent($field_name, $this->displayOptions) + ->save(); + $start_date_rendered = $start_date->format($this->displayOptions['settings']['date_format']); + $expected = $start_date_rendered; + $this->renderTestEntity($id); + $this->assertText($expected, new FormattableMarkup('Formatted date field using daterange_custom format displayed as %expected.', array('%expected' => $expected))); + $this->assertNoText(' THESEPARATOR ', 'Not found proper separator'); + + } /**