Exemplo n.º 1
0
        public async Task VerifyLanguagePicker()
        {
            //Arrange
            string?settingsButtonText = null, sortButtonText = null;
            string?preferredLanguage_Initial, preferredLanguage_Final;
            string gitHubNameText, gitHubAliasText, tryDemoButtonText, loginTitleLabelText_Disconnect, loginTitleLabelText_Connect,
                   themeTitleLabelText, languageTitleLabelText, settingsPageTitle, copyrightLabelTitleLabelText, registerForNotificationsTitleLabelText,
                   preferredChartsTitleTitleLabelText, preferredChartsAllTitleLabelText, preferredChartsNoUniquesTitleLabelText, preferredChartsOnlyUniquesTitleLabelText;


            foreach (var preferredLanguageKeyValuePair in CultureConstants.CulturePickerOptions.Reverse())
            {
                //Act
                preferredLanguage_Initial = SettingsPage.PreferredLanguage;

                await SettingsPage.SelectLanguage(preferredLanguageKeyValuePair.Value).ConfigureAwait(false);

                SettingsPage.TapLoginButton();
                tryDemoButtonText           = SettingsPage.TryDemoButtonText;
                loginTitleLabelText_Connect = SettingsPage.LoginTitleText;

                await login().ConfigureAwait(false);

                preferredLanguage_Final = SettingsPage.PreferredLanguage;

                settingsPageTitle                      = SettingsPage.PageTitle;
                gitHubNameText                         = SettingsPage.GitHubNameLabelText;
                gitHubAliasText                        = SettingsPage.GitHubAliasLabelText;
                themeTitleLabelText                    = SettingsPage.ThemeTitleLabelText;
                languageTitleLabelText                 = SettingsPage.LangageTitleLabelText;
                loginTitleLabelText_Disconnect         = SettingsPage.LoginTitleText;
                copyrightLabelTitleLabelText           = SettingsPage.CopyrightLabelText;
                preferredChartsTitleTitleLabelText     = SettingsPage.PreferredChartLabelText;
                registerForNotificationsTitleLabelText = SettingsPage.RegisterForNotificationsTitleLabelText;

                preferredChartsAllTitleLabelText         = TrendsChartConstants.TrendsChartTitles[TrendsChartOption.All];
                preferredChartsNoUniquesTitleLabelText   = TrendsChartConstants.TrendsChartTitles[TrendsChartOption.NoUniques];
                preferredChartsOnlyUniquesTitleLabelText = TrendsChartConstants.TrendsChartTitles[TrendsChartOption.JustUniques];

                SettingsPage.TapBackButton();

                if (App is AndroidApp)
                {
                    sortButtonText     = RepositoryPage.GetSortButtonText();
                    settingsButtonText = RepositoryPage.GetSettingsButtonText();
                }

                //Assert
                Assert.AreEqual(PageTitles.RepositoryPage, RepositoryPage.PageTitle);

                Assert.AreNotEqual(preferredLanguage_Final, preferredLanguage_Initial);
                Assert.AreEqual(preferredLanguage_Final, string.IsNullOrWhiteSpace(preferredLanguageKeyValuePair.Key) ? null : preferredLanguageKeyValuePair.Key);

                Assert.AreEqual(PageTitles.SettingsPage, settingsPageTitle);
                Assert.AreEqual(SettingsPageConstants.Theme, themeTitleLabelText);
                Assert.AreEqual(GitHubLoginButtonConstants.TryDemo, tryDemoButtonText);
                Assert.AreEqual(SettingsPageConstants.Language, languageTitleLabelText);
                Assert.AreEqual(GitHubLoginButtonConstants.Disconnect, loginTitleLabelText_Disconnect);
                Assert.AreEqual(GitHubLoginButtonConstants.ConnectToGitHub, loginTitleLabelText_Connect);
                Assert.AreEqual(SettingsPageConstants.RegisterForNotifications, registerForNotificationsTitleLabelText);
                Assert.AreEqual(SettingsPageConstants.PreferredChartSettingsLabelText, preferredChartsTitleTitleLabelText);

                Assert.IsTrue(copyrightLabelTitleLabelText.Contains(SettingsPageConstants.CreatedBy));

                Assert.AreEqual(TrendsChartTitleConstants.All, preferredChartsAllTitleLabelText);
                Assert.AreEqual(TrendsChartTitleConstants.NoUniques, preferredChartsNoUniquesTitleLabelText);
                Assert.AreEqual(TrendsChartTitleConstants.JustUniques, preferredChartsOnlyUniquesTitleLabelText);

                if (UserType is UserType.Demo)
                {
                    Assert.AreEqual(DemoUserConstants.Name, gitHubNameText);
                    Assert.AreEqual("@" + DemoUserConstants.Alias, gitHubAliasText);
                }

                if (App is AndroidApp)
                {
                    Assert.AreEqual(PageTitles.SettingsPage, settingsButtonText);
                    Assert.AreEqual(RepositoryPageConstants.SortToolbarItemText, sortButtonText);
                }

                Assert.AreEqual(LoggedInUserName, gitHubNameText);
                Assert.AreEqual("@" + LoggedInUserAlias, gitHubAliasText);

                //Act
                RepositoryPage.TapSettingsButton();
                await SettingsPage.WaitForPageToLoad().ConfigureAwait(false);
            }
            ;

            async Task login()
            {
                if (UserType is UserType.Demo)
                {
                    SettingsPage.TapTryDemoButton();
                }
                else if (UserType is UserType.LoggedIn)
                {
                    await LoginToGitHub().ConfigureAwait(false);
                }
            }
        }
Exemplo n.º 2
0
        public async Task VerifySortingOptions(SortingOption sortingOption)
        {
            //Fail all tests if the DefaultSortingOption has changed
            Assert.AreEqual(MobileSortingService.DefaultSortingOption, SortingOption.Views);

            //Arrange
            string floatingActionTextButtonStatistic1Text, floatingActionTextButtonStatistic2Text, floatingActionTextButtonStatistic3Text;

            Repository finalFirstRepository, finalSecondTopRepository, finalLastRepository;
            Repository initialFirstRepository     = RepositoryPage.VisibleCollection.First();
            Repository initialSecondTopRepository = RepositoryPage.VisibleCollection.Skip(1).First();
            Repository initialLastRepository      = RepositoryPage.VisibleCollection.Last();


            //Act
            await RepositoryPage.SetSortingOption(sortingOption).ConfigureAwait(false);

            floatingActionTextButtonStatistic1Text = RepositoryPage.InformationButtonStatistic1Text;
            floatingActionTextButtonStatistic2Text = RepositoryPage.InformationButtonStatistic2Text;
            floatingActionTextButtonStatistic3Text = RepositoryPage.InformationButtonStatistic3Text;

            RepositoryPage.TapInformationButton();

            //Assert
            finalFirstRepository     = RepositoryPage.VisibleCollection.First();
            finalSecondTopRepository = RepositoryPage.VisibleCollection.Skip(1).First();
            finalLastRepository      = RepositoryPage.VisibleCollection.Last();

            if (initialFirstRepository.IsTrending == initialSecondTopRepository.IsTrending)
            {
                Assert.GreaterOrEqual(initialFirstRepository.TotalViews, initialSecondTopRepository.TotalViews);
            }

            Assert.GreaterOrEqual(initialFirstRepository.TotalViews, initialLastRepository.TotalViews);


            var floatingActionTextButtonStatistic1Text_Expected = StatisticsService.GetFloatingActionTextButtonText(MobileSortingService.GetSortingCategory(sortingOption), RepositoryPage.VisibleCollection, FloatingActionButtonType.Statistic1);
            var floatingActionTextButtonStatistic2Text_Expected = StatisticsService.GetFloatingActionTextButtonText(MobileSortingService.GetSortingCategory(sortingOption), RepositoryPage.VisibleCollection, FloatingActionButtonType.Statistic2);
            var floatingActionTextButtonStatistic3Text_Expected = StatisticsService.GetFloatingActionTextButtonText(MobileSortingService.GetSortingCategory(sortingOption), RepositoryPage.VisibleCollection, FloatingActionButtonType.Statistic3);

            Assert.AreEqual(floatingActionTextButtonStatistic1Text_Expected, floatingActionTextButtonStatistic1Text);
            Assert.AreEqual(floatingActionTextButtonStatistic2Text_Expected, floatingActionTextButtonStatistic2Text);
            Assert.AreEqual(floatingActionTextButtonStatistic3Text_Expected, floatingActionTextButtonStatistic3Text);

            switch (sortingOption)
            {
            case SortingOption.Views when finalFirstRepository.IsTrending == finalSecondTopRepository.IsTrending:
                Assert.LessOrEqual(finalFirstRepository.TotalViews, finalSecondTopRepository.TotalViews);
                break;

            case SortingOption.Views:
                Assert.LessOrEqual(finalSecondTopRepository.TotalViews, finalLastRepository.TotalViews);
                break;

            case SortingOption.Stars when finalFirstRepository.IsTrending == finalSecondTopRepository.IsTrending:
                Assert.GreaterOrEqual(finalFirstRepository.StarCount, finalSecondTopRepository.StarCount);
                break;

            case SortingOption.Stars:
                Assert.GreaterOrEqual(finalSecondTopRepository.StarCount, finalLastRepository.StarCount);
                break;

            case SortingOption.Forks when finalFirstRepository.IsTrending == finalSecondTopRepository.IsTrending:
                Assert.GreaterOrEqual(finalFirstRepository.ForkCount, finalSecondTopRepository.ForkCount);
                break;

            case SortingOption.Forks:
                Assert.GreaterOrEqual(finalSecondTopRepository.ForkCount, finalLastRepository.ForkCount);
                break;

            case SortingOption.Issues when finalFirstRepository.IsTrending == finalSecondTopRepository.IsTrending:
                Assert.GreaterOrEqual(finalFirstRepository.IssuesCount, finalSecondTopRepository.IssuesCount);
                break;

            case SortingOption.Issues:
                Assert.GreaterOrEqual(finalSecondTopRepository.IssuesCount, finalLastRepository.IssuesCount);
                break;

            case SortingOption.Clones when finalFirstRepository.IsTrending == finalSecondTopRepository.IsTrending:
                Assert.GreaterOrEqual(finalFirstRepository.TotalClones, finalSecondTopRepository.TotalClones);
                break;

            case SortingOption.Clones:
                Assert.GreaterOrEqual(finalSecondTopRepository.TotalClones, finalLastRepository.TotalClones);
                break;

            case SortingOption.UniqueClones when finalFirstRepository.IsTrending == finalSecondTopRepository.IsTrending:
                Assert.GreaterOrEqual(finalFirstRepository.TotalUniqueClones, finalSecondTopRepository.TotalUniqueClones);
                break;

            case SortingOption.UniqueClones:
                Assert.GreaterOrEqual(finalSecondTopRepository.TotalUniqueClones, finalLastRepository.TotalUniqueClones);
                break;

            case SortingOption.UniqueViews when finalFirstRepository.IsTrending == finalSecondTopRepository.IsTrending:
                Assert.GreaterOrEqual(finalFirstRepository.TotalUniqueViews, finalSecondTopRepository.TotalUniqueViews);
                break;

            case SortingOption.UniqueViews:
                Assert.GreaterOrEqual(finalSecondTopRepository.TotalUniqueViews, finalLastRepository.TotalUniqueViews);
                break;

            default:
                throw new NotSupportedException();
            }
            ;
        }