You are here

public function WebformUiElementDefaultValueTest::testElementDefaultValue in Webform 8.5

Same name and namespace in other branches
  1. 6.x modules/webform_ui/tests/src/Functional/WebformUiElementDefaultValueTest.php \Drupal\Tests\webform_ui\Functional\WebformUiElementDefaultValueTest::testElementDefaultValue()

Tests element.

File

modules/webform_ui/tests/src/Functional/WebformUiElementDefaultValueTest.php, line 24

Class

WebformUiElementDefaultValueTest
Tests for webform UI element.

Namespace

Drupal\Tests\webform_ui\Functional

Code

public function testElementDefaultValue() {
  $this
    ->drupalLogin($this->rootUser);

  /**************************************************************************/

  // Single text field.

  /**************************************************************************/

  // Check validation when trying to set default value.
  $this
    ->drupalPostForm('/admin/structure/webform/manage/contact/element/add/textfield', [], 'Set default value');
  $this
    ->assertRaw('Key field is required.');
  $this
    ->assertRaw('Title field is required.');

  // Check set default value generates a single textfield element.
  $edit = [
    'key' => 'textfield',
    'properties[title]' => 'textfield',
  ];
  $this
    ->drupalPostForm('/admin/structure/webform/manage/contact/element/add/textfield', $edit, 'Set default value');
  $this
    ->assertRaw('<label for="edit-default-value">textfield</label>');
  $this
    ->assertFieldByName('default_value', '');

  // Check setting the text field's default value.
  $this
    ->drupalPostForm(NULL, [
    'default_value' => '{default value}',
  ], 'Update default value');
  $this
    ->assertFieldByName('properties[default_value]', '{default value}');

  /**************************************************************************/

  // Multiple text field.

  /**************************************************************************/

  // Check set default value generates a multiple textfield element.
  $edit = [
    'key' => 'textfield',
    'properties[title]' => 'textfield',
    'properties[multiple][container][cardinality]' => '-1',
  ];
  $this
    ->drupalPostForm('/admin/structure/webform/manage/contact/element/add/textfield', $edit, 'Set default value');
  $this
    ->assertFieldByName('default_value[items][0][_item_]', '');

  // Check setting the text field's default value.
  $this
    ->drupalPostForm(NULL, [
    'default_value[items][0][_item_]' => '{default value}',
  ], 'Update default value');
  $this
    ->assertFieldByName('properties[default_value]', '{default value}');

  /**************************************************************************/

  // Single address (composite) field.

  /**************************************************************************/

  // Check set default value generates a single address element.
  $edit = [
    'key' => 'address',
    'properties[title]' => 'address',
  ];
  $this
    ->drupalPostForm('/admin/structure/webform/manage/contact/element/add/webform_address', $edit, 'Set default value');
  $this
    ->assertFieldByName('default_value[address]', '');
  $this
    ->assertFieldByName('default_value[address_2]', '');

  // Check setting the address' default value.
  $edit = [
    'default_value[address]' => '{address}',
    'default_value[address_2]' => '{address_2}',
  ];
  $this
    ->drupalPostForm(NULL, $edit, 'Update default value');
  $this
    ->assertRaw('address: &#039;{address}&#039;
address_2: &#039;{address_2}&#039;
city: &#039;&#039;
state_province: &#039;&#039;
postal_code: &#039;&#039;
country: &#039;&#039;');

  // Check default value is passed set default value form.
  $this
    ->drupalPostForm(NULL, [], 'Set default value');
  $this
    ->assertFieldByName('default_value[address]', '{address}');
  $this
    ->assertFieldByName('default_value[address_2]', '{address_2}');
}