EarlyRenderingControllerTest.php in Zircon Profile 8        
                          
                  
                        
  
  
  
File
  core/modules/system/src/Tests/Common/EarlyRenderingControllerTest.php
  
    View source  
  <?php
namespace Drupal\system\Tests\Common;
use Drupal\Core\Render\Element;
use Drupal\Core\Url;
use Drupal\simpletest\WebTestBase;
class EarlyRenderingControllerTest extends WebTestBase {
  
  protected $dumpHeaders = TRUE;
  
  public static $modules = [
    'system',
    'early_rendering_controller_test',
  ];
  
  function testEarlyRendering() {
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.render_array'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    $this
      ->assertCacheTag('foo');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.render_array.early'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    $this
      ->assertCacheTag('foo');
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.ajax_response'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.ajax_response.early'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.response'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    $this
      ->assertNoCacheTag('foo');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.response.early'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    $this
      ->assertNoCacheTag('foo');
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.response-with-attachments'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    $this
      ->assertNoCacheTag('foo');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.response-with-attachments.early'));
    $this
      ->assertResponse(500);
    $this
      ->assertRaw('The controller result claims to be providing relevant cache metadata, but leaked metadata was detected. Please ensure you are not rendering content too early. Returned object class: Drupal\\early_rendering_controller_test\\AttachmentsTestResponse.');
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.cacheable-response'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('Hello world!');
    $this
      ->assertNoCacheTag('foo');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.cacheable-response.early'));
    $this
      ->assertResponse(500);
    $this
      ->assertRaw('The controller result claims to be providing relevant cache metadata, but leaked metadata was detected. Please ensure you are not rendering content too early. Returned object class: Drupal\\early_rendering_controller_test\\CacheableTestResponse.');
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.domain-object'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('TestDomainObject');
    $this
      ->assertNoCacheTag('foo');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.domain-object.early'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('TestDomainObject');
    $this
      ->assertNoCacheTag('foo');
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.domain-object-with-attachments'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('AttachmentsTestDomainObject');
    $this
      ->assertNoCacheTag('foo');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.domain-object-with-attachments.early'));
    $this
      ->assertResponse(500);
    $this
      ->assertRaw('The controller result claims to be providing relevant cache metadata, but leaked metadata was detected. Please ensure you are not rendering content too early. Returned object class: Drupal\\early_rendering_controller_test\\AttachmentsTestDomainObject.');
    
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.cacheable-domain-object'));
    $this
      ->assertResponse(200);
    $this
      ->assertRaw('CacheableTestDomainObject');
    $this
      ->assertNoCacheTag('foo');
    $this
      ->drupalGet(Url::fromRoute('early_rendering_controller_test.cacheable-domain-object.early'));
    $this
      ->assertResponse(500);
    $this
      ->assertRaw('The controller result claims to be providing relevant cache metadata, but leaked metadata was detected. Please ensure you are not rendering content too early. Returned object class: Drupal\\early_rendering_controller_test\\CacheableTestDomainObject.');
    
    unlink(\Drupal::root() . '/' . $this->siteDirectory . '/error.log');
  }
}