function ViewAjaxControllerTest::testAjaxView

Same name in other branches
  1. 9 core/modules/views/tests/src/Unit/Controller/ViewAjaxControllerTest.php \Drupal\Tests\views\Unit\Controller\ViewAjaxControllerTest::testAjaxView()
  2. 8.9.x core/modules/views/tests/src/Unit/Controller/ViewAjaxControllerTest.php \Drupal\Tests\views\Unit\Controller\ViewAjaxControllerTest::testAjaxView()
  3. 10 core/modules/views/tests/src/Unit/Controller/ViewAjaxControllerTest.php \Drupal\Tests\views\Unit\Controller\ViewAjaxControllerTest::testAjaxView()

Tests a valid view without arguments pagers etc.

File

core/modules/views/tests/src/Unit/Controller/ViewAjaxControllerTest.php, line 188

Class

ViewAjaxControllerTest
@coversDefaultClass \Drupal\views\Controller\ViewAjaxController @group views

Namespace

Drupal\Tests\views\Unit\Controller

Code

public function testAjaxView() : void {
    $request = new Request();
    $request->query
        ->set('view_name', 'test_view');
    $request->query
        ->set('view_display_id', 'page_1');
    $request->query
        ->set('view_path', '/test-page');
    $request->query
        ->set('_wrapper_format', 'ajax');
    $request->query
        ->set('ajax_page_state', 'drupal.settings[]');
    $request->query
        ->set('type', 'article');
    [
        $view,
        $executable,
    ] = $this->setupValidMocks();
    $this->redirectDestination
        ->expects($this->atLeastOnce())
        ->method('set')
        ->with('/test-page?type=article');
    $this->currentPath
        ->expects($this->once())
        ->method('setPath')
        ->with('/test-page', $request);
    $response = $this->viewAjaxController
        ->ajaxView($request);
    $this->assertTrue($response instanceof ViewAjaxResponse);
    $this->assertSame($response->getView(), $executable);
    $this->assertViewResultCommand($response);
    // Test that the ajax controller for Views contains the
    // Drupal Settings.
    $this->assertEquals([
        'drupalSettings' => [
            'testSetting' => [
                'Setting',
            ],
        ],
    ], $response->getAttachments());
}

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