mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 07:42:57 +08:00
Add tests for chat text box saving / syncing
This commit is contained in:
parent
5e8ca11ded
commit
ffd9359f4a
@ -530,6 +530,52 @@ namespace osu.Game.Tests.Visual.Online
|
||||
});
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTextBoxSavePerChannel()
|
||||
{
|
||||
var testPMChannel = new Channel(testUser);
|
||||
|
||||
AddStep("show overlay", () => chatOverlay.Show());
|
||||
joinTestChannel(0);
|
||||
joinChannel(testPMChannel);
|
||||
|
||||
AddAssert("listing is visible", () => listingIsVisible);
|
||||
AddStep("search for 'number 2'", () => chatOverlayTextBox.Text = "number 2");
|
||||
AddAssert("'number 2' saved to selector", () => channelManager.CurrentChannel.Value.TextBoxMessage.Value == "number 2");
|
||||
|
||||
AddStep("select normal channel", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
AddAssert("text box cleared on normal channel", () => chatOverlayTextBox.Text == string.Empty);
|
||||
AddAssert("nothing saved on normal channel", () => channelManager.CurrentChannel.Value.TextBoxMessage.Value == string.Empty);
|
||||
AddStep("type '727'", () => chatOverlayTextBox.Text = "727");
|
||||
AddAssert("'727' saved to normal channel", () => channelManager.CurrentChannel.Value.TextBoxMessage.Value == "727");
|
||||
|
||||
AddStep("select PM channel", () => clickDrawable(getChannelListItem(testPMChannel)));
|
||||
AddAssert("text box cleared on PM channel", () => chatOverlayTextBox.Text == string.Empty);
|
||||
AddAssert("nothing saved on PM channel", () => channelManager.CurrentChannel.Value.TextBoxMessage.Value == string.Empty);
|
||||
AddStep("type 'hello'", () => chatOverlayTextBox.Text = "hello");
|
||||
AddAssert("'hello' saved to PM channel", () => channelManager.CurrentChannel.Value.TextBoxMessage.Value == "hello");
|
||||
|
||||
AddStep("select normal channel", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
AddAssert("text box contains '727'", () => chatOverlayTextBox.Text == "727");
|
||||
|
||||
AddStep("select PM channel", () => clickDrawable(getChannelListItem(testPMChannel)));
|
||||
AddAssert("text box contains 'hello'", () => chatOverlayTextBox.Text == "hello");
|
||||
AddStep("click close button", () =>
|
||||
{
|
||||
ChannelListItemCloseButton closeButton = getChannelListItem(testPMChannel).ChildrenOfType<ChannelListItemCloseButton>().Single();
|
||||
clickDrawable(closeButton);
|
||||
});
|
||||
|
||||
AddAssert("listing is visible", () => listingIsVisible);
|
||||
AddAssert("text box contains 'channel 2'", () => chatOverlayTextBox.Text == "number 2");
|
||||
AddUntilStep("only channel 2 visible", () =>
|
||||
{
|
||||
IEnumerable<ChannelListingItem> listingItems = chatOverlay.ChildrenOfType<ChannelListingItem>()
|
||||
.Where(item => item.IsPresent);
|
||||
return listingItems.Count() == 1 && listingItems.Single().Channel == testChannel2;
|
||||
});
|
||||
}
|
||||
|
||||
private void joinTestChannel(int i)
|
||||
{
|
||||
AddStep($"Join test channel {i}", () => channelManager.JoinChannel(testChannels[i]));
|
||||
|
@ -50,6 +50,8 @@ namespace osu.Game.Tests.Visual.Online
|
||||
private ChannelManager channelManager;
|
||||
|
||||
private TestStandAloneChatDisplay chatDisplay;
|
||||
private TestStandAloneChatDisplay chatWithTextBox;
|
||||
private TestStandAloneChatDisplay chatWithTextBox2;
|
||||
private int messageIdSequence;
|
||||
|
||||
private Channel testChannel;
|
||||
@ -78,7 +80,7 @@ namespace osu.Game.Tests.Visual.Online
|
||||
|
||||
private void reinitialiseDrawableDisplay()
|
||||
{
|
||||
Children = new[]
|
||||
Children = new Drawable[]
|
||||
{
|
||||
chatDisplay = new TestStandAloneChatDisplay
|
||||
{
|
||||
@ -88,13 +90,28 @@ namespace osu.Game.Tests.Visual.Online
|
||||
Size = new Vector2(400, 80),
|
||||
Channel = { Value = testChannel },
|
||||
},
|
||||
new TestStandAloneChatDisplay(true)
|
||||
new FillFlowContainer
|
||||
{
|
||||
Anchor = Anchor.CentreRight,
|
||||
Origin = Anchor.CentreRight,
|
||||
AutoSizeAxes = Axes.Both,
|
||||
Direction = FillDirection.Vertical,
|
||||
Margin = new MarginPadding(20),
|
||||
Size = new Vector2(400, 150),
|
||||
Channel = { Value = testChannel },
|
||||
Children = new[]
|
||||
{
|
||||
chatWithTextBox = new TestStandAloneChatDisplay(true)
|
||||
{
|
||||
Margin = new MarginPadding(20),
|
||||
Size = new Vector2(400, 150),
|
||||
Channel = { Value = testChannel },
|
||||
},
|
||||
chatWithTextBox2 = new TestStandAloneChatDisplay(true)
|
||||
{
|
||||
Margin = new MarginPadding(20),
|
||||
Size = new Vector2(400, 150),
|
||||
Channel = { Value = testChannel },
|
||||
},
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -351,6 +368,13 @@ namespace osu.Game.Tests.Visual.Online
|
||||
checkScrolledToBottom();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTextBoxSync()
|
||||
{
|
||||
AddStep("type 'hello' to text box 1", () => chatWithTextBox.ChildrenOfType<StandAloneChatDisplay.ChatTextBox>().Single().Text = "hello");
|
||||
AddAssert("text box 2 contains 'hello'", () => chatWithTextBox2.ChildrenOfType<StandAloneChatDisplay.ChatTextBox>().Single().Text == "hello");
|
||||
}
|
||||
|
||||
private void fillChat(int count = 10)
|
||||
{
|
||||
AddStep("fill chat", () =>
|
||||
|
Loading…
Reference in New Issue
Block a user