Chris@0: installConfig(['text']); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Tests an edge case where the first sentence is a question and Chris@0: * subsequent sentences are not. This edge case is documented at Chris@0: * https://www.drupal.org/node/180425. Chris@0: */ Chris@0: public function testFirstSentenceQuestion() { Chris@0: $text = 'A question? A sentence. Another sentence.'; Chris@0: $expected = 'A question? A sentence.'; Chris@0: $this->assertTextSummary($text, $expected, NULL, 30); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test summary with long example. Chris@0: */ Chris@0: public function testLongSentence() { Chris@0: // 125. Chris@0: $text = Chris@0: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' . Chris@0: // 108. Chris@0: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' . Chris@0: // 103. Chris@0: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. ' . Chris@0: // 110. Chris@0: 'Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'; Chris@0: $expected = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' . Chris@0: 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' . Chris@0: 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.'; Chris@0: // First three sentences add up to: 336, so add one for space and then 3 to get half-way into next word. Chris@0: $this->assertTextSummary($text, $expected, NULL, 340); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Test various summary length edge cases. Chris@0: */ Chris@0: public function testLength() { Chris@0: FilterFormat::create([ Chris@0: 'format' => 'autop', Chris@0: 'filters' => [ Chris@0: 'filter_autop' => [ Chris@0: 'status' => 1, Chris@0: ], Chris@0: ], Chris@0: ])->save(); Chris@0: FilterFormat::create([ Chris@0: 'format' => 'autop_correct', Chris@0: 'filters' => [ Chris@0: 'filter_autop' => [ Chris@0: 'status' => 1, Chris@0: ], Chris@0: 'filter_htmlcorrector' => [ Chris@0: 'status' => 1, Chris@0: ], Chris@0: ], Chris@0: ])->save(); Chris@0: Chris@0: // This string tests a number of edge cases. Chris@0: $text = "
\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
assertTextSummary($text, "
", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\n", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nH", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi\n", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi\n<", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi\n", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi\n
assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
assertTextSummary($text, "
", $format, $i++); Chris@0: $this->assertTextSummary($text, "
", $format, $i++); Chris@0: $this->assertTextSummary($text, "
", $format, $i++); Chris@0: $this->assertTextSummary($text, "
", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi", $format, $i++); Chris@0: $this->assertTextSummary($text, "
\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
\nHi
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
", $format, $i++); Chris@0: $this->assertTextSummary($text, "\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
\nHi\n
\n\nfolks\n
\n!\n
@actualis identical to
@expected', [ Chris@0: '@actual' => $summary, Chris@0: '@expected' => $expected, Chris@0: ])); Chris@0: } Chris@0: Chris@0: }