class BigPipePreviewTest
Same name and namespace in other branches
- 11.x core/modules/big_pipe/tests/src/FunctionalJavascript/BigPipePreviewTest.php \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipePreviewTest
Tests placeholder preview functionality.
@group big_pipe
Hierarchy
- class \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipePreviewTest
Expanded class hierarchy of BigPipePreviewTest
File
-
core/
modules/ big_pipe/ tests/ src/ FunctionalJavascript/ BigPipePreviewTest.php, line 14
Namespace
Drupal\Tests\big_pipe\FunctionalJavascriptView source
class BigPipePreviewTest extends WebDriverTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'big_pipe',
'user',
'big_pipe_bypass_js',
'big_pipe_test',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'big_pipe_test_theme';
/**
* Test preview functionality within placeholders.
*/
public function testLazyLoaderPreview() : void {
$user = $this->drupalCreateUser([]);
$display_name = $user->getDisplayName();
$this->drupalLogin($user);
$this->drupalGet('big_pipe_test_preview');
// This test begins with the big_pipe_bypass_js module enabled, which blocks
// Big Pipe's JavaScript from loading. Without that JavaScript, the
// placeholder and previews are not replaced and we can reliably test their
// presence.
$this->assertSession()
->elementExists('css', '#placeholder-preview-twig-container [data-big-pipe-placeholder-id] > .i-am-taking-up-space');
$this->assertSession()
->elementTextEquals('css', '#placeholder-preview-twig-container [data-big-pipe-placeholder-id] > .i-am-taking-up-space', 'LOOK AT ME I AM CONSUMING SPACE FOR LATER');
$this->assertSession()
->elementTextNotContains('css', '#placeholder-preview-twig-container', $display_name);
$this->assertSession()
->pageTextContains('There is a lamb and there is a puppy');
$this->assertSession()
->elementTextEquals('css', '#placeholder-render-array-container [data-big-pipe-placeholder-id] > #render-array-preview', 'There is a lamb and there is a puppy');
$this->assertSession()
->elementTextNotContains('css', '#placeholder-render-array-container', 'Llamas forever!');
// Uninstall big_pipe_bypass_js.
\Drupal::service('module_installer')->uninstall([
'big_pipe_bypass_js',
]);
$this->rebuildAll();
$this->drupalGet('big_pipe_test_preview');
$this->assertSession()
->waitForElementRemoved('css', '[data-big-pipe-placeholder-id]', 20000);
$this->assertSession()
->elementTextContains('css', '#placeholder-preview-twig-container', $display_name);
$this->assertSession()
->pageTextNotContains('LOOK AT ME I AM CONSUMING SPACE FOR LATER');
$this->assertSession()
->elementTextContains('css', '#placeholder-render-array-container marquee', 'Llamas forever!');
$this->assertSession()
->pageTextNotContains('There is a lamb and there is a puppy');
}
}
Members
Title Sort descending | Modifiers | Object type | Summary |
---|---|---|---|
BigPipePreviewTest::$defaultTheme | protected | property | The theme to install as the default for testing. |
BigPipePreviewTest::$modules | protected static | property | Modules to install. |
BigPipePreviewTest::testLazyLoaderPreview | public | function | Test preview functionality within placeholders. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.