public void BrowserHandlerOnBeforePopupWithControllerShowPopupReturningFalseExpectedSetsIsPoppingToTrueAndReturnsFalse()
        {
            var browser         = new Mock <IWebBrowser>();
            var popupController = new Mock <IBrowserPopupController>();

            popupController.Setup(p => p.ShowPopup(It.IsAny <string>())).Returns(false).Verifiable();

            var x      = int.MinValue;
            var y      = int.MinValue;
            var width  = int.MinValue;
            var height = int.MinValue;

            var handler = new BrowserHandler(popupController.Object);
            var result  = handler.OnBeforePopup(browser.Object, "myfake.url", ref x, ref y, ref width, ref height);

            popupController.Verify(p => p.ShowPopup(It.IsAny <string>()), Times.Once());
            Assert.IsTrue(handler.IsPopping);
            Assert.IsFalse(result);
        }
        public void BrowserHandler_OnResourceResponse_IsPoppingTrue_InvokesConfigurePopupAndResetsIsPopping()
        {
            var browser         = new Mock <IWebBrowser>();
            var popupController = new Mock <IBrowserPopupController>();

            popupController.Setup(p => p.ShowPopup(It.IsAny <string>())).Returns(false);
            popupController.Setup(c => c.ConfigurePopup()).Verifiable();

            var x      = int.MinValue;
            var y      = int.MinValue;
            var width  = int.MinValue;
            var height = int.MinValue;

            var handler = new BrowserHandler(popupController.Object);

            handler.OnBeforePopup(browser.Object, "myfake.url", ref x, ref y, ref width, ref height);

            Assert.IsTrue(handler.IsPopping);
            handler.OnResourceResponse(browser.Object, string.Empty, 0, string.Empty, string.Empty, new WebHeaderCollection());

            Assert.IsFalse(handler.IsPopping);
            popupController.Verify(c => c.ConfigurePopup(), Times.Once());
        }