1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-05 09:42:54 +08:00

Compare commits

...

8 Commits

Author SHA1 Message Date
Dan Balasescu
a40e3505f3
Merge pull request #8318 from recapitalverb/fix-score-results-mapper
Fix mapper name in score panel
2020-03-18 06:22:29 +09:00
Bartłomiej Dach
944f0b0285 Rewrite tests
* Use [Cached] injection instead of modifying beatmaps read from store.
* Add assertion steps verifying the presence of mapper name (or lack
  thereof).
2020-03-17 20:45:48 +01:00
recapitalverb
7186e3466b Fix formatting issues 2020-03-18 01:39:19 +07:00
recapitalverb
dc73105a10 Add tests for beatmaps with(out) null mappers 2020-03-18 01:33:01 +07:00
recapitalverb
139ae2bc1e Use existing variables instead 2020-03-18 01:24:58 +07:00
recapitalverb
431571dfa0 Check nulls 2020-03-18 00:15:43 +07:00
recapitalverb
d18b21ba32 Use local variable for metadata instead 2020-03-17 23:23:51 +07:00
recapitalverb
592d8cbd13 Fix mapper name in score panel 2020-03-17 22:45:28 +07:00
2 changed files with 72 additions and 18 deletions

View File

@ -3,10 +3,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Extensions.Color4Extensions;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Graphics.Shapes;
using osu.Framework.Testing;
using osu.Game.Beatmaps;
using osu.Game.Graphics.Sprites;
using osu.Game.Rulesets;
using osu.Game.Rulesets.Mods;
using osu.Game.Rulesets.Osu;
using osu.Game.Rulesets.Osu.Mods;
@ -23,6 +31,9 @@ namespace osu.Game.Tests.Visual.Ranking
{
public class TestSceneExpandedPanelMiddleContent : OsuTestScene
{
[Resolved]
private RulesetStore rulesetStore { get; set; }
public override IReadOnlyList<Type> RequiredTypes => new[]
{
typeof(ExpandedPanelMiddleContent),
@ -35,23 +46,36 @@ namespace osu.Game.Tests.Visual.Ranking
typeof(TotalScoreCounter)
};
public TestSceneExpandedPanelMiddleContent()
[Test]
public void TestMapWithKnownMapper()
{
Child = new Container
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
Size = new Vector2(500, 700),
Children = new Drawable[]
{
new Box
{
RelativeSizeAxes = Axes.Both,
Colour = Color4Extensions.FromHex("#444"),
},
new ExpandedPanelMiddleContent(createTestScore())
}
};
var author = new User { Username = "mapper_name" };
AddStep("show example score", () => showPanel(createTestBeatmap(author), createTestScore()));
AddAssert("mapper name present", () => this.ChildrenOfType<OsuSpriteText>().Any(spriteText => spriteText.Text == "mapper_name"));
}
[Test]
public void TestMapWithUnknownMapper()
{
AddStep("show example score", () => showPanel(createTestBeatmap(null), createTestScore()));
AddAssert("mapped by text not present", () =>
this.ChildrenOfType<OsuSpriteText>().All(spriteText => !containsAny(spriteText.Text, "mapped", "by")));
}
private void showPanel(WorkingBeatmap workingBeatmap, ScoreInfo score)
{
Child = new ExpandedPanelMiddleContentContainer(workingBeatmap, score);
}
private WorkingBeatmap createTestBeatmap(User author)
{
var beatmap = new TestBeatmap(rulesetStore.GetRuleset(0));
beatmap.Metadata.Author = author;
return new TestWorkingBeatmap(beatmap);
}
private ScoreInfo createTestScore() => new ScoreInfo
@ -76,5 +100,31 @@ namespace osu.Game.Tests.Visual.Ranking
{ HitResult.Great, 300 },
}
};
private bool containsAny(string text, params string[] stringsToMatch) => stringsToMatch.Any(text.Contains);
private class ExpandedPanelMiddleContentContainer : Container
{
[Cached]
private Bindable<WorkingBeatmap> workingBeatmap { get; set; }
public ExpandedPanelMiddleContentContainer(WorkingBeatmap beatmap, ScoreInfo score)
{
workingBeatmap = new Bindable<WorkingBeatmap>(beatmap);
Anchor = Anchor.Centre;
Origin = Anchor.Centre;
Size = new Vector2(500, 700);
Children = new Drawable[]
{
new Box
{
RelativeSizeAxes = Axes.Both,
Colour = Color4Extensions.FromHex("#444"),
},
new ExpandedPanelMiddleContent(score)
};
}
}
}
}

View File

@ -51,6 +51,7 @@ namespace osu.Game.Screens.Ranking.Expanded
{
var beatmap = working.Value.BeatmapInfo;
var metadata = beatmap.Metadata;
var creator = metadata.Author?.Username;
var topStatistics = new List<StatisticDisplay>
{
@ -162,8 +163,11 @@ namespace osu.Game.Screens.Ranking.Expanded
Direction = FillDirection.Horizontal,
}.With(t =>
{
t.AddText("mapped by ");
t.AddText(score.UserString, s => s.Font = s.Font.With(weight: FontWeight.SemiBold));
if (!string.IsNullOrEmpty(creator))
{
t.AddText("mapped by ");
t.AddText(creator, s => s.Font = s.Font.With(weight: FontWeight.SemiBold));
}
})
}
},