function RawTest::testGetArgument

Same name in other branches
  1. 9 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()
  3. 11.x core/modules/views/tests/src/Unit/Plugin/argument_default/RawTest.php \Drupal\Tests\views\Unit\Plugin\argument_default\RawTest::testGetArgument()

Test 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());
}

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