private void RunStringTest() { // If it is a String Test then load the string. string xamlString = XamlString; XamlStringParser loader = StringParserDelegate; PostTreeValidator validator = TreeValidatorDelegate; if (ExpectedExceptionType == null) { LoadAndValidate(loader, xamlString, validator); } // otherwise some sort of exception is expected else { try { LoadAndValidate(loader, xamlString, validator); } catch (Exception e) { if (ExpectedExceptionType == e.GetType()) { if ((ExpectedInnerExceptionType == null && e.InnerException == null) || (ExpectedInnerExceptionType == e.InnerException.GetType())) { return; } } throw new InvalidOperationException("Wrong Exception was thrown", e); } throw new InvalidOperationException(String.Format("Expected exception {0} was not thrown", ExpectedExceptionType.ToString())); } }
private void RunMethodTest() { SimpleTest test = TestDelegate; if (ExpectedExceptionType == null) { test(); } // otherwise some sort of exception is expected else { try { test(); } catch (Exception e) { if (ExpectedExceptionType == e.GetType()) { // TODO: Bug 736396 //if((ExpectedInnerExceptionType == null && e.InnerException == null) || (ExpectedInnerExceptionType == e.InnerException.GetType())) return; } throw new InvalidOperationException("Wrong Exception was thrown", e); } throw new InvalidOperationException(String.Format("Expected exception {0} was not thrown", ExpectedExceptionType.ToString())); } }
protected virtual void TryExecuteTest(Action <BrowserWrapper> testBody, IWebDriverFactory browserFactory, out string browserName, out Exception exception) { var attemptNumber = 0; var attampsMaximum = SeleniumTestsConfiguration.TestAttempts + (SeleniumTestsConfiguration.FastMode ? 1 : 0); do { attemptNumber++; WriteLine($"Attamp #{attemptNumber} starts...."); exception = null; var browser = LatestLiveWebDriver = browserFactory.CreateNewInstance(); LogDriverId(browser, "Driver creation - TryExecuteTest"); var scope = new ScopeOptions() { CurrentWindowHandle = browser.CurrentWindowHandle }; wrapper = new BrowserWrapper(browser, this, scope); browserName = browser.GetType().Name; WriteLine($"Testing browser '{browserName}' attempt no. {attemptNumber}"); bool exceptionWasThrow = false; try { BeforeSpecificBrowserTestStarts(wrapper); Log("Execution of user test starting.", 10); testBody(wrapper); Log("Execution of user test ended.", 10); AfterSpecificBrowserTestEnds(wrapper); } catch (Exception ex) { exceptionWasThrow = true; bool isExpected = false; if (ExpectedExceptionType != null) { isExpected = ex.GetType() == ExpectedExceptionType || (AllowDerivedExceptionTypes && ExpectedExceptionType.IsInstanceOfType(ex)); } Log("Test is expected to drop: " + isExpected, 10); if (!isExpected) { TakeScreenshot(attemptNumber, wrapper); // fail the test CurrentTestExceptions.Add(exception = ex); Log("Test attemp was not successfull! - TEST ATTAMP FAILED", 10); } if (attemptNumber < attampsMaximum) { RecreateBrowsers(browserFactory); } else { DisposeBrowsers(browserFactory); } } finally { if (!exceptionWasThrow) { CleanBrowsers(browserFactory); } } if (ExpectedExceptionType != null && !exceptionWasThrow) { CurrentTestExceptions.Add(exception = new SeleniumTestFailedException("Test was supposted to fail and it did not.")); } }while (exception != null && attemptNumber < attampsMaximum); }