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); }
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 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 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 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)); }
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); }
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 static void ClassInitialize(TestContext context) { AddinTestUtility.SetEnvironmentVars(AddinTestUtility.DemoUrl); if (Debugger.IsAttached) //use excel-per-instance only when running from VS - blows up running automated from console { _app = ExcelAutoUtility.OpenAndInstallAddin("TheAddIn", out _facade); } }
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 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 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(); }