]> BookStack Code Mirror - bookstack/blobdiff - tests/Search/EntitySearchTest.php
Search: Fixed formatting timeout with many term occurrences
[bookstack] / tests / Search / EntitySearchTest.php
index ca900c2edc48f46c750389a9572a42ad51b97dd9..8501b65c43d8bb612e5709df0836d21066dcce1e 100644 (file)
@@ -378,6 +378,21 @@ class EntitySearchTest extends TestCase
         $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()
     {
         $this->entities->newPage(['name' => 'My <cool> TestPageContent', 'html' => '<p>My supercool &lt;great&gt; TestPageContent page</p>']);