public void LoginDialog_RememberMeSelectedLogout_EmailOnlyRemembered() { var ribbon = AddinRibbonController.Initialize(_app); //Login with Remember Me selected var loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); loginDlg.Email = AddinTestUtility.LoginEmail; loginDlg.Password = AddinTestUtility.LoginPsw; loginDlg.RememberMe = true; loginDlg.SelectOkVerifySuccess(); //Logout ribbon.InvokeButton(AddinRibbonButton.Logout); ribbon.ValidateSingleButtonState(AddinRibbonButton.Logout, RibbonButtonState.NonVisible); //Open login and expect only email is remembered ribbon.Refresh(); ribbon.InvokeButton(AddinRibbonButton.Login); loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); Assert.AreEqual(AddinTestUtility.LoginEmail, loginDlg.Email); Assert.AreEqual(string.Empty, loginDlg.Password); Assert.IsTrue(loginDlg.RememberMe); //End test logged-out / remember-me deselected loginDlg.Password = AddinTestUtility.LoginPsw; loginDlg.RememberMe = false; loginDlg.SelectOkVerifySuccess(); ribbon.InvokeButton(AddinRibbonButton.Logout); ribbon.ValidateSingleButtonState(AddinRibbonButton.Logout, RibbonButtonState.NonVisible); }
public void PublishDialog_ViaPublishItems_Success() { var ribbon = AddinRibbonController.Initialize(_app); //Insert an item to modify var ws = InsertOKToModifyItemData(ribbon, AddinTestUtility.ModifiableItemName, false); //getSecondInstance //Modify a cell var modValRow = 3; var modValCol = 2; int newVal = Convert.ToInt32(ExcelAutoUtility.GetCellValue(ws, modValRow, modValCol)) + 1; ExcelAutoUtility.SetCellValue(ws, modValRow, modValCol, newVal); //Publish //Get ribbon tab automation element again to get its newly-enabled instances of descendant buttons ribbon.Refresh(); ribbon.InvokeButton(AddinRibbonButton.PublishItems); var pubDlg = PublishDriver.FindFromParent(ribbon.ExcelElement); pubDlg.SelectPublishVerifySuccess(); //Verify ribbon.Refresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.OnPublishableItemCell)); ws = InsertOKToModifyItemData(ribbon, AddinTestUtility.ModifiableItemName, true); //getSecondInstance Assert.AreEqual(newVal, Convert.ToInt32(ExcelAutoUtility.GetCellValue(ws, modValRow, modValCol))); }
public void LoginDialog_RememberMeSelectedLogout_RememberEmailOnlyOnStartup() { var ribbon = AddinRibbonController.Initialize(_app); //Login and select Remember Me var loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); loginDlg.Email = AddinTestUtility.LoginEmail; loginDlg.Password = AddinTestUtility.LoginPsw; loginDlg.RememberMe = true; loginDlg.SelectOkVerifySuccess(); //Logout ribbon.InvokeButton(AddinRibbonButton.Logout); ribbon.ValidateSingleButtonState(AddinRibbonButton.Logout, RibbonButtonState.NonVisible); //Close excel _wb.Dispose(); _app.Dispose(); //Re-open excel _app = ExcelAutoUtility.OpenAndInstallAddin("TheAddIn", out _facade); _wb = new ExcelWorkbookWrapper(_app.App.Workbooks.Add()); ribbon = AddinRibbonController.Initialize(_app); //Validate not auto-logged-in, but email addr remembered loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); Assert.AreEqual(AddinTestUtility.LoginEmail, loginDlg.Email); Assert.AreEqual(string.Empty, loginDlg.Password); //Close dialog loginDlg.SelectCancelVerifySuccess(); }
public void HistoryDialog_Select_BrowserPageLaunched() { var ribbon = AddinRibbonController.Initialize(_app); //Login AddinTestUtility.LoginExpectSuccess(ribbon, AddinTestUtility.LoginEmail, AddinTestUtility.LoginPsw); //Insert item ribbon.InvokeButton(AddinRibbonButton.InsertItem); var itemDlg = InsertItemDriver.FindFromParent(ribbon.ExcelElement); itemDlg.SelectedItem = AddinTestUtility.ReadonlyItemName; itemDlg.SelectInsertVerifySuccess(); //Buttons including History now enabled //Open History link //Get ribbon tab automation element again to get its newly-enabled instances of descendant buttons ribbon.Refresh(); ribbon.InvokeButton(AddinRibbonButton.History); Thread.Sleep(AddinTestUtility.WaitForSelectedWebLinkDelay); }
public void InsertItemDialog_InsertViaOK_Success() { var ribbon = AddinRibbonController.Initialize(_app); //Login AddinTestUtility.LoginExpectSuccess(ribbon, AddinTestUtility.LoginEmail, AddinTestUtility.LoginPsw); //Insert item ribbon.InvokeButton(AddinRibbonButton.InsertItem); var itemDlg = InsertItemDriver.FindFromParent(ribbon.ExcelElement); itemDlg.SelectedItem = AddinTestUtility.ReadonlyItemName; itemDlg.SelectInsertVerifySuccess(); //Wait for item to be inserted in item-named worksheet var newlyCreatedItemSheet = ExcelAutoUtility.GetWorkSheetWithTimeout(_wb.Wb, AddinTestUtility.ReadonlyItemName, AddinTestUtility.WebServiceResponsePopulateTimeout); ribbon.Refresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.OnNonPublishableItemCell)); //Validate cell content from inserted item Assert.AreEqual("Sumlev", ExcelAutoUtility.GetCellValue(newlyCreatedItemSheet, 1, 1)); Assert.AreEqual(-10.42333312, ExcelAutoUtility.GetCellValue(newlyCreatedItemSheet, 58, 46)); }
private Excel.Worksheet InsertOKToModifyItemData(AddinRibbonController ribbon, string itemName, bool getSecondInstance) { //Login if (!getSecondInstance) { AddinTestUtility.LoginExpectSuccess(ribbon, AddinTestUtility.LoginEmail, AddinTestUtility.LoginPsw); } //Insert item ribbon.InvokeButton(AddinRibbonButton.InsertItem); var itemDlg = InsertItemDriver.FindFromParent(ribbon.ExcelElement); itemDlg.SelectedItem = itemName; itemDlg.AllowPublish = true; itemDlg.SelectInsertVerifySuccess(); //Wait for item to be inserted in item-named worksheet var sheetName = itemName; if (getSecondInstance) { sheetName += " 1"; } var ws = ExcelAutoUtility.GetWorkSheetWithTimeout(_wb.Wb, sheetName, AddinTestUtility.WebServiceResponsePopulateTimeout); //Wait for access to worksheet to be stable ExcelAutoUtility.WaitForNewWorksheetToBeAccessible(ws); return(ws); }
private void CreateItemDialogCreateSimpleItem(AddinRibbonController ribbon, string newItemName, string newItemDescr) { //Login AddinTestUtility.LoginExpectSuccess(ribbon, AddinTestUtility.LoginEmail, AddinTestUtility.LoginPsw); //Create a data range from which to create item var sheet = _wb.Wb.ActiveSheet as Excel.Worksheet; ExcelAutoUtility.SetCellValue(sheet, 1, 1, "colA"); ExcelAutoUtility.SetCellValue(sheet, 1, 2, "colB"); ExcelAutoUtility.SetCellValue(sheet, 2, 1, 1); ExcelAutoUtility.SetCellValue(sheet, 2, 2, 2); ExcelAutoUtility.SetCellValue(sheet, 3, 1, 3); ExcelAutoUtility.SetCellValue(sheet, 3, 2, 4); var range = sheet.get_Range("A1", "B3"); range.Select(); //Create item ribbon.InvokeButton(AddinRibbonButton.Create); var createItemDlg = CreateItemDriver.FindFromParent(ribbon.ExcelElement); createItemDlg.Name = newItemName; createItemDlg.Desc = newItemDescr; createItemDlg.SelectCreateVerifySuccess(); }
public void CreateItemDialog_CreateSimpleItem_Success() { var ribbon = AddinRibbonController.Initialize(_app); var newItemName = "uitest" + AddinTestUtility.GetUniqueSuffix(); var newItemDescr = "sample description"; CreateItemDialogCreateSimpleItem(ribbon, newItemName, newItemDescr); ribbon.Refresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.OnPublishableItemCell)); //Validate item got created by finding in Manage Items //Get ribbon control again after enabled states changed from above ribbon.Refresh(); ribbon.InvokeButton(AddinRibbonButton.ManageItems); var manageItemsDlg = ManageItemsDriver.FindFromParent(ribbon.ExcelElement); manageItemsDlg.SelectedItem = newItemName; //no ex means success manageItemsDlg.SelectCloseButtonVerifySuccess(); }
public void LoginDialog_RememberMeDeselected_NotLoggedInOnStartup() { var ribbon = AddinRibbonController.Initialize(_app); //Login and select Remember Me var loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); loginDlg.Email = AddinTestUtility.LoginEmail; loginDlg.Password = AddinTestUtility.LoginPsw; loginDlg.RememberMe = false; loginDlg.SelectOkVerifySuccess(); //Close excel _wb.Dispose(); _app.Dispose(); //Re-open excel _app = ExcelAutoUtility.OpenAndInstallAddin("TheAddIn", out _facade); _wb = new ExcelWorkbookWrapper(_app.App.Workbooks.Add()); //Validate not auto-logged-in ribbon = AddinRibbonController.Initialize(_app); Assert.AreEqual(RibbonButtonState.Enabled, ribbon.GetButtonState(AddinRibbonButton.Login)); }
public void RibbonBar_StartupLoggedOut_ItemButtonsDisabled() { var ribbon = AddinRibbonController.Initialize(_app); ribbon.Refresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.NotLoggedInButtonStates)); }
public void HelpDialog_Select_BrowserPageLaunched() { var ribbon = AddinRibbonController.Initialize(_app); //Open Help link ribbon.InvokeButton(AddinRibbonButton.Help); Thread.Sleep(AddinTestUtility.WaitForSelectedWebLinkDelay); }
public void RibbonBar_StartupLoggedIn_SelectedItemButtonsEnabled() { var ribbon = AddinRibbonController.Initialize(_app); //Login AddinTestUtility.LoginExpectSuccess(ribbon, AddinTestUtility.LoginEmail, AddinTestUtility.LoginPsw); ribbon.Refresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.LoggedInButtonStates)); }
public void AboutDialog_CloseViaOKButton_Success() { var ribbon = AddinRibbonController.Initialize(_app); //Open About dialog ribbon.InvokeButton(AddinRibbonButton.About); var aboutDlg = AboutDriver.FindFromParent(ribbon.ExcelElement); aboutDlg.SelectOKVerifySuccess(); }
public void CreateItemDialog_CreateSecondItemSameSheet_Success() { var ribbon = AddinRibbonController.Initialize(_app); //Login AddinTestUtility.LoginExpectSuccess(ribbon, AddinTestUtility.LoginEmail, AddinTestUtility.LoginPsw); //Insert item ribbon.InvokeButton(AddinRibbonButton.InsertItem); var itemDlg = InsertItemDriver.FindFromParent(ribbon.ExcelElement); itemDlg.SelectedItem = AddinTestUtility.ReadonlyItemName; itemDlg.AllowPublish = true; itemDlg.SelectInsertVerifySuccess(); //Wait for item to be inserted in item-named worksheet var newlyCreatedItemSheet = ExcelAutoUtility.GetWorkSheetWithTimeout(_wb.Wb, AddinTestUtility.ReadonlyItemName, AddinTestUtility.WebServiceResponsePopulateTimeout); ribbon.Refresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.OnPublishableItemCell)); ExcelAutoUtility.SetCellValue(newlyCreatedItemSheet, 2, 48, "singleCellValue"); var range = newlyCreatedItemSheet.get_Range("AV2", "AV2"); range.Select(); //Force ribbon refresh in this special case of selecting range programmatically via excel automation //which does not result in ribbon refresh ribbon.ForceRibbonRefresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.OnExistingAllowPublishItemSheetOffItemCell)); //Create the second item var newItemName = "uitest" + AddinTestUtility.GetUniqueSuffix(); var newItemDescr = "sample description #2"; ribbon.Refresh(); ribbon.InvokeButton(AddinRibbonButton.Create); var createItemDlg = CreateItemDriver.FindFromParent(ribbon.ExcelElement); createItemDlg.Name = newItemName; createItemDlg.Desc = newItemDescr; createItemDlg.SelectCreateVerifySuccess(); ribbon.Refresh(); Assert.AreEqual(string.Empty, ribbon.ValidateExpectedButtonStates(ExpectedButtonStates.OnPublishableItemCell)); }
public void LoginDialog_InvalidCredentials_ExpectedError() { var ribbon = AddinRibbonController.Initialize(_app); //Attempt login with invalid credential var loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); loginDlg.Email = AddinTestUtility.KnownInvalidLoginEmail; loginDlg.Password = AddinTestUtility.KnownInvalidLoginPassword; loginDlg.RememberMe = false; loginDlg.SelectOkVerifyFailure(LoginDriver.ErrorMessageType.Credentials); //Attempt login with valid credential (after the failed attempt above) loginDlg.Email = AddinTestUtility.LoginEmail; loginDlg.Password = AddinTestUtility.LoginPsw; loginDlg.RememberMe = false; loginDlg.SelectOkVerifySuccess(); }
public void EditDetailsDialog_ModifyNameAndDescription_Success() { var ribbon = AddinRibbonController.Initialize(_app); var newItemName = "uitest" + DateTime.Now.ToString("yyyyMMddHHmmssfff"); var newItemDescr = "sample description"; CreateItemDialogCreateSimpleItem(ribbon, newItemName, newItemDescr); //Test edit item details string modName = newItemName + "-mod"; string modDesc = newItemDescr + "-mod"; //Modify { //Get ribbon control again after enabled states changed from above ribbon.Refresh(); ribbon.InvokeButton(AddinRibbonButton.EditDetails); var editDetailsDlg = EditDetailsDriver.FindFromParent(ribbon.ExcelElement); //Validate start values Assert.AreEqual(newItemName, editDetailsDlg.Name); Assert.AreEqual(newItemDescr, editDetailsDlg.Desc); //Modify editDetailsDlg.Name = modName; editDetailsDlg.Desc = modDesc; editDetailsDlg.SelectOKVerifySuccess(); } //Verify mods { ribbon.InvokeButton(AddinRibbonButton.EditDetails); var editDetailsDlg = EditDetailsDriver.FindFromParent(ribbon.ExcelElement); //Validate Assert.AreEqual(modName, editDetailsDlg.Name); Assert.AreEqual(modDesc, editDetailsDlg.Desc); } }
public void LoginDialog_RememberMeSelected_LoggedInOnStartup() { var ribbon = AddinRibbonController.Initialize(_app); //Login and select Remember Me var loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); loginDlg.Email = AddinTestUtility.LoginEmail; loginDlg.Password = AddinTestUtility.LoginPsw; loginDlg.RememberMe = true; loginDlg.SelectOkVerifySuccess(); //Close excel _wb.Dispose(); _app.Dispose(); //Re-open excel _app = ExcelAutoUtility.OpenAndInstallAddin("TheAddIn", out _facade); _wb = new ExcelWorkbookWrapper(_app.App.Workbooks.Add()); //Validate auto-logged-in ribbon = AddinRibbonController.Initialize(_app, true); //disableWaitForRibbonReady ribbon.PostInitializeSpecialCaseAutologgedIn(); ribbon.ValidateSingleButtonState(AddinRibbonButton.Logout, RibbonButtonState.Enabled, AddinTestUtility.AuthenticationTimeout); //Leave test in a logged-out / non-remember-me state ribbon.InvokeButton(AddinRibbonButton.Logout); ribbon.ValidateSingleButtonState(AddinRibbonButton.Logout, RibbonButtonState.NonVisible); loginDlg = AddinTestUtility.OpenLoginDialog(ribbon); loginDlg.Email = AddinTestUtility.LoginEmail; loginDlg.Password = AddinTestUtility.LoginPsw; loginDlg.RememberMe = false; loginDlg.SelectOkVerifySuccess(); ribbon.InvokeButton(AddinRibbonButton.Logout); ribbon.ValidateSingleButtonState(AddinRibbonButton.Logout, RibbonButtonState.NonVisible); }
public void CreateAccountDialog_CreateUnconfirmedAccount_FailsLogin() { var ribbon = AddinRibbonController.Initialize(_app); //Open Login dialog var loginDialog = AddinTestUtility.OpenLoginDialog(ribbon); //Open Create Account dialog and create a unique one var createAccountDialog = loginDialog.SelectCreateAccount(); createAccountDialog.Name = "non unique test account name"; var uniqueAccountName = "testacct" + AddinTestUtility.GetUniqueSuffix() + "@testdomain.com"; createAccountDialog.Email = uniqueAccountName; var accountPassword = "******"; createAccountDialog.Password = accountPassword; //Ensure terms is required Assert.IsFalse(createAccountDialog.RegisterEnabled); //Accept terms then register createAccountDialog.Terms = true; var messageBoxDialog = createAccountDialog.SelectRegister(); messageBoxDialog.SelectOKVerifySuccess(); //Attempt to login with above unconfirmed account, expect failure loginDialog = LoginDriver.FindFromParent(ribbon.ExcelElement); loginDialog.Email = uniqueAccountName; loginDialog.Password = accountPassword; loginDialog.SelectOkVerifyFailure(LoginDriver.ErrorMessageType.Credentials); //Close login dialog loginDialog.SelectCancelVerifySuccess(); }