function ViewAjaxControllerTest::testAjaxView

Same name and namespace 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. 11.x 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[[api-linebreak]] @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.