Update to Drupal 8.1.1. For more information, see https://www.drupal.org/node/2718713
This commit is contained in:
parent
c0a0d5a94c
commit
9eae24d844
669 changed files with 3873 additions and 1553 deletions
98
core/modules/text/tests/src/Kernel/TextFormatterTest.php
Normal file
98
core/modules/text/tests/src/Kernel/TextFormatterTest.php
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\text\Kernel;
|
||||
|
||||
use Drupal\field\Entity\FieldConfig;
|
||||
use Drupal\filter\Entity\FilterFormat;
|
||||
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
|
||||
use Drupal\field\Entity\FieldStorageConfig;
|
||||
|
||||
/**
|
||||
* Tests the text formatters functionality.
|
||||
*
|
||||
* @group text
|
||||
*/
|
||||
class TextFormatterTest extends EntityKernelTestBase {
|
||||
|
||||
/**
|
||||
* The entity type used in this test.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $entityType = 'entity_test';
|
||||
|
||||
/**
|
||||
* The bundle used in this test.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $bundle = 'entity_test';
|
||||
|
||||
/**
|
||||
* Modules to enable.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $modules = array('text');
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
FilterFormat::create(array(
|
||||
'format' => 'my_text_format',
|
||||
'name' => 'My text format',
|
||||
'filters' => array(
|
||||
'filter_autop' => array(
|
||||
'module' => 'filter',
|
||||
'status' => TRUE,
|
||||
),
|
||||
),
|
||||
))->save();
|
||||
|
||||
FieldStorageConfig::create(array(
|
||||
'field_name' => 'formatted_text',
|
||||
'entity_type' => $this->entityType,
|
||||
'type' => 'text',
|
||||
'settings' => array(),
|
||||
))->save();
|
||||
FieldConfig::create([
|
||||
'entity_type' => $this->entityType,
|
||||
'bundle' => $this->bundle,
|
||||
'field_name' => 'formatted_text',
|
||||
'label' => 'Filtered text',
|
||||
])->save();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests all text field formatters.
|
||||
*/
|
||||
public function testFormatters() {
|
||||
$formatters = array(
|
||||
'text_default',
|
||||
'text_trimmed',
|
||||
'text_summary_or_trimmed',
|
||||
);
|
||||
|
||||
// Create the entity to be referenced.
|
||||
$entity = $this->container->get('entity_type.manager')
|
||||
->getStorage($this->entityType)
|
||||
->create(array('name' => $this->randomMachineName()));
|
||||
$entity->formatted_text = array(
|
||||
'value' => 'Hello, world!',
|
||||
'format' => 'my_text_format',
|
||||
);
|
||||
$entity->save();
|
||||
|
||||
foreach ($formatters as $formatter) {
|
||||
// Verify the text field formatter's render array.
|
||||
$build = $entity->get('formatted_text')->view(array('type' => $formatter));
|
||||
\Drupal::service('renderer')->renderRoot($build[0]);
|
||||
$this->assertEqual($build[0]['#markup'], "<p>Hello, world!</p>\n");
|
||||
$this->assertEqual($build[0]['#cache']['tags'], FilterFormat::load('my_text_format')->getCacheTags(), format_string('The @formatter formatter has the expected cache tags when formatting a formatted text field.', array('@formatter' => $formatter)));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
216
core/modules/text/tests/src/Kernel/TextSummaryTest.php
Normal file
216
core/modules/text/tests/src/Kernel/TextSummaryTest.php
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\text\Kernel;
|
||||
|
||||
use Drupal\KernelTests\KernelTestBase;
|
||||
use Drupal\filter\Entity\FilterFormat;
|
||||
|
||||
/**
|
||||
* Tests text_summary() with different strings and lengths.
|
||||
*
|
||||
* @group text
|
||||
*/
|
||||
class TextSummaryTest extends KernelTestBase {
|
||||
|
||||
public static $modules = array('system', 'user', 'filter', 'text');
|
||||
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
|
||||
$this->installConfig(array('text'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests an edge case where the first sentence is a question and
|
||||
* subsequent sentences are not. This edge case is documented at
|
||||
* https://www.drupal.org/node/180425.
|
||||
*/
|
||||
function testFirstSentenceQuestion() {
|
||||
$text = 'A question? A sentence. Another sentence.';
|
||||
$expected = 'A question? A sentence.';
|
||||
$this->assertTextSummary($text, $expected, NULL, 30);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test summary with long example.
|
||||
*/
|
||||
function testLongSentence() {
|
||||
$text = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' . // 125
|
||||
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' . // 108
|
||||
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ' . // 103
|
||||
'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'; // 110
|
||||
$expected = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' .
|
||||
'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' .
|
||||
'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.';
|
||||
// First three sentences add up to: 336, so add one for space and then 3 to get half-way into next word.
|
||||
$this->assertTextSummary($text, $expected, NULL, 340);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test various summary length edge cases.
|
||||
*/
|
||||
function testLength() {
|
||||
FilterFormat::create(array(
|
||||
'format' => 'autop',
|
||||
'filters' => array(
|
||||
'filter_autop' => array(
|
||||
'status' => 1,
|
||||
),
|
||||
),
|
||||
))->save();
|
||||
FilterFormat::create(array(
|
||||
'format' => 'autop_correct',
|
||||
'filters' => array(
|
||||
'filter_autop' => array(
|
||||
'status' => 1,
|
||||
),
|
||||
'filter_htmlcorrector' => array(
|
||||
'status' => 1,
|
||||
),
|
||||
),
|
||||
))->save();
|
||||
|
||||
// This string tests a number of edge cases.
|
||||
$text = "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>";
|
||||
|
||||
// The summaries we expect text_summary() to return when $size is the index
|
||||
// of each array item.
|
||||
// Using no text format:
|
||||
$format = NULL;
|
||||
$i = 0;
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\n", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nH", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n<", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
|
||||
// Using a text format with filter_autop enabled.
|
||||
$format = 'autop';
|
||||
$i = 0;
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
|
||||
// Using a text format with filter_autop and filter_htmlcorrector enabled.
|
||||
$format = 'autop_correct';
|
||||
$i = 0;
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p></p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p></p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p></p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p></p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p></p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
$this->assertTextSummary($text, "<p>\nHi\n</p>\n<p>\nfolks\n<br />\n!\n</p>", $format, $i++);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calls text_summary() and asserts that the expected teaser is returned.
|
||||
*/
|
||||
function assertTextSummary($text, $expected, $format = NULL, $size = NULL) {
|
||||
$summary = text_summary($text, $format, $size);
|
||||
$this->assertIdentical($summary, $expected, format_string('<pre style="white-space: pre-wrap">@actual</pre> is identical to <pre style="white-space: pre-wrap">@expected</pre>', array(
|
||||
'@actual' => $summary,
|
||||
'@expected' => $expected,
|
||||
)));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in a new issue