Example #1
0
        public void WaitUntilExistsTimeOutExceptionInnerExceptionNotSetToLastExceptionThrown()
        {
            var domContainerMock = new Mock <DomContainer>(new object[] { });
            var finderMock       = new ElementFinderMock();

            var counter = 0;

            finderMock.FindAllElements = () =>
            {
                counter++;
                if (counter == 1)
                {
                    throw new UnauthorizedAccessException("");
                }
                return(new List <Element>());
            };

            var element1 = new Element(domContainerMock.Object, finderMock);

            Exceptions.TimeoutException timeoutException = null;

            try
            {
                element1.WaitUntilExists(1);
            }
            catch (Exceptions.TimeoutException e)
            {
                timeoutException = e;
            }

            Assert.IsNotNull(timeoutException, "TimeoutException not thrown");
            Assert.IsNull(timeoutException.InnerException, "Unexpected innerexception");

            domContainerMock.VerifyAll();
        }
Example #2
0
        public void WaitUntilElementExistsTimeOutException()
        {
            // GIVEN
            var elementFinderMock = new ElementFinderMock
            {
                FindAllElements = (() => new List <Element> {
                    (Element)null
                })
            };

            var element1 = new Element(new Mock <DomContainer>().Object, elementFinderMock);

            // WHEN
            element1.WaitUntilExists(1);

            // THEN exception
        }
Example #3
0
        public void ElementRefresh()
        {
            var finderMock        = new ElementFinderMock();
            var nativeElementMock = new Mock <INativeElement>();
            var domContainer      = new Mock <DomContainer>(new object[] { });

            finderMock.FindAllElements = () => new List <Element> {
                new Element(domContainer.Object, nativeElementMock.Object)
            };
            nativeElementMock.Expect(native => native.TagName).Returns("mockedtag");

            element = new Element(domContainer.Object, finderMock);

            Assert.AreEqual("mockedtag", element.TagName);

            element.Refresh();

            Assert.AreEqual("mockedtag", element.TagName);
            Assert.That(finderMock.FindAllImplCounter, Is.LessThanOrEqualTo(2), "Atmost 2 times");
        }
Example #4
0
        public void WaitUntilExistsShouldIgnoreExceptionsDuringWait()
        {
            // GIVEN
            var nativeElementMock = new Mock <INativeElement>();
            var elementFinderMock = new ElementFinderMock();
            var domContainerMock  = new Mock <DomContainer>(new object[] { });

            var counter = 0;

            elementFinderMock.FindAllElements = () =>
            {
                counter = counter + 1;
                if (counter <= 5)
                {
                    return(new List <Element>());
                }
                if (counter <= 9)
                {
                    throw new UnauthorizedAccessException("");
                }
                return(new List <Element> {
                    new Element(domContainerMock.Object, nativeElementMock.Object)
                });
            };

            element = new Element(domContainerMock.Object, elementFinderMock);
            nativeElementMock.Expect(native => native.GetAttributeValue("innertext")).Returns("succeeded").AtMostOnce();

            // WHEN
            var text = element.Text;

            // THEN
            Assert.That(elementFinderMock.FindAllImplCounter, Is.EqualTo(10));
            Assert.AreEqual("succeeded", text);

            nativeElementMock.VerifyAll();
            domContainerMock.VerifyAll();
        }
Example #5
0
        public void WaitUntilExistsTimeOutExceptionInnerExceptionSetToLastExceptionThrown()
        {
            var domContainerMock = new Mock <DomContainer>(new object[] { });
            var finderMock       = new ElementFinderMock();

            var counter = 0;

            finderMock.FindAllElements = () =>
            {
                counter++;
                if (counter == 1)
                {
                    throw new Exception("");
                }
                throw new UnauthorizedAccessException("mockUnauthorizedAccessException");
            };

            element = new Element(domContainerMock.Object, finderMock);

            Exceptions.TimeoutException timeoutException = null;

            try
            {
                element.WaitUntilExists(1);
            }
            catch (Exceptions.TimeoutException e)
            {
                timeoutException = e;
            }

            Assert.IsNotNull(timeoutException, "TimeoutException not thrown");
            Assert.IsInstanceOf(typeof(UnauthorizedAccessException), timeoutException.InnerException, "Unexpected innerexception");
            Assert.AreEqual("mockUnauthorizedAccessException", timeoutException.InnerException.Message);

            domContainerMock.VerifyAll();
        }
Example #6
0
        public void ElementRefresh()
        {
            var finderMock = new ElementFinderMock();
            var nativeElementMock = new Mock<INativeElement>();
            var domContainer = new Mock<DomContainer>( new object[] { });

            finderMock.FindAllElements = () => new List<Element> {new Element(domContainer.Object, nativeElementMock.Object)};
            nativeElementMock.Expect(native => native.TagName).Returns("mockedtag");

            element = new Element(domContainer.Object, finderMock);

            Assert.AreEqual("mockedtag", element.TagName);

            element.Refresh();

            Assert.AreEqual("mockedtag", element.TagName);
            Assert.That(finderMock.FindAllImplCounter, Is.LessThanOrEqualTo(2), "Atmost 2 times");
        }
Example #7
0
        public void WaitUntilExistsTimeOutExceptionInnerExceptionSetToLastExceptionThrown()
        {
            var domContainerMock = new Mock<DomContainer>(new object[] { });
            var finderMock = new ElementFinderMock();

            var counter = 0;
            finderMock.FindAllElements = () =>
            {
                counter++;
                if (counter == 1) throw new Exception("");
                throw new UnauthorizedAccessException("mockUnauthorizedAccessException");
            };

            element = new Element(domContainerMock.Object, finderMock);

            Exceptions.TimeoutException timeoutException = null;

            try
            {
                element.WaitUntilExists(1);
            }
            catch (Exceptions.TimeoutException e)
            {
                timeoutException = e;
            }

            Assert.IsNotNull(timeoutException, "TimeoutException not thrown");
            Assert.IsInstanceOfType(typeof (UnauthorizedAccessException), timeoutException.InnerException, "Unexpected innerexception");
            Assert.AreEqual("mockUnauthorizedAccessException", timeoutException.InnerException.Message);

            domContainerMock.VerifyAll();
        }
Example #8
0
        public void WaitUntilExistsTimeOutExceptionInnerExceptionNotSetToLastExceptionThrown()
        {
            var domContainerMock = new Mock<DomContainer>( new object[] { });
            var finderMock = new ElementFinderMock();

            var counter = 0;
            finderMock.FindAllElements = () =>
                                             {
                                                 counter++;
                                                 if (counter == 1) throw new UnauthorizedAccessException("");
                                                 return new List<Element>();
                                             };

            var element1 = new Element(domContainerMock.Object, finderMock);

            Exceptions.TimeoutException timeoutException = null;

            try
            {
                element1.WaitUntilExists(1);
            }
            catch (Exceptions.TimeoutException e)
            {
                timeoutException = e;
            }

            Assert.IsNotNull(timeoutException, "TimeoutException not thrown");
            Assert.IsNull(timeoutException.InnerException, "Unexpected innerexception");

            domContainerMock.VerifyAll();
        }
Example #9
0
        public void WaitUntilExistsShouldIgnoreExceptionsDuringWait()
        {
            // GIVEN
            var nativeElementMock = new Mock<INativeElement>();
            var elementFinderMock = new ElementFinderMock();
            var domContainerMock = new Mock<DomContainer>(new object[] { });

            var counter = 0;
            elementFinderMock.FindAllElements = () =>
            {
                counter = counter + 1;
                if (counter <= 5) return new List<Element>();
                if (counter <= 9) throw new UnauthorizedAccessException("");
                return new List<Element> { new Element(domContainerMock.Object, nativeElementMock.Object) };
            };

            element = new Element(domContainerMock.Object, elementFinderMock);
            nativeElementMock.Expect(native => native.GetAttributeValue("innertext")).Returns("succeeded").AtMostOnce();

            // WHEN
            var text = element.Text;

            // THEN
            Assert.That(elementFinderMock.FindAllImplCounter, Is.EqualTo(10));
            Assert.AreEqual("succeeded", text);

            nativeElementMock.VerifyAll();
            domContainerMock.VerifyAll();
        }
Example #10
0
        public void WaitUntilElementExistsTimeOutException()
        {
            // GIVEN
            var elementFinderMock = new ElementFinderMock
                                        {
                                            FindAllElements = (() => new List<Element> {(Element) null})
                                        };

            var element1 = new Element(new Mock<DomContainer>().Object, elementFinderMock);

            // WHEN
            element1.WaitUntilExists(1);

            // THEN exception
        }