public void TestTextFilter() { SeleniumExtensions.ExecuteOnMultipleBrowsers(driver => { SignInHelper.SignInWithId(driver); Console.WriteLine("Setting filter to include two games..."); var filter = "in"; FilterHelper.SetTextFilter(driver, filter); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 2, Invariant($"Could not verify filter {filter}")); AssertActiveFilterNotifications(driver, true); CollectionAssert.AssertEqualSets(new[] { GameConstants.RoninSteamName, GameConstants.GodsWillBeWatchingSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), Invariant($"Could not verify filter {filter}")); Console.WriteLine("Setting filter to exclude all games..."); filter = Guid.NewGuid().ToString(); FilterHelper.SetTextFilter(driver, filter); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 0, Invariant($"Could not verify filter {filter}")); AssertActiveFilterNotifications(driver, true); Console.WriteLine("Clearing filter..."); FilterHelper.ClearTextFilter(driver); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 3, "Could not verify cleared filter"); AssertActiveFilterNotifications(driver, false); }); }
public void TestGameSummary() { SeleniumExtensions.ExecuteOnMultipleBrowsers(driver => { SignInHelper.SignInWithId(driver); Assert.AreEqual(UserConstants.HltbUserGameCount, GameSummaryHelper.GetGameCount(driver), "incorrect game count"); Assert.AreEqual(UserConstants.HltbUserExcludedGameCount, GetExcludedGameCount(driver), "incorrect excluded game count"); AssertValidPlaytimes(driver); AssertValidPercentages(driver); }); }
public void TestCachedGameSummary() { SeleniumExtensions.ExecuteOnMultipleBrowsers(driver => { SignInHelper.GoToCachedGamesPage(driver); var gameCount = GameSummaryHelper.GetGameCount(driver); Assert.IsTrue(gameCount > 10000, Invariant($"too few games in cache: {gameCount}")); Assert.AreEqual(0, GetExcludedGameCount(driver), "expected zero excluded games in cached page"); AssertValidPlaytimes(driver); AssertValidPercentages(driver); }); }
private static void AssertValidPlaytimes(IWebDriver driver) { Console.WriteLine("Locating current playtime text..."); var currentPlaytimeSpan = driver.FindElement(By.Id(SiteConstants.CurrentPlaytimeSpanId)); Assert.AreEqual("0 hours", currentPlaytimeSpan.Text, "Expected zero playtime for HLTBS user"); var mainRemainingPlaytime = GameSummaryHelper.GetRemainingMainPlaytime(driver); var extrasRemainingPlaytime = GameSummaryHelper.GetRemainingExtrasPlaytime(driver); var completionistRemainingPlaytime = GameSummaryHelper.GetRemainingCompletionistPlaytime(driver); Assert.IsTrue(completionistRemainingPlaytime > extrasRemainingPlaytime, "completionist playtime does not exceed extras playtime"); Assert.IsTrue(extrasRemainingPlaytime > mainRemainingPlaytime, "extras playtime does not exceed completionist playtime"); }
public void TestAdvancedFilter() { SeleniumExtensions.ExecuteOnMultipleBrowsers(driver => { SignInHelper.SignInWithId(driver); Console.WriteLine("Setting advanced filter by release year..."); FilterHelper.SetAdvancedFilter(driver, 2015, 2016); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 2, "Could not verify release year advanced filter"); CollectionAssert.AssertEqualSets(new[] { GameConstants.RoninSteamName, GameConstants.AFistfulOfGunSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), "Could not verify release year advanced filter"); AssertActiveFilterNotifications(driver, true); FilterHelper.ClearAdvancedFilter(driver); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 3, "Could not verify cleared advanced filter"); AssertActiveFilterNotifications(driver, false); Console.WriteLine("Setting advanced filter by Metacritic score..."); FilterHelper.SetAdvancedFilter(driver, 2014, -1, 60, 70); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 1, "Could not verify metacritic advanced filter"); CollectionAssert.AssertEqualSets(new[] { GameConstants.GodsWillBeWatchingSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), "Could not verify metacritic advanced filter"); AssertActiveFilterNotifications(driver, true); Console.WriteLine("Setting advanced filter by genre..."); FilterHelper.SetAdvancedFilter(driver, -1, -1, -1, -1, new [] { GameConstants.ActionGenre }); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 0, "Could not verify metacritic+genre advanced filter"); AssertActiveFilterNotifications(driver, true); Console.WriteLine("Clearing filter (externally)..."); FilterHelper.ClearAdvancedFilterExternally(driver); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 3, "Could not verify externally cleared advanced filter"); AssertActiveFilterNotifications(driver, false); Console.WriteLine("Setting combined filter and advanced filter..."); FilterHelper.SetAdvancedFilter(driver, -1, -1, -1, -1, new[] { GameConstants.ActionGenre }); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 2, "Could not verify genre advanced filter"); FilterHelper.SetTextFilter(driver, "gun"); driver.WaitUntil(d => GameSummaryHelper.GetGameCount(driver) == 1, "Could not verify combined filter and advanced filter"); CollectionAssert.AssertEqualSets(new[] { GameConstants.AFistfulOfGunSteamName }, TableHelper.ParseGameTable(driver).Select(g => g.SteamName), "Could not verify combined filter and advanced filter"); }); }
public void TestTableInclusion() { SeleniumExtensions.ExecuteOnMultipleBrowsers(driver => { SignInHelper.SignInWithId(driver); var originalMain = GameSummaryHelper.GetRemainingMainPlaytime(driver); var originalExtras = GameSummaryHelper.GetRemainingExtrasPlaytime(driver); var originalCompletionist = GameSummaryHelper.GetRemainingCompletionistPlaytime(driver); var inclusionCheckboxes = TableHelper.FindTableBody(driver).FindElements(By.ClassName(SiteConstants.RowIncludedCheckboxClass)); Console.WriteLine("Excluding a game..."); inclusionCheckboxes.First().Click(); Assert.AreEqual(2, GameSummaryHelper.GetGameCount(driver), "Expected exclusion of game to reduce game count"); var mainPostExclusion = GameSummaryHelper.GetRemainingMainPlaytime(driver); var extrasPostExclusion = GameSummaryHelper.GetRemainingExtrasPlaytime(driver); var completionistPostExclusion = GameSummaryHelper.GetRemainingCompletionistPlaytime(driver); Assert.IsTrue(mainPostExclusion < originalMain, "Expected exclusion of game to reduce original remaining main playtime"); Assert.IsTrue(extrasPostExclusion < originalExtras, "Expected exclusion of game to reduce original remaining main playtime"); Assert.IsTrue(completionistPostExclusion < originalCompletionist, "Expected exclusion of game to reduce original remaining main playtime"); Console.WriteLine("Excluding remaining games..."); foreach (var inclusionCheckbox in inclusionCheckboxes.Skip(1)) { inclusionCheckbox.Click(); } Assert.AreEqual(0, GameSummaryHelper.GetGameCount(driver), "Expected zero game count when all games are excluded"); Assert.AreEqual(TimeSpan.Zero, GameSummaryHelper.GetRemainingMainPlaytime(driver), "Expected zero main remaining playtime"); Assert.AreEqual(TimeSpan.Zero, GameSummaryHelper.GetRemainingExtrasPlaytime(driver), "Expected zero extras remaining playtime"); Assert.AreEqual(TimeSpan.Zero, GameSummaryHelper.GetRemainingCompletionistPlaytime(driver), "Expected zero completionist remaining playtime"); }); }