You are here

WebformUiElementDefaultValueTest.php in Webform 8.5

File

modules/webform_ui/tests/src/Functional/WebformUiElementDefaultValueTest.php
View source
<?php

namespace Drupal\Tests\webform_ui\Functional;

use Drupal\Tests\webform\Functional\WebformBrowserTestBase;

/**
 * Tests for webform UI element.
 *
 * @group webform_ui
 */
class WebformUiElementDefaultValueTest extends WebformBrowserTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = [
    'webform',
    'webform_ui',
  ];

  /**
   * Tests element.
   */
  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}');
  }

}

Classes

Namesort descending Description
WebformUiElementDefaultValueTest Tests for webform UI element.