BloomTests.NavigationIsolatorTests.SingleTask_AfterLongDelay_AllowsIdleNavigation C# (CSharp) Method

SingleTask_AfterLongDelay_AllowsIdleNavigation() private method

private SingleTask_AfterLongDelay_AllowsIdleNavigation ( ) : void
return void
        public void SingleTask_AfterLongDelay_AllowsIdleNavigation()
        {
            var browser = new BrowserStub();
            string target = "http://any old web address";
            var isolator = new NavigationIsolator();
            isolator.Navigate(browser, target);
            Assert.That(browser.NavigateTarget, Is.EqualTo(target));

            string target2 = "http://some other web address";
            var start = DateTime.Now;
            var success = false;
            while (!success && DateTime.Now - start < new TimeSpan(0, 0, 0, 2, 300))
            {
                success = isolator.NavigateIfIdle(browser, target2);
                Application.DoEvents(); // allow timer to tick.
            }
            Assert.That(() => browser.NavigateTarget, Is.EqualTo(target2), "Idle navigation should have proceeded eventually");
            Assert.That(success, "NavigateIfIdle should eventually succeed");

            browser.NormalTermination(); // possibly the long-delayed notification of the first nav, but more likely the idle navigation.
            Assert.That(browser.EventHandlerCount, Is.EqualTo(0), "event handlers should be removed once last navigation completed");
        }