function RestExportTest::testBuildResponse

Same name in other branches
  1. 9 core/modules/rest/tests/src/Kernel/Views/RestExportTest.php \Drupal\Tests\rest\Kernel\Views\RestExportTest::testBuildResponse()
  2. 8.9.x core/modules/rest/tests/src/Kernel/Views/RestExportTest.php \Drupal\Tests\rest\Kernel\Views\RestExportTest::testBuildResponse()
  3. 10 core/modules/rest/tests/src/Kernel/Views/RestExportTest.php \Drupal\Tests\rest\Kernel\Views\RestExportTest::testBuildResponse()

@covers ::buildResponse

File

core/modules/rest/tests/src/Kernel/Views/RestExportTest.php, line 49

Class

RestExportTest
Tests the REST export view display plugin.

Namespace

Drupal\Tests\rest\Kernel\Views

Code

public function testBuildResponse() : void {
    
    /** @var \Drupal\views\Entity\View $view */
    $view = View::load('test_serializer_display_entity');
    $display =& $view->getDisplay('rest_export_1');
    $display['display_options']['defaults']['style'] = FALSE;
    $display['display_options']['style']['type'] = 'serializer';
    $display['display_options']['style']['options']['formats'] = [
        'json',
        'xml',
    ];
    $view->save();
    // No custom header should be set yet.
    $response = RestExport::buildResponse('test_serializer_display_entity', 'rest_export_1', []);
    $this->assertEmpty($response->headers
        ->get('Custom-Header'));
    // Clear render cache.
    
    /** @var \Drupal\Core\Cache\MemoryBackend $render_cache */
    $render_cache = $this->container
        ->get('cache_factory')
        ->get('render');
    $render_cache->deleteAll();
    // A custom header should now be added.
    // @see rest_test_views_views_post_execute()
    $header = $this->randomString();
    $this->container
        ->get('state')
        ->set('rest_test_views_set_header', $header);
    $response = RestExport::buildResponse('test_serializer_display_entity', 'rest_export_1', []);
    $this->assertEquals($header, $response->headers
        ->get('Custom-Header'));
}

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