You are here

function ElementValidationTest::testAjaxElementValidation in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/system/src/Tests/Ajax/ElementValidationTest.php \Drupal\system\Tests\Ajax\ElementValidationTest::testAjaxElementValidation()

Tries to post an Ajax change to a form that has a validated element.

The drivertext field is Ajax-enabled. An additional field is not, but is set to be a required field. In this test the required field is not filled in, and we want to see if the activation of the "drivertext" Ajax-enabled field fails due to the required field being empty.

File

core/modules/system/src/Tests/Ajax/ElementValidationTest.php, line 24
Contains \Drupal\system\Tests\Ajax\ElementValidationTest.

Class

ElementValidationTest
Various tests of AJAX behavior.

Namespace

Drupal\system\Tests\Ajax

Code

function testAjaxElementValidation() {
  $edit = array(
    'drivertext' => t('some dumb text'),
  );

  // Post with 'drivertext' as the triggering element.
  $this
    ->drupalPostAjaxForm('ajax_validation_test', $edit, 'drivertext');

  // Look for a validation failure in the resultant JSON.
  $this
    ->assertNoText(t('Error message'), 'No error message in resultant JSON');
  $this
    ->assertText('ajax_forms_test_validation_form_callback invoked', 'The correct callback was invoked');
  $this
    ->drupalGet('ajax_validation_test');
  $edit = array(
    'drivernumber' => 12345,
  );

  // Post with 'drivernumber' as the triggering element.
  $this
    ->drupalPostAjaxForm('ajax_validation_test', $edit, 'drivernumber');

  // Look for a validation failure in the resultant JSON.
  $this
    ->assertNoText(t('Error message'), 'No error message in resultant JSON');
  $this
    ->assertText('ajax_forms_test_validation_number_form_callback invoked', 'The correct callback was invoked');
}