You are here

public function RawTest::testGetArgument in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/views/tests/src/Unit/Plugin/argument_default/RawTest.php \Drupal\Tests\views\Unit\Plugin\argument_default\RawTest::testGetArgument()
  2. 10 core/modules/views/tests/src/Unit/Plugin/argument_default/RawTest.php \Drupal\Tests\views\Unit\Plugin\argument_default\RawTest::testGetArgument()

Tests the getArgument() method.

See also

\Drupal\views\Plugin\views\argument_default\Raw::getArgument()

File

core/modules/views/tests/src/Unit/Plugin/argument_default/RawTest.php, line 23

Class

RawTest
@coversDefaultClass \Drupal\views\Plugin\views\argument_default\Raw @group views

Namespace

Drupal\Tests\views\Unit\Plugin\argument_default

Code

public function testGetArgument() {
  $view = $this
    ->getMockBuilder('Drupal\\views\\ViewExecutable')
    ->disableOriginalConstructor()
    ->getMock();
  $display_plugin = $this
    ->getMockBuilder('Drupal\\views\\Plugin\\views\\display\\DisplayPluginBase')
    ->disableOriginalConstructor()
    ->getMock();
  $current_path = new CurrentPathStack(new RequestStack());
  $request = new Request();
  $current_path
    ->setPath('/test/example', $request);
  $view
    ->expects($this
    ->any())
    ->method('getRequest')
    ->will($this
    ->returnValue($request));
  $alias_manager = $this
    ->createMock(AliasManagerInterface::class);
  $alias_manager
    ->expects($this
    ->never())
    ->method('getAliasByPath');

  // Don't use aliases. Check against NULL and nonexistent path component
  // values in addition to valid ones.
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => FALSE,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals(NULL, $raw
    ->getArgument());
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => FALSE,
    'index' => 0,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals('test', $raw
    ->getArgument());
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => FALSE,
    'index' => 1,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals('example', $raw
    ->getArgument());
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => FALSE,
    'index' => 2,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals(NULL, $raw
    ->getArgument());

  // Setup an alias manager with a path alias.
  $alias_manager = $this
    ->createMock(AliasManagerInterface::class);
  $alias_manager
    ->expects($this
    ->any())
    ->method('getAliasByPath')
    ->with($this
    ->equalTo('/test/example'))
    ->will($this
    ->returnValue('/other/example'));
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => TRUE,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals(NULL, $raw
    ->getArgument());
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => TRUE,
    'index' => 0,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals('other', $raw
    ->getArgument());
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => TRUE,
    'index' => 1,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals('example', $raw
    ->getArgument());
  $raw = new Raw([], 'raw', [], $alias_manager, $current_path);
  $options = [
    'use_alias' => TRUE,
    'index' => 2,
  ];
  $raw
    ->init($view, $display_plugin, $options);
  $this
    ->assertEquals(NULL, $raw
    ->getArgument());
}