public void TestNextPlaylistItemSelectedAfterCompletion() { AddStep("add two playlist items", () => { SelectedRoom.Value.Playlist.AddRange(new[] { new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First()).BeatmapInfo) { RulesetID = new OsuRuleset().RulesetInfo.OnlineID }, new PlaylistItem(beatmaps.GetWorkingBeatmap(importedSet.Beatmaps.First()).BeatmapInfo) { RulesetID = new OsuRuleset().RulesetInfo.OnlineID } }); }); ClickButtonWhenEnabled <MultiplayerMatchSettingsOverlay.CreateOrUpdateButton>(); AddUntilStep("wait for join", () => RoomJoined); ClickButtonWhenEnabled <MultiplayerReadyButton>(); ClickButtonWhenEnabled <MultiplayerReadyButton>(); AddStep("change user to loaded", () => MultiplayerClient.ChangeState(MultiplayerUserState.Loaded)); AddUntilStep("user playing", () => MultiplayerClient.LocalUser?.State == MultiplayerUserState.Playing); AddStep("abort gameplay", () => MultiplayerClient.AbortGameplay()); AddUntilStep("last playlist item selected", () => { var lastItem = this.ChildrenOfType <DrawableRoomPlaylistItem>().Single(p => p.Item.ID == MultiplayerClient.APIRoom?.Playlist.Last().ID); return(lastItem.IsSelectedItem); }); }
public void TestModOverlap() { AddStep("add dummy mods", () => { MultiplayerClient.ChangeUserMods(new Mod[] { new OsuModNoFail(), new OsuModDoubleTime() }); }); AddStep("add user with mods", () => { MultiplayerClient.AddUser(new APIUser { Id = 0, Username = "******", RulesetsStatistics = new Dictionary <string, UserStatistics> { { Ruleset.Value.ShortName, new UserStatistics { GlobalRank = RNG.Next(1, 100000), } } }, CoverUrl = @"https://osu.ppy.sh/images/headers/profile-covers/c3.jpg", }); MultiplayerClient.ChangeUserMods(0, new Mod[] { new OsuModHardRock(), new OsuModDoubleTime() }); }); AddStep("set 0 ready", () => MultiplayerClient.ChangeState(MultiplayerUserState.Ready)); AddStep("set 1 spectate", () => MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Spectating)); // Have to set back to idle due to status priority. AddStep("set 0 no map, 1 ready", () => { MultiplayerClient.ChangeState(MultiplayerUserState.Idle); MultiplayerClient.ChangeBeatmapAvailability(BeatmapAvailability.NotDownloaded()); MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Ready); }); AddStep("set 0 downloading", () => MultiplayerClient.ChangeBeatmapAvailability(BeatmapAvailability.Downloading(0))); AddStep("set 0 spectate", () => MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Spectating)); AddStep("make both default", () => { MultiplayerClient.ChangeBeatmapAvailability(BeatmapAvailability.LocallyAvailable()); MultiplayerClient.ChangeUserState(0, MultiplayerUserState.Idle); MultiplayerClient.ChangeState(MultiplayerUserState.Idle); }); }
public void TestToggleReadyState() { AddAssert("ready mark invisible", () => !this.ChildrenOfType <StateDisplay>().Single().IsPresent); AddStep("make user ready", () => MultiplayerClient.ChangeState(MultiplayerUserState.Ready)); AddUntilStep("ready mark visible", () => this.ChildrenOfType <StateDisplay>().Single().IsPresent); AddStep("make user idle", () => MultiplayerClient.ChangeState(MultiplayerUserState.Idle)); AddUntilStep("ready mark invisible", () => !this.ChildrenOfType <StateDisplay>().Single().IsPresent); }
public void TestGameStateHasPriorityOverDownloadState() { AddStep("set to downloading map", () => MultiplayerClient.ChangeBeatmapAvailability(BeatmapAvailability.Downloading(0))); checkProgressBarVisibility(true); AddStep("make user ready", () => MultiplayerClient.ChangeState(MultiplayerUserState.Results)); checkProgressBarVisibility(false); AddUntilStep("ready mark visible", () => this.ChildrenOfType <StateDisplay>().Single().IsPresent); AddStep("make user ready", () => MultiplayerClient.ChangeState(MultiplayerUserState.Idle)); checkProgressBarVisibility(true); }
public void TestToggleSpectateState() { AddStep("make user spectating", () => MultiplayerClient.ChangeState(MultiplayerUserState.Spectating)); AddStep("make user idle", () => MultiplayerClient.ChangeState(MultiplayerUserState.Idle)); }