test(BRIDGE-232): Add Home Menu Bridge UI e2e automation tests

This commit is contained in:
Gordana Zafirova
2024-10-21 12:48:03 +00:00
parent 7021b1c2ea
commit 9cdc40ca05
6 changed files with 512 additions and 3 deletions

View File

@ -0,0 +1,64 @@
using FlaUI.Core.AutomationElements;
using FlaUI.Core.Definitions;
using ProtonMailBridge.UI.Tests.TestsHelper;
using FlaUI.Core.Input;
using System.DirectoryServices;
using System.Net;
namespace ProtonMailBridge.UI.Tests.Results
{
public class HelpMenuResult : UIActions
{
private AutomationElement NotificationWindow => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Window));
private AutomationElement[] TextFields => Window.FindAllDescendants(cf => cf.ByControlType(ControlType.Text));
private TextBox HelpText => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Help"))).AsTextBox();
private TextBox BridgeIsUpToDate => NotificationWindow.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text)).AsTextBox();
private AutomationElement ChromeTab => ChromeWindow.FindFirstDescendant(cf => cf.ByControlType(ControlType.Document));
private TextBox ChromeText => ChromeTab.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("We can help you with every step of using Proton Mail Bridge."))).AsTextBox();
//private AutomationElement AdressBar => FileExplorerWindow.FindFirstDescendant(cf => cf.ByControlType(ControlType.Group).And(cf.ByAutomationId("PART_BreadcrumbBar")));
private AutomationElement AdressPane => FileExplorerWindow.FindFirstDescendant(cf => cf.ByControlType(ControlType.Pane).And(cf.ByClassName("Microsoft.UI.Content.DesktopChildSiteBridge")));
private AutomationElement AdressBar => AdressPane.FindFirstDescendant(cf =>cf.ByControlType(ControlType.Group).And(cf.ByAutomationId("PART_BreadcrumbBar")));
private AutomationElement[] Folders => AdressBar.FindAllDescendants(cf => cf.ByControlType(ControlType.SplitButton));
private TextBox SendReportConfirmation => NotificationWindow.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Thank you for the report. We'll get back to you as soon as we can."))).AsTextBox();
public HelpMenuResult CheckIfUserOpenedHelpMenu()
{
Assert.That(HelpText.IsAvailable, Is.True);
return this;
}
public HelpMenuResult CheckBridgeIsUpToDateNotification()
{
Assert.That(BridgeIsUpToDate.IsAvailable, Is.True);
return this;
}
public HelpMenuResult CheckHelpLinkIsOpen()
{
Assert.That(ChromeText.IsAvailable, Is.True);
return this;
}
public HelpMenuResult CheckBridgeLogsAreOpen()
{
var adressName = "";
foreach (var folder in Folders)
{
var folderName = folder.Name;
adressName = System.IO.Path.Combine(adressName, folderName);
}
var expectedPath = "\\AppData\\Roaming\\protonmail\\bridge-v3\\logs";
Assert.That(adressName.Contains(expectedPath), Is.True);
return this;
}
public HelpMenuResult CheckIfProblemIsSuccReported()
{
Assert.That(SendReportConfirmation.IsAvailable, Is.True);
return this;
}
}
}

View File

@ -22,7 +22,7 @@ namespace ProtonMailBridge.UI.Tests.Results
private TextBox EnterEmailOrUsernameErrorText => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Enter email or username"))).AsTextBox(); private TextBox EnterEmailOrUsernameErrorText => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Enter email or username"))).AsTextBox();
private TextBox EnterPasswordErrorText => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Enter password"))).AsTextBox(); private TextBox EnterPasswordErrorText => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Enter password"))).AsTextBox();
private TextBox ConnectedStateText => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Connected"))).AsTextBox(); private TextBox ConnectedStateText => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("Connected"))).AsTextBox();
public HomeResult CheckConnectedState() public HomeResult CheckConnectedState()
{ {
Assert.That(ConnectedStateText.IsAvailable, Is.True); Assert.That(ConnectedStateText.IsAvailable, Is.True);

View File

@ -5,6 +5,7 @@ using FlaUI.Core;
using FlaUI.UIA3; using FlaUI.UIA3;
using ProtonMailBridge.UI.Tests.TestsHelper; using ProtonMailBridge.UI.Tests.TestsHelper;
using FlaUI.Core.Input; using FlaUI.Core.Input;
using System.Diagnostics;
namespace ProtonMailBridge.UI.Tests namespace ProtonMailBridge.UI.Tests
{ {
@ -14,15 +15,58 @@ namespace ProtonMailBridge.UI.Tests
public static Application App; public static Application App;
protected static Application Service; protected static Application Service;
protected static Window Window; protected static Window Window;
protected static Window ChromeWindow;
protected static Window FileExplorerWindow;
protected static void ClientCleanup() protected static void ClientCleanup()
{ {
App.Kill(); App.Kill();
App.Dispose(); App.Dispose();
// Give some time to properly exit the app // Give some time to properly exit the app
Thread.Sleep(5000); Thread.Sleep(10000);
} }
public static void switchToFileExplorerWindow()
{
var _automation = new UIA3Automation();
var desktop = _automation.GetDesktop();
var _explorerWindow = desktop.FindFirstDescendant(cf => cf.ByClassName("CabinetWClass"));
// If the File Explorer window is not found, fail the test
if (_explorerWindow == null)
{
throw new Exception("File Explorer window not found.");
}
// Cast the found element to a Window object
FileExplorerWindow = _explorerWindow.AsWindow();
// Focus on the File Explorer window
FileExplorerWindow.Focus();
}
public static void switchToChromeWindow()
{
var _automation = new UIA3Automation();
var desktop = _automation.GetDesktop();
var _chromeWindow = desktop.FindFirstDescendant(cf => cf.ByClassName("Chrome_WidgetWin_1"));
// If the Chrome window is not found, fail the test
if (_chromeWindow == null)
{
throw new Exception("Google Chrome window not found.");
}
// Cast the found element to a Window object
ChromeWindow = _chromeWindow.AsWindow();
// Focus on the Chrome window
ChromeWindow.Focus();
}
public static void LaunchApp() public static void LaunchApp()
{ {
string appExecutable = TestData.AppExecutable; string appExecutable = TestData.AppExecutable;

View File

@ -0,0 +1,141 @@
using NUnit.Framework;
using ProtonMailBridge.UI.Tests.TestsHelper;
using ProtonMailBridge.UI.Tests.Windows;
using ProtonMailBridge.UI.Tests.Results;
using FlaUI.Core.Input;
using FlaUI.Core.AutomationElements;
using FlaUI.UIA3;
namespace ProtonMailBridge.UI.Tests.Tests
{
[TestFixture]
public class HelpMenuTests : TestSession
{
private readonly LoginWindow _loginWindow = new();
private readonly HomeWindow _mainWindow = new();
private readonly HelpMenuResult _helpMenuResult = new();
private readonly HelpMenuWindow _helpMenuWindow = new();
private readonly HomeResult _homeResult = new();
[SetUp]
public void TestInitialize()
{
LaunchApp();
}
[Test]
public void OpenHelpMenuAndSwitchBackToAccountView()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickBackFromHelpMenu();
Thread.Sleep(2000);
_homeResult.CheckIfLoggedIn();
}
[Test]
public void OpenGoToHelpTopics()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickGoToHelpTopics();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(3));
switchToChromeWindow();
_helpMenuResult.CheckHelpLinkIsOpen();
Window.Focus();
_helpMenuWindow.ClickBackFromHelpMenu();
}
[Test]
public void CheckForUpdates()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickCheckNowButton();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(3));
_helpMenuResult.CheckBridgeIsUpToDateNotification();
_helpMenuWindow.ConfirmNotification();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(1));
_helpMenuWindow.ClickBackFromHelpMenu();
}
[Test]
public void OpenLogs()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickLogsButton();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(3));
switchToFileExplorerWindow();
_helpMenuResult.CheckBridgeLogsAreOpen();
Window.Focus();
_helpMenuWindow.ClickBackFromHelpMenu();
}
[Test]
public void OpenMissingEmailsReportProblem()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickReportProblemButton();
_helpMenuWindow.ClickICannotFindEmailsInEmailClient();
_helpMenuWindow.EnterMissingEmailsProblemDetails();
_helpMenuResult.CheckIfProblemIsSuccReported();
_helpMenuWindow.ConfirmNotification();
}
[Test]
public void OpenNotAbleToSendEmailsReportProblem()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickReportProblemButton();
_helpMenuWindow.ClickNotAbleToSendEmails();
_helpMenuWindow.EnterNotAbleToSendEmailProblemDetails();
_helpMenuResult.CheckIfProblemIsSuccReported();
_helpMenuWindow.ConfirmNotification();
}
[Test]
public void OpenBridgeIsNotStartingCorrectlyReportProblem()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickReportProblemButton();
_helpMenuWindow.ClickBridgeIsNotStartingCorrectly();
_helpMenuWindow.EnterBridgeIsNotStartingCorrectlyProblemDetails();
_helpMenuResult.CheckIfProblemIsSuccReported();
_helpMenuWindow.ConfirmNotification();
}
[Test]
public void OpenBridgeIsRunningSlowReportProblem()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickReportProblemButton();
_helpMenuWindow.ClickBridgeIsRunningSlow();
_helpMenuWindow.EnterBridgeIsRunningSlowProblemDetails();
_helpMenuResult.CheckIfProblemIsSuccReported();
_helpMenuWindow.ConfirmNotification();
}
[Test]
public void OpenSomethingElseReportProblem()
{
_loginWindow.SignIn(TestUserData.GetPaidUser());
_helpMenuWindow.ClickHelpButton();
_helpMenuWindow.ClickReportProblemButton();
_helpMenuWindow.ClickSomethingElse();
_helpMenuWindow.EnterSomethingElseProblemDetails();
_helpMenuResult.CheckIfProblemIsSuccReported();
_helpMenuWindow.ConfirmNotification();
}
[TearDown]
public void TestCleanup()
{
_mainWindow.RemoveAccount();
ClientCleanup();
}
}
}

View File

@ -11,6 +11,6 @@ namespace ProtonMailBridge.UI.Tests.TestsHelper
public static TimeSpan ThirtySecondsTimeout => TimeSpan.FromSeconds(30); public static TimeSpan ThirtySecondsTimeout => TimeSpan.FromSeconds(30);
public static TimeSpan OneMinuteTimeout => TimeSpan.FromSeconds(60); public static TimeSpan OneMinuteTimeout => TimeSpan.FromSeconds(60);
public static TimeSpan RetryInterval => TimeSpan.FromMilliseconds(1000); public static TimeSpan RetryInterval => TimeSpan.FromMilliseconds(1000);
public static string AppExecutable => "C:\\Program Files\\Proton AG\\Proton Mail Bridge\\bridge-gui.exe"; public static string AppExecutable => "C:\\Program Files\\Proton AG\\Proton Mail Bridge\\proton-bridge.exe";
} }
} }

View File

@ -0,0 +1,260 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FlaUI.Core.AutomationElements;
using FlaUI.Core.AutomationElements.Scrolling;
using FlaUI.Core.Definitions;
using FlaUI.Core.Input;
using FlaUI.Core.WindowsAPI;
using Microsoft.VisualBasic.Devices;
using NUnit.Framework.Legacy;
using ProtonMailBridge.UI.Tests.Results;
using ProtonMailBridge.UI.Tests.TestsHelper;
using Keyboard = FlaUI.Core.Input.Keyboard;
using Mouse = FlaUI.Core.Input.Mouse;
namespace ProtonMailBridge.UI.Tests.Windows
{
public class HelpMenuWindow : UIActions
{
private AutomationElement[] InputFields => Window.FindAllDescendants(cf => cf.ByControlType(ControlType.Edit));
private AutomationElement[] HomeButtons => Window.FindAllDescendants(cf => cf.ByControlType(ControlType.Button));
private AutomationElement NotificationWindow => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Window));
private AutomationElement[] ReportProblemPane => Window.FindAllDescendants(cf => cf.ByControlType(ControlType.Pane));
private Button HelpButton => HomeButtons[3].AsButton();
private Button BackToAccountViewButton => HomeButtons[11].AsButton();
private Button GoToHelpTopics => HomeButtons[7].AsButton();
private Button CheckNow => HomeButtons[8].AsButton();
private Button ConfirmNotificationButton => NotificationWindow.FindFirstDescendant(cf => cf.ByControlType(ControlType.Button).And(cf.ByName("OK"))).AsButton();
private Button LogsButton => HomeButtons[9].AsButton();
private Button ReportProblemButton => HomeButtons[10].AsButton();
private Button ICannotFindEmailInClient => HomeButtons[7].AsButton();
private TextBox DescriptionOnWhatHappened => Window.FindFirstDescendant(cf => cf.ByControlType(ControlType.Edit)).AsTextBox();
private RadioButton MissingEmails => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.RadioButton).And(cf.ByName("Old emails are missing"))).AsRadioButton();
private RadioButton FindEmails => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.RadioButton).And(cf.ByName("Yes"))).AsRadioButton();
private CheckBox VPNSoftware => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.CheckBox).And(cf.ByName("VPN"))).AsCheckBox();
private CheckBox FirewallSoftware => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.CheckBox).And(cf.ByName("Firewall"))).AsCheckBox();
private Button ContinueToReportButton => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.Button).And(cf.ByName("Continue"))).AsButton();
private AutomationElement ScrollBarFirstPane => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.ScrollBar));
private Button SendReportButton => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.Button).And(cf.ByName("Send"))).AsButton();
private Button NotAbleToSendEmailsButton => HomeButtons[8].AsButton();
private Button BridgeIsNotStartingCorrectlyButton => HomeButtons[9].AsButton();
private TextBox StepByStepActionsForBridgeIsNotStartingCorrectly => ReportProblemPane[2].AsTextBox();
private TextBox IssuesLastOccurence => ReportProblemPane[3].AsTextBox();
private TextBox QuestionFocusWhenWasLastOccurence => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("When did the issue last occur? Is it repeating?"))).AsTextBox();
private TextBox QuestionFocusOnStepByStepActions => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.Text).And(cf.ByName("What were the step-by-step actions you took that led to this happening?"))).AsTextBox();
private Button BridgeIsRunningSlowButton => HomeButtons[10].AsButton();
private TextBox StepByStepActionsForBridgeIsSlow => ReportProblemPane[2].FindFirstDescendant(cf => cf.ByControlType(ControlType.Edit)).AsTextBox();
private CheckBox ExperiencingIssues => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.CheckBox).And(cf.ByName("Emails arrive with a delay"))).AsCheckBox();
private Button SomethingElseButton => HomeButtons[11].AsButton();
private TextBox StepByStepActionsForSomethingElse => ReportProblemPane[3].AsTextBox();
private TextBox IssuesLastOccurenceInSomethingElseProblemSection => ReportProblemPane[4].AsTextBox();
private TextBox OverviewOfReportProblemDetails => ReportProblemPane[1].FindFirstDescendant(cf => cf.ByControlType(ControlType.Edit)).AsTextBox();
private TextBox ContactEmailInReportProblem => ReportProblemPane[0].FindAllDescendants(cf => cf.ByControlType(ControlType.Edit)).ToList()[1].AsTextBox();
public CheckBox IncludeLogs => ReportProblemPane[0].FindFirstDescendant(cf => cf.ByControlType(ControlType.CheckBox)).AsCheckBox();
public HelpMenuWindow ClickHelpButton()
{
HelpButton.Click();
return this;
}
public HelpMenuWindow ClickBackFromHelpMenu()
{
BackToAccountViewButton.Click();
return this;
}
public HelpMenuWindow ClickGoToHelpTopics()
{
GoToHelpTopics.Click();
return this;
}
public HelpMenuWindow ClickCheckNowButton()
{
CheckNow.Click();
return this;
}
public HelpMenuWindow ConfirmNotification()
{
ConfirmNotificationButton.Click();
return this;
}
public HelpMenuWindow ClickLogsButton()
{
LogsButton.Click();
return this;
}
public HelpMenuWindow ClickReportProblemButton()
{
ReportProblemButton.Click();
return this;
}
public HelpMenuWindow ClickICannotFindEmailsInEmailClient()
{
ICannotFindEmailInClient.Click();
return this;
}
public HelpMenuWindow ClickToFillQuestionDescription()
{
DescriptionOnWhatHappened.Click();
return this;
}
public HelpMenuWindow ClickNotAbleToSendEmails()
{
NotAbleToSendEmailsButton.Click();
return this;
}
public HelpMenuWindow ClickBridgeIsNotStartingCorrectly()
{
BridgeIsNotStartingCorrectlyButton.Click();
return this;
}
public HelpMenuWindow ClickBridgeIsRunningSlow()
{
BridgeIsRunningSlowButton.Click();
return this;
}
public HelpMenuWindow ClickSomethingElse()
{
SomethingElseButton.Click();
return this;
}
public HelpMenuWindow EnterMissingEmailsProblemDetails()
{
DescriptionOnWhatHappened.Enter("I am missing emails in my email client.");
MissingEmails.Click();
FindEmails.Click();
VPNSoftware.IsChecked = true;
FirewallSoftware.IsChecked = true;
Mouse.Scroll(-20);
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(1));
ContinueToReportButton.Click();
VerifyOverviewOfMissingEmailsDetails();
VerifyContactEmail();
VerifyIncludeLogsIsChecked();
SendReportButton.Click();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(5));
return this;
}
public HelpMenuWindow EnterNotAbleToSendEmailProblemDetails()
{
DescriptionOnWhatHappened.Enter("I am not able to send emails.");
StepByStepActionsForBridgeIsNotStartingCorrectly.Enter("I compose a message, I click Send and I get an error that the message cannot be sent.");
IssuesLastOccurence.Enter("It happened this morning for the first time.");
QuestionFocusWhenWasLastOccurence.Click();
VPNSoftware.IsChecked = true;
FirewallSoftware.IsChecked = true;
Mouse.Scroll(-20);
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(1));
ContinueToReportButton.Click();
VerifyOverviewOfNotAbleToSendEmailsDetails();
VerifyContactEmail();
VerifyIncludeLogsIsChecked();
SendReportButton.Click();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(5));
return this;
}
public HelpMenuWindow EnterBridgeIsNotStartingCorrectlyProblemDetails()
{
DescriptionOnWhatHappened.Enter("Bridge is not starting correctly.");
StepByStepActionsForBridgeIsNotStartingCorrectly.Enter("I turned on my device, and Bridge couldn't launch, I received an error.");
IssuesLastOccurence.Enter("It occured today for the first time and I cannot fix it.");
QuestionFocusWhenWasLastOccurence.Click();
VPNSoftware.IsChecked = true;
FirewallSoftware.IsChecked = true;
Mouse.Scroll(-20);
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(1));
ContinueToReportButton.Click();
VerifyOverviewOfBridgeNotStartingCorrectlyDetails();
VerifyContactEmail();
VerifyIncludeLogsIsChecked();
SendReportButton.Click();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(5));
return this;
}
public HelpMenuWindow EnterBridgeIsRunningSlowProblemDetails()
{
DescriptionOnWhatHappened.Enter("Bridge is really slow.");
StepByStepActionsForBridgeIsSlow.Enter("I started Bridge, added an account and the sync takes forever.");
ExperiencingIssues.IsChecked = true;
VPNSoftware.IsChecked = true;
FirewallSoftware.IsChecked = true;
Mouse.Scroll(-20);
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(1));
ContinueToReportButton.Click();
VerifyOverviewOfBridgeIsRunningSlowDetails();
VerifyContactEmail();
VerifyIncludeLogsIsChecked();
SendReportButton.Click();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(5));
return this;
}
public HelpMenuWindow EnterSomethingElseProblemDetails()
{
DescriptionOnWhatHappened.Enter("I don't receive emails.");
StepByStepActionsForBridgeIsSlow.Enter("I am expecting an email that is sent, but it hasn't arrived in my Inbox.");
StepByStepActionsForSomethingElse.Enter("I click Get messages, but the emails that are sent to me do not arrive.");
QuestionFocusOnStepByStepActions.Click();
Mouse.Scroll(-20);
IssuesLastOccurenceInSomethingElseProblemSection.Enter("Issue started happening today.");
QuestionFocusWhenWasLastOccurence.Click();
ContinueToReportButton.Click();
VerifyOverviewOfSomethingElseDetails();
VerifyContactEmail();
VerifyIncludeLogsIsChecked();
SendReportButton.Click();
Wait.UntilInputIsProcessed(TimeSpan.FromSeconds(5));
return this;
}
public HelpMenuWindow VerifyOverviewOfMissingEmailsDetails()
{
Assert.That(OverviewOfReportProblemDetails.Text, Does.Contain("Please describe what happened and include any error messages.\nI am missing emails in my email client.\nAre you missing emails from the email client or not receiving new ones?\nOld emails are missing\nCan you find the emails in the web/mobile application?\nYes\nAre you running any of these software? Select all that apply.\nVPN, Firewall"));
return this;
}
public HelpMenuWindow VerifyOverviewOfNotAbleToSendEmailsDetails()
{
Assert.That(OverviewOfReportProblemDetails.Text, Does.Contain("Please describe what happened and include any error messages.\nI am not able to send emails.\nWhat were the step-by-step actions you took that led to this happening?\nI compose a message, I click Send and I get an error that the message cannot be sent.\nWhen did the issue last occur? Is it repeating?\nIt happened this morning for the first time.\nAre you running any of these software? Select all that apply.\nVPN, Firewall"));
return this;
}
public HelpMenuWindow VerifyOverviewOfBridgeNotStartingCorrectlyDetails()
{
Assert.That(OverviewOfReportProblemDetails.Text, Does.Contain("Please describe what happened and include any error messages.\nBridge is not starting correctly.\nWhat were the step-by-step actions you took that led to this happening?\nI turned on my device, and Bridge couldn't launch, I received an error.\nWhen did the issue last occur? Is it repeating?\nIt occured today for the first time and I cannot fix it.\nAre you running any of these software? Select all that apply.\nVPN, Firewall"));
return this;
}
public HelpMenuWindow VerifyOverviewOfBridgeIsRunningSlowDetails()
{
Assert.That(OverviewOfReportProblemDetails.Text, Does.Contain("Please describe what happened and include any error messages.\nBridge is really slow.\nWhat were the step-by-step actions you took that led to this happening?\nI started Bridge, added an account and the sync takes forever.\nWhich of these issues are you experiencing?\nEmails arrive with a delay\nAre you running any of these software? Select all that apply.\nVPN, Firewall"));
return this;
}
public HelpMenuWindow VerifyOverviewOfSomethingElseDetails()
{
Assert.That(OverviewOfReportProblemDetails.Text, Does.Contain("Please describe what happened and include any error messages.\nI don't receive emails.\nWhat did you want or expect to happen?\nI am expecting an email that is sent, but it hasn't arrived in my Inbox.\nWhat were the step-by-step actions you took that led to this happening?\nI click Get messages, but the emails that are sent to me do not arrive.\nWhen did the issue last occur? Is it repeating?\nIssue started happening today."));
return this;
}
public HelpMenuWindow VerifyContactEmail()
{
Assert.That(ContactEmailInReportProblem.Text, Is.EqualTo(TestUserData.GetPaidUser().Username));
return this;
}
public HelpMenuWindow VerifyIncludeLogsIsChecked()
{
Assert.That(IncludeLogs.IsChecked, Is.True);
return this;
}
}
}