public void TestGetFillMethodForMultipleSelectControl() { var option = new Mock <IWebElement>(MockBehavior.Strict); option.SetupGet(o => o.Selected).Returns(false); this.SetupClick(option); var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("select"); element.Setup(e => e.GetAttribute("multiple")).Returns("true"); element.Setup(e => e.FindElements(By.TagName("option"))) .Returns(new ReadOnlyCollection <IWebElement>(new[] { option.Object })); element.Setup(e => e.FindElements(By.XPath(".//option[normalize-space(.) = \"Selected Item\"]"))) .Returns(new ReadOnlyCollection <IWebElement>(new[] { option.Object })); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "Selected Item"); element.VerifyAll(); }
public void TestGetElementOptionsForComboBox() { var optionElement = new Mock <IWebElement>(MockBehavior.Strict); optionElement.SetupGet(e => e.Text).Returns("Option 1"); optionElement.Setup(e => e.GetAttribute("value")).Returns("0"); var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("select"); element.Setup(e => e.GetAttribute("multiple")).Returns("false"); element.Setup(e => e.FindElements(By.TagName("option"))) .Returns((new IWebElement[] { optionElement.Object }).ToList().AsReadOnly()); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetElementOptions(element.Object); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count); var option = result.First(); Assert.AreEqual("0", option.Value); Assert.AreEqual("Option 1", option.Text); element.VerifyAll(); }
public void TestGetPageType() { var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.PageType; Assert.AreEqual(typeof(NativePage), result); }
public void TestGetNativePage() { var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.GetNativePage<NativePage>(); Assert.AreSame(nativePage, result); }
public void TestGetPageType() { var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.PageType; Assert.AreEqual(typeof(NativePage), result); }
public void TestGetNativePage() { var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetNativePage <NativePage>(); Assert.AreSame(nativePage, result); }
protected Task ExecuteAsync(NativePage destination) { switch (Action) { case NavigationAction.Push: { #if __IOS__ var nav = NativeSource.NavigationController; if (nav == null) { throw new InvalidOperationException("Cannot Push if source is not contained in NavigationPage or UINavigationController"); } // FIXME: Taskify nav.PushViewController(destination, true); return(Task.CompletedTask); #else #error Unknown platform #endif } case NavigationAction.Modal: { #if __IOS__ return(NativeSource.PresentViewControllerAsync(destination, true)); #else #error Unknown platform #endif } case NavigationAction.Pop: { #if __IOS__ var pres = NativeSource.PresentingViewController; if (pres != null) { return(pres.DismissViewControllerAsync(true)); } var nav = NativeSource.NavigationController; if (nav == null) { throw new InvalidOperationException("Cannot Pop if source is not pushed or modal"); } // FIXME: Taskify nav.PopViewController(true); return(Task.CompletedTask); #else #error Unknown platform #endif } //case NavigationAction.MainPage: } throw new NotImplementedException(Action.ToString()); }
Task ExecuteNative(NativePage native) { #if __IOS__ // KLUDGE! Size the destination to the source to ensure things look right if (native != null) { native.View.Frame = NativeSource.View.Frame; native.View.LayoutIfNeeded(); } #endif return(ExecuteAsync(native)); }
public void TestGetPageFromElement() { var element = new Mock<IWebElement>(MockBehavior.Strict); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.GetPageFromElement(element.Object); Assert.IsNotNull(result); element.VerifyAll(); }
public void TestGetPageFromElement() { var element = new Mock <IWebElement>(MockBehavior.Strict); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetPageFromElement(element.Object); Assert.IsNotNull(result); element.VerifyAll(); }
public void TestElementEnabledCheckWhenStaleElementReferenceReturnsFalse() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Throws <StaleElementReferenceException>(); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.ElementEnabledCheck(element.Object); Assert.IsFalse(result); element.VerifyAll(); }
public void TestElementEnabledCheckWhenElementNotVisibleExceptionReturnsFalse() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Throws <ElementNotVisibleException>(); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.ElementEnabledCheck(element.Object); Assert.AreEqual(false, result); element.VerifyAll(); }
public void TestGetClickElement() { var element = new Mock <IWebElement>(MockBehavior.Strict); this.SetupClick(element); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.ClickElement(element.Object); Assert.AreEqual(true, result); element.VerifyAll(); }
public void TestGetElementOptionsForOtherControl() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("text"); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetElementOptions(element.Object); Assert.IsNull(result); element.VerifyAll(); }
public void TestElementEnabledCheckWhenNotDisplayedReturnsFalse() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Returns(false); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.ElementEnabledCheck(element.Object); Assert.AreEqual(false, result); element.VerifyAll(); }
public void TestElementExistsCheckWhenDisplayedReturnsTrue() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Returns(true); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.ElementExistsCheck(element.Object); Assert.AreEqual(true, result); element.VerifyAll(); }
public void TestWaitForControlNotEnabled() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Enabled).Returns(false); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.WaitForElement(element.Object, WaitConditions.NotEnabled, null); Assert.IsTrue(result); element.VerifyAll(); }
public void TestTryGetCorrectElement() { var element = new Mock<IWebElement>(MockBehavior.Strict); var nativePage = new NativePage { MyControl = element.Object }; var page = new SeleniumPage(nativePage); IPropertyData propertyData; var result = page.TryGetElement("MyControl", out propertyData); Assert.IsNotNull(nativePage.MyControl); Assert.AreEqual(true, result); Assert.IsNotNull(propertyData); }
public void TestGetElementAttributeValueWithValidAttribute() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.Setup(e => e.GetAttribute("href")).Returns("http://myurl.com/page"); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetElementAttributeValue(element.Object, "href"); Assert.AreEqual("http://myurl.com/page", result); element.VerifyAll(); }
public void TestGetElementTextWhenControlIsNotSpecialReturnsTheElementText() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("DIV"); element.SetupGet(e => e.Text).Returns("Normal Text"); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetElementText(element.Object); Assert.AreEqual("Normal Text", result); element.VerifyAll(); }
public void TestGetClearMethod() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.Setup(e => e.Clear()); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var clearMethod = page.GetClearMethod(null); clearMethod(element.Object); element.VerifyAll(); }
public void TestWaitForControlExpectExistButIsNot() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Returns(false); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.WaitForElement(element.Object, WaitConditions.Exists, null); Assert.IsFalse(result); element.VerifyAll(); }
public void TestGetElementTextWhenControlIsTextAreaControl() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("textarea"); element.Setup(e => e.GetAttribute("type")).Returns("textarea"); element.Setup(e => e.GetAttribute("value")).Returns("Input Text Area"); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetElementText(element.Object); Assert.AreEqual("Input Text Area", result); element.VerifyAll(); }
public void TestGetFillMethodForStandardControl() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("div"); element.Setup(e => e.SendKeys("Some Text")); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "Some Text"); element.VerifyAll(); }
public void TestGetElementTextWhenControlIsCheckBoxInputControl() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("input "); element.Setup(e => e.GetAttribute("type")).Returns("checkBox"); element.SetupGet(e => e.Selected).Returns(true); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetElementText(element.Object); Assert.AreEqual("True", result); element.VerifyAll(); }
public void TestTryGetCorrectElement() { var element = new Mock <IWebElement>(MockBehavior.Strict); var nativePage = new NativePage { MyControl = element.Object }; var page = new SeleniumPage(nativePage, null); IPropertyData propertyData; var result = page.TryGetElement("MyControl", out propertyData); Assert.IsNotNull(nativePage.MyControl); Assert.AreEqual(true, result); Assert.IsNotNull(propertyData); }
public void TestGetFillMethodForRadioButtonControl() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("input"); element.Setup(e => e.GetAttribute("type")).Returns("radio"); this.SetupClick(element); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "true"); element.Verify(e => e.Click(), Times.Exactly(2)); element.VerifyAll(); }
public void TestGetFillMethodForCheckboxControl() { var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("input"); element.Setup(e => e.GetAttribute("type")).Returns("checkbox"); element.SetupGet(e => e.Selected).Returns(false); this.SetupClick(element); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "true"); element.VerifyAll(); }
public void TestHighlightElementWhenDriverNotSupportedDoesNotThowException() { const string DefaultStyle = "color: blue;"; var element = new Mock <IWebElement>(MockBehavior.Strict); element.Setup(e => e.GetAttribute("style")).Returns(DefaultStyle); var item = element.Object; var webDriver = new Mock <IWebDriver>(MockBehavior.Strict); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, webDriver.Object); page.Highlight(item); element.VerifyAll(); webDriver.VerifyAll(); }
public void TestHighlightElementExecutesJavascript() { const string DefaultStyle = "color: blue;"; const string JavaScript = "arguments[0].setAttribute(arguments[1], arguments[2])"; var element = new Mock <IWebElement>(MockBehavior.Strict); element.Setup(e => e.GetAttribute("style")).Returns(DefaultStyle); var item = element.Object; var webDriver = new Mock <IWebDriver>(MockBehavior.Strict); webDriver.As <IJavaScriptExecutor>().Setup(j => j.ExecuteScript(JavaScript, item, "style", "border: 5px solid red;")).Returns((object)null); webDriver.As <IJavaScriptExecutor>().Setup(j => j.ExecuteScript(JavaScript, item, "style", DefaultStyle)).Returns((object)null); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, webDriver.Object); page.Highlight(item); element.VerifyAll(); webDriver.VerifyAll(); }
internal override async Task ExecuteInternal(object destination) { if (NativeSource == null) { if (SourcePage == null) { throw new InvalidOperationException("Source element must be on a Page"); } NativeSource = GetOrCreateRenderer(SourcePage); } try { if (Action == NavigationAction.Pop) { // Clear out our previous page on the source page to prevent stale data SourcePage?.SetPreviousPage(null); } else if (destination == null) { throw new ArgumentNullException(nameof(destination), $"May only be null for {nameof (NavigationAction.Pop)}"); } else if (destination is Page page) { page.SetPreviousPage(SourcePage); } switch (destination) { case Page page: await ExecuteAsync(page); break; case NativePage native: await ExecuteNative(native); break; default: throw new ArgumentException(); } } finally { NativeSource = null; } }
public void TestGetElementTextWhenControlASelectControlReturnsTheSelectedItemText() { var option = new Mock <IWebElement>(MockBehavior.Strict); option.SetupGet(o => o.Selected).Returns(true); option.SetupGet(o => o.Text).Returns("Selected Item"); var element = new Mock <IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("select"); element.Setup(e => e.GetAttribute("multiple")).Returns("false"); element.Setup(e => e.FindElements(By.TagName("option"))) .Returns(new ReadOnlyCollection <IWebElement>(new[] { option.Object })); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage, null); var result = page.GetElementText(element.Object); Assert.AreEqual("Selected Item", result); element.VerifyAll(); }
public void TestWaitForControlExpectExistButIsNot() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Returns(false); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.WaitForElement(element.Object, WaitConditions.Exists, null); Assert.IsFalse(result); element.VerifyAll(); }
public void TestGetClickElementWhenControlIsSelected() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Selected).Returns(true); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.ClickElement(element.Object); Assert.AreEqual(true, result); element.VerifyAll(); }
public void TestGetFillMethodForMultipleSelectControl() { var option = new Mock<IWebElement>(MockBehavior.Strict); option.SetupGet(o => o.Selected).Returns(false); this.SetupClick(option); var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("select"); element.Setup(e => e.GetAttribute("multiple")).Returns("true"); element.Setup(e => e.FindElements(By.TagName("option"))) .Returns(new ReadOnlyCollection<IWebElement>(new[] { option.Object })); element.Setup(e => e.FindElements(By.XPath(".//option[normalize-space(.) = \"Selected Item\"]"))) .Returns(new ReadOnlyCollection<IWebElement>(new[] { option.Object })); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "Selected Item"); element.VerifyAll(); }
public void TestGetFillMethodForRadioButtonControl() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("input"); element.Setup(e => e.GetAttribute("type")).Returns("radio"); this.SetupClick(element); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "true"); element.Verify(e => e.Click(), Times.Exactly(2)); element.VerifyAll(); }
public void TestGetFillMethodForCheckboxControl() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("input"); element.Setup(e => e.GetAttribute("type")).Returns("checkbox"); element.SetupGet(e => e.Selected).Returns(false); this.SetupClick(element); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "true"); element.VerifyAll(); }
public void TestElementEnabledCheckWhenStaleElementReferenceReturnsFalse() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Throws<StaleElementReferenceException>(); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.ElementEnabledCheck(element.Object); Assert.IsFalse(result); element.VerifyAll(); }
public void TestGetClickElement() { var element = new Mock<IWebElement>(MockBehavior.Strict); this.SetupClick(element); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.ClickElement(element.Object); Assert.AreEqual(true, result); element.VerifyAll(); }
public void TestGetClearMethod() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.Setup(e => e.Clear()); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var clearMethod = page.GetClearMethod(null); clearMethod(element.Object); element.VerifyAll(); }
public void TestGetElementTextWhenControlIsTextAreaControl() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("textarea"); element.Setup(e => e.GetAttribute("type")).Returns("textarea"); element.Setup(e => e.GetAttribute("value")).Returns("Input Text Area"); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.GetElementText(element.Object); Assert.AreEqual("Input Text Area", result); element.VerifyAll(); }
public void TestGetElementTextWhenControlIsCheckBoxInputControl() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("input "); element.Setup(e => e.GetAttribute("type")).Returns("checkBox"); element.SetupGet(e => e.Selected).Returns(true); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.GetElementText(element.Object); Assert.AreEqual("True", result); element.VerifyAll(); }
public void TestGetElementTextWhenControlASelectControlReturnsTheSelectedItemText() { var option = new Mock<IWebElement>(MockBehavior.Strict); option.SetupGet(o => o.Selected).Returns(true); option.SetupGet(o => o.Text).Returns("Selected Item"); var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("select"); element.Setup(e => e.GetAttribute("multiple")).Returns("false"); element.Setup(e => e.FindElements(By.TagName("option"))) .Returns(new ReadOnlyCollection<IWebElement>(new[] { option.Object })); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.GetElementText(element.Object); Assert.AreEqual("Selected Item", result); element.VerifyAll(); }
public void Click_On_Members_Tab_Check_AuthorS_Profile() { NativePage Native_Page = new NativePage(); Native_Page.SearchNameChecked(); }
public void TestGetElementTextWhenControlIsNotSpecialReturnsTheElementText() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("DIV"); element.SetupGet(e => e.Text).Returns("Normal Text"); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.GetElementText(element.Object); Assert.AreEqual("Normal Text", result); element.VerifyAll(); }
public void TestWaitForControlNotEnabled() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Enabled).Returns(false); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.WaitForElement(element.Object, WaitConditions.NotEnabled, null); Assert.IsTrue(result); element.VerifyAll(); }
public void Remember_Name_Author_First_Publication_And_Enter_In_Search() { NativePage Native_Page = new NativePage(); Native_Page.SearchName(); }
public void TestGetElementAttributeValueWithValidAttribute() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.Setup(e => e.GetAttribute("href")).Returns("http://myurl.com/page"); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.GetElementAttributeValue(element.Object, "href"); Assert.AreEqual("http://myurl.com/page", result); element.VerifyAll(); }
public void TestGetFillMethodForStandardInputControl() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.TagName).Returns("input"); element.Setup(e => e.GetAttribute("type")).Returns("text"); element.Setup(e => e.SendKeys("Some Text")); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var fillMethod = page.GetPageFillMethod(null); fillMethod(element.Object, "Some Text"); element.VerifyAll(); }
public void TestElementExistsCheckWhenDisplayedReturnsTrue() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Returns(true); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.ElementExistsCheck(element.Object); Assert.AreEqual(true, result); element.VerifyAll(); }
public void TestElementEnabledCheckWhenElementNotVisibleExceptionReturnsFalse() { var element = new Mock<IWebElement>(MockBehavior.Strict); element.SetupGet(e => e.Displayed).Throws<ElementNotVisibleException>(); var nativePage = new NativePage(); var page = new SeleniumPage(nativePage); var result = page.ElementEnabledCheck(element.Object); Assert.AreEqual(false, result); element.VerifyAll(); }