function BanAdminTest::testIpValidation

Same name and namespace in other branches
  1. 11.x core/modules/ban/tests/src/Unit/BanAdminTest.php \Drupal\Tests\ban\Unit\BanAdminTest::testIpValidation()

Tests various user input to confirm correct validation.

@covers ::validateForm
@dataProvider providerIpValidation

File

core/modules/ban/tests/src/Unit/BanAdminTest.php, line 29

Class

BanAdminTest
Tests the BanAdmin form.

Namespace

Drupal\Tests\ban\Unit

Code

public function testIpValidation(string $ip, bool $isBanned, ?string $error) : void {
  $manager = $this->getIpManagerMock();
  $manager->expects($this->once())
    ->method('isBanned')
    ->with($ip)
    ->willReturn($isBanned);
  $formObject = new BanAdmin($manager);
  $formObject->setStringTranslation($this->getStringTranslationStub());
  $formObject->setRequestStack($this->getRequestStackMock());
  $formState = $this->createMock(FormStateInterface::class);
  $formState->expects($this->any())
    ->method('getValue')
    ->with('ip')
    ->willReturn($ip);
  if ($error === NULL) {
    $formState->expects($this->never())
      ->method('setErrorByName');
  }
  else {
    $formState->expects($this->once())
      ->method('setErrorByName')
      ->with('ip', $error);
  }
  $form = [];
  $formObject->validateForm($form, $formState);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.