You are here

public function PaymentLineItemsInputTest::testAjaxDeleteSubmit in Payment 8.2

@covers ::ajaxDeleteSubmit

File

tests/src/Unit/Element/PaymentLineItemsInputTest.php, line 506

Class

PaymentLineItemsInputTest
@coversDefaultClass \Drupal\payment\Element\PaymentLineItemsInput

Namespace

Drupal\Tests\payment\Unit\Element

Code

public function testAjaxDeleteSubmit() {
  $line_item_name = $this
    ->randomMachineName();
  $root_element_name = $this
    ->randomMachineName();
  $form_build = array(
    'foo' => array(
      '#id' => $this
        ->randomMachineName(),
      '#name' => $root_element_name,
      '#parents' => array(
        $this
          ->randomMachineName(),
        $this
          ->randomMachineName(),
      ),
      'line_items' => array(
        $line_item_name => array(
          'delete' => array(
            '#array_parents' => array(
              'foo',
              'line_items',
              $line_item_name,
              'delete',
            ),
            '#parents' => [],
          ),
        ),
      ),
    ),
  );
  $form_build['foo']['line_items'][$line_item_name]['delete']['#name'] = 'delete_' . implode('-', $form_build['foo']['#parents']);
  $form_state = new FormState();
  $form_state
    ->setTriggeringElement($form_build['foo']['line_items'][$line_item_name]['delete']);
  $element = $this->sut;
  $response = $element::ajaxDeleteSubmit($form_build, $form_state);
  $this
    ->assertInstanceOf(AjaxResponse::class, $response);
}