mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-11-04 13:31:45 +03:00
@@ -91,7 +91,7 @@ class SearchResultsFormatter
|
|||||||
$offset = 0;
|
$offset = 0;
|
||||||
$term = mb_strtolower($term);
|
$term = mb_strtolower($term);
|
||||||
$pos = mb_strpos($text, $term, $offset);
|
$pos = mb_strpos($text, $term, $offset);
|
||||||
while ($pos !== false) {
|
while ($pos !== false && count($matchRefs) < 25) {
|
||||||
$end = $pos + mb_strlen($term);
|
$end = $pos + mb_strlen($term);
|
||||||
$matchRefs[$pos] = $end;
|
$matchRefs[$pos] = $end;
|
||||||
$offset = $end;
|
$offset = $end;
|
||||||
|
|||||||
@@ -378,6 +378,21 @@ class EntitySearchTest extends TestCase
|
|||||||
$search->assertSee('<strong>На</strong> <strong>мен</strong> <strong>ми</strong> <strong>трябва</strong> <strong>нещо</strong> <strong>добро</strong> test', false);
|
$search->assertSee('<strong>На</strong> <strong>мен</strong> <strong>ми</strong> <strong>трябва</strong> <strong>нещо</strong> <strong>добро</strong> test', false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_match_highlighting_is_efficient_with_large_frequency_in_content()
|
||||||
|
{
|
||||||
|
$content = str_repeat('superbeans ', 10000);
|
||||||
|
$this->entities->newPage([
|
||||||
|
'name' => 'Test Page',
|
||||||
|
'html' => "<p>{$content}</p>",
|
||||||
|
]);
|
||||||
|
|
||||||
|
$time = microtime(true);
|
||||||
|
$resp = $this->asEditor()->get('/search?term=' . urlencode('superbeans'));
|
||||||
|
$this->assertLessThan(0.5, microtime(true) - $time);
|
||||||
|
|
||||||
|
$resp->assertSee('<strong>superbeans</strong>', false);
|
||||||
|
}
|
||||||
|
|
||||||
public function test_html_entities_in_item_details_remains_escaped_in_search_results()
|
public function test_html_entities_in_item_details_remains_escaped_in_search_results()
|
||||||
{
|
{
|
||||||
$this->entities->newPage(['name' => 'My <cool> TestPageContent', 'html' => '<p>My supercool <great> TestPageContent page</p>']);
|
$this->entities->newPage(['name' => 'My <cool> TestPageContent', 'html' => '<p>My supercool <great> TestPageContent page</p>']);
|
||||||
|
|||||||
Reference in New Issue
Block a user