From 37ceebdabd18ee4645e4494fa74d8360b3ea730d Mon Sep 17 00:00:00 2001 From: Shish Date: Sun, 21 Jan 2024 10:41:25 +0000 Subject: [PATCH] [autocomplete] more tests --- ext/autocomplete/main.php | 3 +-- ext/autocomplete/test.php | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/ext/autocomplete/main.php b/ext/autocomplete/main.php index cec7170e..506be6fa 100644 --- a/ext/autocomplete/main.php +++ b/ext/autocomplete/main.php @@ -56,7 +56,6 @@ class AutoComplete extends Extension if ($limit !== 0) { $limitSQL = "LIMIT :limit"; $SQLarr['limit'] = $limit; - $cache_key .= "-" . $limit; } return cache_get_or_set($cache_key, fn () => $database->get_pairs( @@ -70,7 +69,7 @@ class AutoComplete extends Extension AND count > 0 ORDER BY count DESC, tag ASC $limitSQL - ", + ", $SQLarr ), 600); } diff --git a/ext/autocomplete/test.php b/ext/autocomplete/test.php index 6f92370a..bc6dc462 100644 --- a/ext/autocomplete/test.php +++ b/ext/autocomplete/test.php @@ -8,10 +8,39 @@ class AutoCompleteTest extends ShimmiePHPUnitTestCase { public function testAuth(): void { + $this->log_in_as_user(); + $image_id = $this->post_image("tests/pbx_screenshot.jpg", "some_tag"); + send_event(new UserLoginEvent(User::by_name(self::$anon_name))); $page = $this->get_page('api/internal/autocomplete', ["s" => "not-a-tag"]); $this->assertEquals(200, $page->code); $this->assertEquals(PageMode::DATA, $page->mode); $this->assertEquals("[]", $page->data); + + $page = $this->get_page('api/internal/autocomplete', ["s" => "so"]); + $this->assertEquals(200, $page->code); + $this->assertEquals(PageMode::DATA, $page->mode); + $this->assertEquals('{"some_tag":1}', $page->data); + } + + public function testCategories(): void + { + $this->log_in_as_user(); + $image_id = $this->post_image("tests/pbx_screenshot.jpg", "artist:bob"); + + $page = $this->get_page('api/internal/autocomplete', ["s" => "bob"]); + $this->assertEquals(200, $page->code); + $this->assertEquals(PageMode::DATA, $page->mode); + $this->assertEquals('{"artist:bob":1}', $page->data); + + $page = $this->get_page('api/internal/autocomplete', ["s" => "art"]); + $this->assertEquals(200, $page->code); + $this->assertEquals(PageMode::DATA, $page->mode); + $this->assertEquals('{"artist:bob":1}', $page->data); + + $page = $this->get_page('api/internal/autocomplete', ["s" => "artist:"]); + $this->assertEquals(200, $page->code); + $this->assertEquals(PageMode::DATA, $page->mode); + $this->assertEquals('{"artist:bob":1}', $page->data); } }