Update to Drupal 8.1.5. For more information, see https://www.drupal.org/project/drupal/releases/8.1.5
This commit is contained in:
parent
13b6ca7cc2
commit
38ba7c357d
342 changed files with 7814 additions and 1534 deletions
|
@ -15,3 +15,12 @@ no_big_pipe:
|
|||
_no_big_pipe: TRUE
|
||||
requirements:
|
||||
_access: 'TRUE'
|
||||
|
||||
big_pipe_test_multi_occurrence:
|
||||
path: '/big_pipe_test_multi_occurrence'
|
||||
defaults:
|
||||
_controller: '\Drupal\big_pipe_test\BigPipeTestController::multiOccurrence'
|
||||
_title: 'BigPipe test multiple occurrences of the same placeholder'
|
||||
requirements:
|
||||
_access: 'TRUE'
|
||||
|
||||
|
|
|
@ -52,6 +52,30 @@ class BigPipeTestController {
|
|||
return ['#markup' => '<p>Nope.</p>'];
|
||||
}
|
||||
|
||||
/**
|
||||
* A page with multiple occurrences of the same placeholder.
|
||||
*
|
||||
* @see \Drupal\big_pipe\Tests\BigPipeTest::testBigPipeMultipleOccurrencePlaceholders()
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function multiOccurrence() {
|
||||
return [
|
||||
'item1' => [
|
||||
'#lazy_builder' => [static::class . '::counter', []],
|
||||
'#create_placeholder' => TRUE,
|
||||
],
|
||||
'item2' => [
|
||||
'#lazy_builder' => [static::class . '::counter', []],
|
||||
'#create_placeholder' => TRUE,
|
||||
],
|
||||
'item3' => [
|
||||
'#lazy_builder' => [static::class . '::counter', []],
|
||||
'#create_placeholder' => TRUE,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* #lazy_builder callback; builds <time> markup with current time.
|
||||
*
|
||||
|
@ -98,4 +122,31 @@ class BigPipeTestController {
|
|||
return ['#plain_text' => BigPipeTestSubscriber::CONTENT_TRIGGER_EXCEPTION];
|
||||
}
|
||||
|
||||
/**
|
||||
* #lazy_builder callback; returns the current count.
|
||||
*
|
||||
* @see \Drupal\big_pipe\Tests\BigPipeTest::testBigPipeMultipleOccurrencePlaceholders()
|
||||
*
|
||||
* @return array
|
||||
* The render array.
|
||||
*/
|
||||
public static function counter() {
|
||||
// Lazy builders are not allowed to build their own state like this function
|
||||
// does, but in this case we're intentionally doing that for testing
|
||||
// purposes: so we can ensure that each lazy builder is only ever called
|
||||
// once with the same parameters.
|
||||
static $count;
|
||||
|
||||
if (!isset($count)) {
|
||||
$count = 0;
|
||||
}
|
||||
|
||||
$count++;
|
||||
|
||||
return [
|
||||
'#markup' => BigPipeMarkup::create("<p>The count is $count.</p>"),
|
||||
'#cache' => ['max-age' => 0],
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\big_pipe\FunctionalJavascript;
|
||||
|
||||
use Drupal\comment\CommentInterface;
|
||||
use Drupal\comment\Entity\Comment;
|
||||
use Drupal\comment\Plugin\Field\FieldType\CommentItemInterface;
|
||||
use Drupal\comment\Tests\CommentTestTrait;
|
||||
use Drupal\editor\Entity\Editor;
|
||||
use Drupal\filter\Entity\FilterFormat;
|
||||
use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
|
||||
use Drupal\simpletest\ContentTypeCreationTrait;
|
||||
use Drupal\simpletest\NodeCreationTrait;
|
||||
|
||||
/**
|
||||
* BigPipe regression tests.
|
||||
*
|
||||
* @group big_pipe
|
||||
*/
|
||||
class BigPipeRegressionTest extends JavascriptTestBase {
|
||||
|
||||
use CommentTestTrait;
|
||||
use ContentTypeCreationTrait;
|
||||
use NodeCreationTrait;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = [
|
||||
'node',
|
||||
'comment',
|
||||
'big_pipe',
|
||||
'history',
|
||||
'editor',
|
||||
'ckeditor',
|
||||
'filter',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
// Use the big_pipe_test_theme theme.
|
||||
$this->container->get('theme_installer')->install(['big_pipe_test_theme']);
|
||||
$this->container->get('config.factory')->getEditable('system.theme')->set('default', 'big_pipe_test_theme')->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ensure comment form works with history and big_pipe modules.
|
||||
*
|
||||
* @see https://www.drupal.org/node/2698811
|
||||
*/
|
||||
public function testCommentForm_2698811() {
|
||||
// Ensure an `article` node type exists.
|
||||
$this->createContentType(['type' => 'article']);
|
||||
$this->addDefaultCommentField('node', 'article');
|
||||
|
||||
// Enable CKEditor.
|
||||
$format = $this->randomMachineName();
|
||||
FilterFormat::create([
|
||||
'format' => $format,
|
||||
'name' => $this->randomString(),
|
||||
'weight' => 1,
|
||||
'filters' => [],
|
||||
])->save();
|
||||
$settings['toolbar']['rows'] = [
|
||||
[
|
||||
[
|
||||
'name' => 'Links',
|
||||
'items' => [
|
||||
'DrupalLink',
|
||||
'DrupalUnlink',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
$editor = Editor::create([
|
||||
'format' => $format,
|
||||
'editor' => 'ckeditor',
|
||||
]);
|
||||
$editor->setSettings($settings);
|
||||
$editor->save();
|
||||
|
||||
$admin_user = $this->drupalCreateUser([
|
||||
'access comments',
|
||||
'post comments',
|
||||
'use text format ' . $format,
|
||||
]);
|
||||
$this->drupalLogin($admin_user);
|
||||
|
||||
$node = $this->createNode([
|
||||
'type' => 'article',
|
||||
'comment' => CommentItemInterface::OPEN,
|
||||
]);
|
||||
// Create some comments.
|
||||
foreach (range(1, 5) as $i) {
|
||||
$comment = Comment::create([
|
||||
'status' => CommentInterface::PUBLISHED,
|
||||
'field_name' => 'comment',
|
||||
'entity_type' => 'node',
|
||||
'entity_id' => $node->id(),
|
||||
]);
|
||||
$comment->save();
|
||||
}
|
||||
$this->drupalGet($node->toUrl()->toString());
|
||||
// Confirm that CKEditor loaded.
|
||||
$javascript = <<<JS
|
||||
(function(){
|
||||
return Object.keys(CKEDITOR.instances).length > 0;
|
||||
}());
|
||||
JS;
|
||||
$this->assertJsCondition($javascript);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
name: 'BigPipe test theme'
|
||||
type: theme
|
||||
description: 'Theme for testing BigPipe edge cases.'
|
||||
version: VERSION
|
||||
core: 8.x
|
|
@ -0,0 +1,13 @@
|
|||
{#
|
||||
/**
|
||||
* @file
|
||||
* Test that comments still work with the form above instead of below.
|
||||
*
|
||||
* @see \Drupal\Tests\big_pipe\FunctionalJavascript\BigPipeRegressionTest::testCommentForm_2698811()
|
||||
*/
|
||||
#}
|
||||
<section{{ attributes }}>
|
||||
{{ comment_form }}
|
||||
|
||||
{{ comments }}
|
||||
</section>
|
Reference in a new issue