3 namespace Drupal\php\Tests\Plugin\views;
5 use Drupal\views\Tests\ViewKernelTestBase;
6 use Drupal\views\Tests\ViewTestData;
7 use Drupal\views\Views;
10 * Tests Views PHP argument validators.
14 * @see \Drupal\php\Plugin\views\argument_validator\Php
16 class PhpArgumentValidatorTest extends ViewKernelTestBase {
19 * Views used by this test.
23 public static $testViews = ['test_view_argument_validate_php'];
30 public static $modules = ['filter', 'php', 'php_views_test_config'];
35 protected function setUp($import_test_views = TRUE) {
37 if ($import_test_views) {
38 ViewTestData::createTestViews(get_class($this), ['php_views_test_config']);
43 * Tests the validateArgument question.
45 public function testArgumentValidatePhp() {
46 $string = $this->randomMachineName();
47 $view = Views::getView('test_view_argument_validate_php');
49 $view->displayHandlers->get('default')->options['arguments']['null']['validate_options']['code'] = 'return $argument == \'' . $string . '\';';
51 $view->initHandlers();
52 $this->assertTrue($view->argument['null']->validateArgument($string));
53 // Reset saved argument validation.
54 $view->argument['null']->argument_validated = NULL;
55 $this->assertFalse($view->argument['null']->validateArgument($this->randomMachineName()));