public static AutomationElement GetAddInRibbonTabElement(AutomationElement excelElement, ExcelAppWrapper app) { const string TheAddInTabControlName = "The AddIn"; var ribbonTabs = UIAUtility.FindElementByNameWithTimeout(excelElement, "Ribbon Tabs", AddinTestUtility.RibbonButtonsBecomeActivatedTimeout, TreeScope.Descendants); var deTab = UIAUtility.FindElementByNameWithTimeout(ribbonTabs, TheAddInTabControlName, TimeSpan.FromSeconds(5), TreeScope.Descendants); //Note Descendants needed here only for excel 2007 if (app.IsVersion2010OrAbove()) { UIAUtility.SelectMenu(deTab); } else { UIAUtility.PressButton(deTab); } var lowerRibbon = UIAUtility.FindElementByNameWithTimeout(excelElement, "Lower Ribbon", AddinTestUtility.RibbonButtonsBecomeActivatedTimeout, TreeScope.Descendants); return UIAUtility.FindElementByNameWithTimeout(lowerRibbon, TheAddInTabControlName, AddinTestUtility.RibbonButtonsBecomeActivatedTimeout, TreeScope.Descendants); //Note Descendants needed here only for excel 2007 }
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 Initialize() { if (!Debugger.IsAttached) //use excel-per-instance only when running from VS - blows up running automated from console { _app = ExcelAutoUtility.OpenAndInstallAddin("TheAddIn", out _facade); } _wb = new ExcelWorkbookWrapper(_app.App.Workbooks.Add()); //Ensure logged out at start _facade.Logout(); }
private AddinRibbonController(ExcelAppWrapper app, bool disableWaitForRibbonReady) { _app = app; _excel = ExcelAutoUtility.GetAppElementFromApp(_app.App.Application); _addinRibbonCtl = AddinTestUtility.GetAddInRibbonTabElement(_excel, app); if ( ! disableWaitForRibbonReady) { WaitForRibbonReady(); } }
private AddinRibbonController(ExcelAppWrapper app, bool disableWaitForRibbonReady) { _app = app; _excel = ExcelAutoUtility.GetAppElementFromApp(_app.App.Application); _addinRibbonCtl = AddinTestUtility.GetAddInRibbonTabElement(_excel, app); if (!disableWaitForRibbonReady) { WaitForRibbonReady(); } }
public static ExcelAppWrapper OpenAndInstallAddin(string addinName, out dynamic facade) { var app = new ExcelAppWrapper(new Excel.Application()); app.App.Visible = true; try { object addInNameObjType = addinName; var addin = app.App.COMAddIns.Item(ref addInNameObjType); // facade is an object of type IAddInFaçade, but we need to use // late binding for everything to work properly. facade = addin.Object; return app; } catch (System.Runtime.InteropServices.COMException) { app.Dispose(); throw; } }
public static ExcelAppWrapper OpenAndInstallAddin(string addinName, out dynamic facade) { var app = new ExcelAppWrapper(new Excel.Application()); app.App.Visible = true; try { object addInNameObjType = addinName; var addin = app.App.COMAddIns.Item(ref addInNameObjType); // facade is an object of type IAddInFaçade, but we need to use // late binding for everything to work properly. facade = addin.Object; return(app); } catch (System.Runtime.InteropServices.COMException) { app.Dispose(); throw; } }
public static AutomationElement GetAddInRibbonTabElement(AutomationElement excelElement, ExcelAppWrapper app) { const string TheAddInTabControlName = "The AddIn"; var ribbonTabs = UIAUtility.FindElementByNameWithTimeout(excelElement, "Ribbon Tabs", AddinTestUtility.RibbonButtonsBecomeActivatedTimeout, TreeScope.Descendants); var deTab = UIAUtility.FindElementByNameWithTimeout(ribbonTabs, TheAddInTabControlName, TimeSpan.FromSeconds(5), TreeScope.Descendants); //Note Descendants needed here only for excel 2007 if (app.IsVersion2010OrAbove()) { UIAUtility.SelectMenu(deTab); } else { UIAUtility.PressButton(deTab); } var lowerRibbon = UIAUtility.FindElementByNameWithTimeout(excelElement, "Lower Ribbon", AddinTestUtility.RibbonButtonsBecomeActivatedTimeout, TreeScope.Descendants); return(UIAUtility.FindElementByNameWithTimeout(lowerRibbon, TheAddInTabControlName, AddinTestUtility.RibbonButtonsBecomeActivatedTimeout, TreeScope.Descendants)); //Note Descendants needed here only for excel 2007 }
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_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 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 static AddinRibbonController Initialize(ExcelAppWrapper app, bool disableWaitForRibbonReady) { return new AddinRibbonController(app, disableWaitForRibbonReady); }
public static AddinRibbonController Initialize(ExcelAppWrapper app) { return Initialize(app, false); //disableWaitForRibbonReady }
public static AddinRibbonController Initialize(ExcelAppWrapper app, bool disableWaitForRibbonReady) { return(new AddinRibbonController(app, disableWaitForRibbonReady)); }
public static AddinRibbonController Initialize(ExcelAppWrapper app) { return(Initialize(app, false)); //disableWaitForRibbonReady }