mirror of https://github.com/ppy/osu
Merge pull request #20292 from peppy/fix-preix-matching-status
Fix song select status prefix matching no longer working
This commit is contained in:
commit
024f7991ad
|
@ -191,6 +191,16 @@ public void TestApplyDivisorQueries()
|
|||
Assert.IsTrue(filterCriteria.BeatDivisor.IsUpperInclusive);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestPartialStatusMatch()
|
||||
{
|
||||
const string query = "status=r";
|
||||
var filterCriteria = new FilterCriteria();
|
||||
FilterQueryParser.ApplyQueries(filterCriteria, query);
|
||||
Assert.AreEqual(BeatmapOnlineStatus.Ranked, filterCriteria.OnlineStatus.Min);
|
||||
Assert.AreEqual(BeatmapOnlineStatus.Ranked, filterCriteria.OnlineStatus.Max);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestApplyStatusQueries()
|
||||
{
|
||||
|
|
|
@ -122,14 +122,17 @@ private static bool tryParseInt(string value, out int result) =>
|
|||
|
||||
private static bool tryParseEnum<TEnum>(string value, out TEnum result) where TEnum : struct
|
||||
{
|
||||
if (Enum.TryParse(value, true, out result)) return true;
|
||||
// First try an exact match.
|
||||
if (Enum.TryParse(value, true, out result))
|
||||
return true;
|
||||
|
||||
// Then try a prefix match.
|
||||
string? prefixMatch = Enum.GetNames(typeof(TEnum)).FirstOrDefault(name => name.StartsWith(value, true, CultureInfo.InvariantCulture));
|
||||
|
||||
if (prefixMatch == null)
|
||||
return false;
|
||||
|
||||
return Enum.TryParse(value, true, out result);
|
||||
return Enum.TryParse(prefixMatch, true, out result);
|
||||
}
|
||||
|
||||
private static GroupCollection? tryMatchRegex(string value, string regex)
|
||||
|
|
Loading…
Reference in New Issue