You are here

class WebformFormHelperTest in Webform 8.5

Same name and namespace in other branches
  1. 6.x tests/src/Unit/Utility/WebformFormHelperTest.php \Drupal\Tests\webform\Unit\Utility\WebformFormHelperTest

Tests webform helper utility.

@group webform

@coversDefaultClass \Drupal\webform\Utility\WebformFormHelper

Hierarchy

Expanded class hierarchy of WebformFormHelperTest

File

tests/src/Unit/Utility/WebformFormHelperTest.php, line 15

Namespace

Drupal\Tests\webform\Unit\Utility
View source
class WebformFormHelperTest extends UnitTestCase {

  /**
   * Tests WebformFormHelper::cleanupFormStateValues().
   *
   * @param array $values
   *   The array to run through WebformFormHelper::cleanupFormStateValues().
   * @param array $keys
   *   (optional) An array of custom keys to be removed.
   * @param string $expected
   *   The expected result from calling the function.
   *
   * @see WebformFormHelper::cleanupFormStateValues()
   *
   * @dataProvider providerCleanupFormStateValues
   */
  public function testCleanupFormStateValues(array $values, array $keys, $expected) {
    $result = WebformFormHelper::cleanupFormStateValues($values, $keys);
    $this
      ->assertEquals($expected, $result);
  }

  /**
   * Data provider for testCleanupFormStateValues().
   *
   * @see testCleanupFormStateValues()
   */
  public function providerCleanupFormStateValues() {
    $tests[] = [
      [
        'key' => 'value',
      ],
      [],
      [
        'key' => 'value',
      ],
    ];
    $tests[] = [
      [
        'key' => 'value',
        'form_token' => 'ignored',
      ],
      [],
      [
        'key' => 'value',
      ],
    ];
    $tests[] = [
      [
        'key' => 'value',
        'form_token' => 'ignored',
      ],
      [
        'key',
      ],
      [],
    ];
    return $tests;
  }

  /**
   * Tests WebformFormHelper::flattenElements().
   *
   * @see WebformFormHelper::flattenElements()
   */
  public function testFlattenElements() {
    $elements = [
      'one' => [
        '#title' => 'one',
        'two' => [
          '#title' => 'two',
        ],
      ],
    ];
    $flattened_elements = WebformFormHelper::flattenElements($elements);

    // Check flattened elements.
    $this
      ->assertEquals($flattened_elements, [
      'one' => [
        '#title' => 'one',
        'two' => [
          '#title' => 'two',
        ],
      ],
      'two' => [
        '#title' => 'two',
      ],
    ]);

    // Check flattened elements references.
    $elements['one']['#title'] .= '-UPDATED';
    $elements['one']['two']['#title'] .= '-UPDATED';
    $elements['one']['two']['#type'] = 'textfield';
    $this
      ->assertEquals($flattened_elements, [
      'one' => [
        '#title' => 'one-UPDATED',
        'two' => [
          '#title' => 'two-UPDATED',
          '#type' => 'textfield',
        ],
      ],
      'two' => [
        '#title' => 'two-UPDATED',
        '#type' => 'textfield',
      ],
    ]);

    // Check flattened elements with duplicate keys.
    $elements = [
      'one' => [
        '#title' => 'one',
        'two' => [
          '#title' => 'two-FIRST',
        ],
      ],
      'two' => [
        '#title' => 'two-SECOND',
      ],
    ];
    $flattened_elements = WebformFormHelper::flattenElements($elements);
    $this
      ->assertEquals($flattened_elements, [
      'one' => [
        '#title' => 'one',
        'two' => [
          '#title' => 'two-FIRST',
        ],
      ],
      'two' => [
        [
          '#title' => 'two-FIRST',
        ],
        [
          '#title' => 'two-SECOND',
        ],
      ],
    ]);

    // Check flattened elements references with duplicate keys.
    $elements['one']['#title'] .= '-UPDATED';
    $elements['one']['two']['#title'] .= '-UPDATED';
    $elements['one']['two']['#type'] = 'textfield';
    $this
      ->assertEquals($flattened_elements, [
      'one' => [
        '#title' => 'one-UPDATED',
        'two' => [
          '#title' => 'two-FIRST-UPDATED',
          '#type' => 'textfield',
        ],
      ],
      'two' => [
        [
          '#title' => 'two-FIRST-UPDATED',
          '#type' => 'textfield',
        ],
        [
          '#title' => 'two-SECOND',
        ],
      ],
    ]);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
PhpunitCompatibilityTrait::getMock Deprecated public function Returns a mock object for the specified class using the available method.
PhpunitCompatibilityTrait::setExpectedException Deprecated public function Compatibility layer for PHPUnit 6 to support PHPUnit 4 code.
UnitTestCase::$randomGenerator protected property The random generator.
UnitTestCase::$root protected property The app root. 1
UnitTestCase::assertArrayEquals protected function Asserts if two arrays are equal by sorting them first.
UnitTestCase::getBlockMockWithMachineName Deprecated protected function Mocks a block with a block plugin. 1
UnitTestCase::getClassResolverStub protected function Returns a stub class resolver.
UnitTestCase::getConfigFactoryStub public function Returns a stub config factory that behaves according to the passed array.
UnitTestCase::getConfigStorageStub public function Returns a stub config storage that returns the supplied configuration.
UnitTestCase::getContainerWithCacheTagsInvalidator protected function Sets up a container with a cache tags invalidator.
UnitTestCase::getRandomGenerator protected function Gets the random generator for the utility methods.
UnitTestCase::getStringTranslationStub public function Returns a stub translation manager that just returns the passed string.
UnitTestCase::randomMachineName public function Generates a unique random string containing letters and numbers.
UnitTestCase::setUp protected function 340
WebformFormHelperTest::providerCleanupFormStateValues public function Data provider for testCleanupFormStateValues().
WebformFormHelperTest::testCleanupFormStateValues public function Tests WebformFormHelper::cleanupFormStateValues().
WebformFormHelperTest::testFlattenElements public function Tests WebformFormHelper::flattenElements().