From 6ddb2d33056fe53755a91cac51d9e6b29bcef0bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Dach?= Date: Wed, 13 Aug 2025 10:03:43 +0200 Subject: [PATCH] Add failing test coverage for parsing multiple concurrent tag filters --- .../NonVisual/Filtering/FilterQueryParserTest.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/osu.Game.Tests/NonVisual/Filtering/FilterQueryParserTest.cs b/osu.Game.Tests/NonVisual/Filtering/FilterQueryParserTest.cs index 578698b724..2fd594b0e9 100644 --- a/osu.Game.Tests/NonVisual/Filtering/FilterQueryParserTest.cs +++ b/osu.Game.Tests/NonVisual/Filtering/FilterQueryParserTest.cs @@ -756,5 +756,17 @@ namespace osu.Game.Tests.NonVisual.Filtering Assert.AreEqual(true, filterCriteria.LastPlayed.HasFilter); Assert.AreEqual(matched, filterCriteria.LastPlayed.IsInRange(reference)); } + + [Test] + public void TestMultipleTextFilters() + { + var filterCriteria = new FilterCriteria(); + FilterQueryParser.ApplyQueries(filterCriteria, "tag=\"simple\" tag=\"clean\"!"); + Assert.That(filterCriteria.UserTags, Has.Count.EqualTo(2)); + Assert.That(filterCriteria.UserTags[0].SearchTerm, Is.EqualTo("simple")); + Assert.That(filterCriteria.UserTags[0].MatchMode, Is.EqualTo(FilterCriteria.MatchMode.IsolatedPhrase)); + Assert.That(filterCriteria.UserTags[1].SearchTerm, Is.EqualTo("clean")); + Assert.That(filterCriteria.UserTags[1].MatchMode, Is.EqualTo(FilterCriteria.MatchMode.FullPhrase)); + } } }