mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 02:42:54 +08:00
Ensure joined channels are actually joined to avoid unexpected tab order
This commit is contained in:
parent
d630b62cfc
commit
21d31ee218
@ -40,7 +40,6 @@ namespace osu.Game.Tests.Visual.Online
|
||||
private ChannelManager channelManager;
|
||||
|
||||
private APIUser testUser;
|
||||
private Channel testPMChannel;
|
||||
private Channel[] testChannels;
|
||||
|
||||
private Channel testChannel1 => testChannels[0];
|
||||
@ -53,7 +52,6 @@ namespace osu.Game.Tests.Visual.Online
|
||||
public void SetUp() => Schedule(() =>
|
||||
{
|
||||
testUser = new APIUser { Username = "test user", Id = 5071479 };
|
||||
testPMChannel = new Channel(testUser);
|
||||
testChannels = Enumerable.Range(1, 10).Select(createPublicChannel).ToArray();
|
||||
|
||||
Child = new DependencyProvidingContainer
|
||||
@ -181,7 +179,7 @@ namespace osu.Game.Tests.Visual.Online
|
||||
{
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddAssert("Listing is visible", () => listingIsVisible);
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
joinTestChannel(0);
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
waitForChannel1Visible();
|
||||
}
|
||||
@ -203,12 +201,11 @@ namespace osu.Game.Tests.Visual.Online
|
||||
[Test]
|
||||
public void TestChannelCloseButton()
|
||||
{
|
||||
var testPMChannel = new Channel(testUser);
|
||||
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddStep("Join PM and public channels", () =>
|
||||
{
|
||||
channelManager.JoinChannel(testChannel1);
|
||||
channelManager.JoinChannel(testPMChannel);
|
||||
});
|
||||
joinTestChannel(0);
|
||||
joinChannel(testPMChannel);
|
||||
AddStep("Select PM channel", () => clickDrawable(getChannelListItem(testPMChannel)));
|
||||
AddStep("Click close button", () =>
|
||||
{
|
||||
@ -229,7 +226,7 @@ namespace osu.Game.Tests.Visual.Online
|
||||
public void TestChatCommand()
|
||||
{
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
joinTestChannel(0);
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
AddStep("Open chat with user", () => channelManager.PostCommand($"chat {testUser.Username}"));
|
||||
AddAssert("PM channel is selected", () =>
|
||||
@ -248,14 +245,16 @@ namespace osu.Game.Tests.Visual.Online
|
||||
[Test]
|
||||
public void TestMultiplayerChannelIsNotShown()
|
||||
{
|
||||
Channel multiplayerChannel = null;
|
||||
Channel multiplayerChannel;
|
||||
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddStep("Join multiplayer channel", () => channelManager.JoinChannel(multiplayerChannel = new Channel(new APIUser())
|
||||
|
||||
joinChannel(multiplayerChannel = new Channel(new APIUser())
|
||||
{
|
||||
Name = "#mp_1",
|
||||
Type = ChannelType.Multiplayer,
|
||||
}));
|
||||
});
|
||||
|
||||
AddAssert("Channel is joined", () => channelManager.JoinedChannels.Contains(multiplayerChannel));
|
||||
AddUntilStep("Channel not present in listing", () => !chatOverlay.ChildrenOfType<ChannelListingItem>()
|
||||
.Where(item => item.IsPresent)
|
||||
@ -269,7 +268,7 @@ namespace osu.Game.Tests.Visual.Online
|
||||
Message message = null;
|
||||
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
joinTestChannel(0);
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
AddStep("Send message in channel 1", () =>
|
||||
{
|
||||
@ -291,8 +290,8 @@ namespace osu.Game.Tests.Visual.Online
|
||||
Message message = null;
|
||||
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
AddStep("Join channel 2", () => channelManager.JoinChannel(testChannel2));
|
||||
joinTestChannel(0);
|
||||
joinTestChannel(1);
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
AddStep("Send message in channel 2", () =>
|
||||
{
|
||||
@ -314,8 +313,8 @@ namespace osu.Game.Tests.Visual.Online
|
||||
Message message = null;
|
||||
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
AddStep("Join channel 2", () => channelManager.JoinChannel(testChannel2));
|
||||
joinTestChannel(0);
|
||||
joinTestChannel(1);
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
AddStep("Send message in channel 2", () =>
|
||||
{
|
||||
@ -337,7 +336,7 @@ namespace osu.Game.Tests.Visual.Online
|
||||
{
|
||||
Message message = null;
|
||||
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
joinTestChannel(0);
|
||||
AddStep("Send message in channel 1", () =>
|
||||
{
|
||||
testChannel1.AddNewMessages(message = new Message
|
||||
@ -357,7 +356,7 @@ namespace osu.Game.Tests.Visual.Online
|
||||
{
|
||||
Message message = null;
|
||||
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
joinTestChannel(0);
|
||||
AddStep("Send message in channel 1", () =>
|
||||
{
|
||||
testChannel1.AddNewMessages(message = new Message
|
||||
@ -378,7 +377,7 @@ namespace osu.Game.Tests.Visual.Online
|
||||
{
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
AddAssert("TextBox is focused", () => InputManager.FocusedDrawable == chatOverlayTextBox);
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
joinTestChannel(0);
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
waitForChannel1Visible();
|
||||
AddAssert("TextBox is focused", () => InputManager.FocusedDrawable == chatOverlayTextBox);
|
||||
@ -404,11 +403,11 @@ namespace osu.Game.Tests.Visual.Online
|
||||
chatOverlay.Show();
|
||||
chatOverlay.SlowLoading = true;
|
||||
});
|
||||
AddStep("Join channel 1", () => channelManager.JoinChannel(testChannel1));
|
||||
joinTestChannel(0);
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
AddUntilStep("Channel 1 loading", () => !channelIsVisible && chatOverlay.GetSlowLoadingChannel(testChannel1).LoadState == LoadState.Loading);
|
||||
|
||||
AddStep("Join channel 2", () => channelManager.JoinChannel(testChannel2));
|
||||
joinTestChannel(1);
|
||||
AddStep("Select channel 2", () => clickDrawable(getChannelListItem(testChannel2)));
|
||||
AddUntilStep("Channel 2 loading", () => !channelIsVisible && chatOverlay.GetSlowLoadingChannel(testChannel2).LoadState == LoadState.Loading);
|
||||
|
||||
@ -461,15 +460,13 @@ namespace osu.Game.Tests.Visual.Online
|
||||
Channel pmChannel1 = createPrivateChannel();
|
||||
Channel pmChannel2 = createPrivateChannel();
|
||||
|
||||
AddStep("Show overlay with channels", () =>
|
||||
{
|
||||
channelManager.JoinChannel(testChannel1);
|
||||
channelManager.JoinChannel(testChannel2);
|
||||
channelManager.JoinChannel(pmChannel1);
|
||||
channelManager.JoinChannel(pmChannel2);
|
||||
channelManager.JoinChannel(announceChannel);
|
||||
chatOverlay.Show();
|
||||
});
|
||||
joinTestChannel(0);
|
||||
joinTestChannel(1);
|
||||
joinChannel(pmChannel1);
|
||||
joinChannel(pmChannel2);
|
||||
joinChannel(announceChannel);
|
||||
|
||||
AddStep("Show overlay", () => chatOverlay.Show());
|
||||
|
||||
AddStep("Select channel 1", () => clickDrawable(getChannelListItem(testChannel1)));
|
||||
waitForChannel1Visible();
|
||||
@ -490,6 +487,18 @@ namespace osu.Game.Tests.Visual.Online
|
||||
waitForChannel1Visible();
|
||||
}
|
||||
|
||||
private void joinTestChannel(int i)
|
||||
{
|
||||
AddStep($"Join test channel {i}", () => channelManager.JoinChannel(testChannels[i]));
|
||||
AddUntilStep("wait for join completed", () => testChannels[i].Joined.Value);
|
||||
}
|
||||
|
||||
private void joinChannel(Channel channel)
|
||||
{
|
||||
AddStep($"Join channel {channel}", () => channelManager.JoinChannel(channel));
|
||||
AddUntilStep("wait for join completed", () => channel.Joined.Value);
|
||||
}
|
||||
|
||||
private void waitForChannel1Visible() =>
|
||||
AddUntilStep("Channel 1 is visible", () => channelIsVisible && currentDrawableChannel?.Channel == testChannel1);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user