public void VerifyLogOutButton() { //Arrange bool isLoggedIn_Final, isLoggedIn_Initial; //Act isLoggedIn_Initial = SettingsPage.IsLoggedIn; SettingsPage.TapLoginButton(); isLoggedIn_Final = SettingsPage.IsLoggedIn; //Assert Assert.IsTrue(isLoggedIn_Initial); Assert.IsFalse(isLoggedIn_Final); }
public async Task VerifyChartSettingsOptions() { //Arrange //Assert Assert.AreEqual(TrendsChartOption.All, SettingsPage.CurrentTrendsChartOption); //Act await SettingsPage.SetTrendsChartOption(TrendsChartOption.JustUniques).ConfigureAwait(false); //Assert Assert.AreEqual(TrendsChartOption.JustUniques, SettingsPage.CurrentTrendsChartOption); //Act await SettingsPage.SetTrendsChartOption(TrendsChartOption.All).ConfigureAwait(false); //Assert Assert.AreEqual(TrendsChartOption.All, SettingsPage.CurrentTrendsChartOption); //Act await SettingsPage.SetTrendsChartOption(TrendsChartOption.NoUniques); //Assert Assert.AreEqual(TrendsChartOption.NoUniques, SettingsPage.CurrentTrendsChartOption); //Act SettingsPage.TapBackButton(); await RepositoryPage.WaitForPageToLoad().ConfigureAwait(false); await RepositoryPage.WaitForNoPullToRefreshIndicator().ConfigureAwait(false); var visibleRepositories = RepositoryPage.VisibleCollection; RepositoryPage.TapRepository(visibleRepositories.First().Name); await TrendsPage.WaitForPageToLoad().ConfigureAwait(false); //Assert Assert.IsTrue(TrendsPage.IsSeriesVisible(TrendsChartTitleConstants.TotalViewsTitle)); Assert.IsTrue(TrendsPage.IsSeriesVisible(TrendsChartTitleConstants.TotalClonesTitle)); Assert.IsFalse(TrendsPage.IsSeriesVisible(TrendsChartTitleConstants.UniqueViewsTitle)); Assert.IsFalse(TrendsPage.IsSeriesVisible(TrendsChartTitleConstants.UniqueClonesTitle)); }
void EnsureGitHubUserViewOpensBrowser_LoggedIn() { //Arrange var aliasLabelText = SettingsPage.GitHubAliasLabelText; var nameLabelText = SettingsPage.GitHubAliasNameText; //Act SettingsPage.TapGitHubUserView(); //Assert Assert.AreEqual("@" + LoggedInUserAlias, aliasLabelText); Assert.AreEqual(LoggedInUserName, nameLabelText); if (App is iOSApp) { SettingsPage.WaitForBrowserToOpen(); Assert.IsTrue(SettingsPage.IsBrowserOpen); } }
public async Task VerifyThemePicker() { //Arrange PreferredTheme preferredTheme_Initial = SettingsPage.PreferredTheme; PreferredTheme preferredTheme_Light, preferredTheme_Dark; //Act await SettingsPage.SelectTheme(PreferredTheme.Light).ConfigureAwait(false); preferredTheme_Light = SettingsPage.PreferredTheme; await SettingsPage.SelectTheme(PreferredTheme.Dark).ConfigureAwait(false); preferredTheme_Dark = SettingsPage.PreferredTheme; //Assert Assert.AreEqual(PreferredTheme.Default, preferredTheme_Initial); Assert.AreEqual(PreferredTheme.Light, preferredTheme_Light); Assert.AreEqual(PreferredTheme.Dark, preferredTheme_Dark); }
public async Task EnsureCreatedByLabelOpensBrowser() { //Arrange //Act SettingsPage.TapCreatedByLabel(); //Assert if (App is iOSApp) { SettingsPage.WaitForBrowserToOpen(); Assert.IsTrue(SettingsPage.IsBrowserOpen); } else { await Task.Delay(2000).ConfigureAwait(false); App.Screenshot("Browswer Opened"); } }
public async Task VerifyNotificationsSwitch() { //Arrange bool areNotificationsEnabled_Initial = SettingsPage.AreNotificationsEnabled; bool shouldSendNotifications_Initial = SettingsPage.ShouldSendNotifications; bool shouldSendNotifications_Final, areNotificationsEnabled_Final; //Act SettingsPage.ToggleRegisterForNotificationsSwitch(); await Task.Delay(5000).ConfigureAwait(false); shouldSendNotifications_Final = SettingsPage.ShouldSendNotifications; areNotificationsEnabled_Final = SettingsPage.AreNotificationsEnabled; //Assert Assert.IsFalse(shouldSendNotifications_Initial); Assert.IsFalse(areNotificationsEnabled_Initial); Assert.IsTrue(shouldSendNotifications_Final); Assert.IsTrue(areNotificationsEnabled_Final); }
void EnsureGitHubUserViewOpensBrowser_Demo() { //Arrange string nameLabelText, aliasLabelText; //Act if (SettingsPage.GitHubButtonText is GitHubLoginButtonConstants.Disconnect) { SettingsPage.TapLoginButton(); } SettingsPage.TapGitHubUserView(); //Assert if (App is iOSApp) { Assert.IsFalse(SettingsPage.IsBrowserOpen); } //Act SettingsPage.TapDemoModeButton(); SettingsPage.WaitForGitHubLoginToComplete(); aliasLabelText = SettingsPage.GitHubAliasLabelText; nameLabelText = SettingsPage.GitHubAliasNameText; SettingsPage.TapGitHubUserView(); //Assert Assert.AreEqual("@" + DemoDataConstants.Alias, aliasLabelText); Assert.AreEqual(DemoDataConstants.Name, nameLabelText); if (App is iOSApp) { SettingsPage.WaitForBrowserToOpen(); Assert.IsTrue(SettingsPage.IsBrowserOpen); } }
void EnsureGitHubUserViewOpensBrowser_Demo() { //Arrange string nameLabelText, aliasLabelText; //Act SettingsPage.WaitForGitHubLoginToComplete(); aliasLabelText = SettingsPage.GitHubAliasLabelText; nameLabelText = SettingsPage.GitHubAliasNameText; SettingsPage.TapGitHubUserView(); //Assert Assert.AreEqual("@" + DemoUserConstants.Alias, aliasLabelText); Assert.AreEqual(DemoUserConstants.Name, nameLabelText); if (App is iOSApp) { SettingsPage.WaitForBrowserToOpen(); Assert.IsTrue(SettingsPage.IsBrowserOpen); } }
public async Task VerifyNoRepositoriesAfterLogOut() { //Arrange //Act RepositoryPage.TapSettingsButton(); await SettingsPage.WaitForPageToLoad().ConfigureAwait(false); //Assert Assert.AreEqual(GitHubLoginButtonConstants.Disconnect, SettingsPage.LoginTitleText); //Act SettingsPage.TapLoginButton(); SettingsPage.WaitForGitHubLogoutToComplete(); //Assert Assert.AreEqual(GitHubLoginButtonConstants.ConnectToGitHub, SettingsPage.LoginTitleText); //Act SettingsPage.TapBackButton(); //Assert await WelcomePage.WaitForPageToLoad().ConfigureAwait(false); }
public async Task ReferringSitesPageDoesLoad() { //Arrange IReadOnlyCollection <ReferringSiteModel> referringSiteList = ReferringSitesPage.VisibleCollection; var referringSite = referringSiteList.First(); bool isUrlValid = referringSite.IsReferrerUriValid; //Assert Assert.IsTrue(App.Query(referringSite.Referrer).Any()); //Act if (isUrlValid) { App.Tap(referringSite.Referrer); await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false); } //Assert if (isUrlValid && App is iOSApp) { SettingsPage.WaitForBrowserToOpen(); Assert.IsTrue(ReferringSitesPage.IsBrowserOpen); } }
public override async Task BeforeEachTest() { await base.BeforeEachTest(); RepositoryPage.TapSettingsButton(); await SettingsPage.WaitForPageToLoad(); SettingsPage.WaitForGitHubLoginToComplete(); //Assert Assert.AreEqual(GitHubLoginButtonConstants.Disconnect, SettingsPage.LoginTitleText); //Act SettingsPage.TapLoginButton(); SettingsPage.WaitForGitHubLogoutToComplete(); //Assert Assert.AreEqual(GitHubLoginButtonConstants.ConnectToGitHub, SettingsPage.LoginTitleText); SettingsPage.TapBackButton(); await WelcomePage.WaitForPageToLoad(); }
public async Task VerifyNotificationsSwitch() { //Arrange bool areNotificationsEnabled_Initial = SettingsPage.AreNotificationsEnabled; bool shouldSendNotifications_Initial = SettingsPage.ShouldSendNotifications; bool shouldSendNotifications_Final, areNotificationsEnabled_Final; //Act SettingsPage.ToggleRegisterForNotificationsSwitch(); await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false); SettingsPage.WaitForNoOperatingSystemNotificationDiaglog(); shouldSendNotifications_Final = SettingsPage.ShouldSendNotifications; areNotificationsEnabled_Final = SettingsPage.AreNotificationsEnabled; //Assert Assert.IsFalse(shouldSendNotifications_Initial); Assert.IsTrue(areNotificationsEnabled_Initial); Assert.IsTrue(shouldSendNotifications_Final); Assert.IsTrue(areNotificationsEnabled_Final); }
public async Task AppStoreScreenShotsTest() { //Arrange var screenRect = App.Query().First().Rect; //Act await OnboardingPage.WaitForPageToLoad().ConfigureAwait(false); App.Screenshot("GitTrends Onboarding Page"); await OnboardingPage.MoveToNextPage().ConfigureAwait(false); App.Screenshot("Charts Onboarding Page"); await OnboardingPage.MoveToNextPage().ConfigureAwait(false); App.Screenshot("Notifications Onboarding Page"); await OnboardingPage.MoveToNextPage().ConfigureAwait(false); App.Screenshot("Connect to GitHub Onboarding Page"); await SetupLoggedInUser().ConfigureAwait(false); App.Screenshot("Repository Page Light"); RepositoryPage.TapRepository(nameof(GitTrends)); await TrendsPage.WaitForPageToLoad().ConfigureAwait(false); App.TouchAndHoldCoordinates(screenRect.CenterX, screenRect.CenterY); App.Screenshot("Trends Page Light"); TrendsPage.TapReferringSitesButton(); await ReferringSitesPage.WaitForPageToLoad().ConfigureAwait(false); App.Screenshot("Referring Sites Page Light"); ReferringSitesPage.ClosePage(); await TrendsPage.WaitForPageToLoad().ConfigureAwait(false); TrendsPage.TapBackButton(); await RepositoryPage.WaitForPageToLoad().ConfigureAwait(false); RepositoryPage.TapSettingsButton(); await SettingsPage.WaitForPageToLoad().ConfigureAwait(false); App.Screenshot("Settings Page Light"); await SettingsPage.SelectTheme(PreferredTheme.Dark).ConfigureAwait(false); App.Screenshot("Settings Page Dark"); SettingsPage.TapBackButton(); await RepositoryPage.WaitForPageToLoad().ConfigureAwait(false); App.Screenshot("Repository Page Dark"); RepositoryPage.TapRepository(nameof(GitTrends)); await TrendsPage.WaitForPageToLoad().ConfigureAwait(false); App.TouchAndHoldCoordinates(screenRect.CenterX, screenRect.CenterY); App.Screenshot("Trends Page Dark"); TrendsPage.TapReferringSitesButton(); await ReferringSitesPage.WaitForPageToLoad().ConfigureAwait(false); App.Screenshot("Referring Sites Page Dark"); //Assert }
public async Task VerifyLanguagePicker() { //Arrange 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); 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.TapLoginButton(); tryDemoButtonText = SettingsPage.TryDemoButtonText; loginTitleLabelText_Connect = SettingsPage.LoginTitleText; await login().ConfigureAwait(false); SettingsPage.TapBackButton(); //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); } 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); } } }