From 1b93cbd07551375579457db85b7f3c82ca2f8626 Mon Sep 17 00:00:00 2001 From: evazion Date: Thu, 25 Feb 2021 06:12:24 -0600 Subject: [PATCH] autocomplete: match static metatags case-sensitively. Fix rating:S not matching rating:s. --- app/logical/autocomplete_service.rb | 2 +- test/unit/autocomplete_service_test.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/logical/autocomplete_service.rb b/app/logical/autocomplete_service.rb index d9e0a5b30..da91fbfc3 100644 --- a/app/logical/autocomplete_service.rb +++ b/app/logical/autocomplete_service.rb @@ -161,7 +161,7 @@ class AutocompleteService def autocomplete_static_metatag(metatag, value) values = STATIC_METATAGS[metatag.to_sym] - results = values.select { |v| v.starts_with?(value) }.sort.take(limit) + results = values.select { |v| v.starts_with?(value.downcase) }.sort.take(limit) results.map do |v| { label: metatag + ":" + v, value: v } diff --git a/test/unit/autocomplete_service_test.rb b/test/unit/autocomplete_service_test.rb index 9686f07df..5eea5a6f3 100644 --- a/test/unit/autocomplete_service_test.rb +++ b/test/unit/autocomplete_service_test.rb @@ -201,6 +201,12 @@ class AutocompleteServiceTest < ActiveSupport::TestCase assert_autocomplete_equals(["order:score", "order:score_asc"], "order:sco", :tag_query) end + should "match static metatags case-insensitively" do + assert_autocomplete_equals(["rating:safe"], "rating:S", :tag_query) + assert_autocomplete_equals(["rating:questionable"], "rating:Q", :tag_query) + assert_autocomplete_equals(["rating:explicit"], "rating:E", :tag_query) + end + should "ignore bogus tags" do assert_autocomplete_equals([], "x"*200, :tag_query) assert_autocomplete_equals([], "http://www.google.com", :tag_query)