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);
            });
        }
Beispiel #2
0
        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);
            });
        }
Beispiel #3
0
        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);
            });
        }
Beispiel #4
0
        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");
            });
        }