You are here

public function DateRecurBasicWidgetTest::testDefaultValues in Recurring Dates Field 3.1.x

Same name and namespace in other branches
  1. 8.2 tests/src/Functional/DateRecurBasicWidgetTest.php \Drupal\Tests\date_recur\Functional\DateRecurBasicWidgetTest::testDefaultValues()
  2. 3.x tests/src/Functional/DateRecurBasicWidgetTest.php \Drupal\Tests\date_recur\Functional\DateRecurBasicWidgetTest::testDefaultValues()
  3. 3.0.x tests/src/Functional/DateRecurBasicWidgetTest.php \Drupal\Tests\date_recur\Functional\DateRecurBasicWidgetTest::testDefaultValues()

Tests default values appear in widget.

File

tests/src/Functional/DateRecurBasicWidgetTest.php, line 194

Class

DateRecurBasicWidgetTest
Tests date recur basic widget.

Namespace

Drupal\Tests\date_recur\Functional

Code

public function testDefaultValues() {

  /** @var \Drupal\Core\Entity\EntityFieldManagerInterface $entityFieldManager */
  $entityFieldManager = \Drupal::service('entity_field.manager');
  $baseFields = $entityFieldManager
    ->getBaseFieldDefinitions('dr_entity_test');
  $baseFieldOverride = BaseFieldOverride::createFromBaseFieldDefinition($baseFields['dr'], 'dr_entity_test');

  // Default values need to evaluate FALSE per DateRecurItem::isEmpty
  // otherwise the values will be cleared out before display.
  $baseFieldOverride
    ->setDefaultValue([
    [
      'default_date_type' => 'relative',
      'default_date' => '12th April 2013 3pm',
      'default_end_date_type' => 'relative',
      'default_end_date' => '12th April 2013 4pm',
      'default_date_time_zone' => 'Europe/Oslo',
      'default_time_zone' => 'Indian/Christmas',
      'default_rrule' => 'FREQ=WEEKLY;COUNT=995',
    ],
  ]);
  $baseFieldOverride
    ->save();
  $url = Url::fromRoute('entity.dr_entity_test.add_form');
  $this
    ->drupalGet($url);

  // 3pm/4pm Oslo (UTC+2) -> 8pm/9pm Christmas (UTC+7).
  $this
    ->assertSession()
    ->fieldValueEquals('dr[0][value][date]', '2013-04-12');
  $this
    ->assertSession()
    ->fieldValueEquals('dr[0][value][time]', '20:00:00');
  $this
    ->assertSession()
    ->fieldValueEquals('dr[0][end_value][date]', '2013-04-12');
  $this
    ->assertSession()
    ->fieldValueEquals('dr[0][end_value][time]', '21:00:00');
  $this
    ->assertSession()
    ->fieldValueEquals('dr[0][timezone]', 'Indian/Christmas');
  $this
    ->assertSession()
    ->fieldValueEquals('dr[0][rrule]', 'FREQ=WEEKLY;COUNT=995');
}