public IDocumentStore NewDocumentStore(bool fiddler = false, Dictionary <string, string> settings = null) { if (iisExpress == null) { iisExpress = new IISExpressDriver(); var iisTestWebDirectory = DeployWebProjectToTestDirectory(); if (settings != null) { ModifyWebConfig(Path.Combine(iisTestWebDirectory, "web.config"), settings); } iisExpress.Start(iisTestWebDirectory, 8084); } var url = iisExpress.Url; if (fiddler) { url = url.Replace("localhost", "localhost.fiddler"); } return(new DocumentStore { Url = url }.Initialize()); }
public override void Specify() { var site = beforeAll(() => IISExpressDriver.StartServer()); beforeAll(delegate() { var hostName = new Uri(site.UrlFor("")).Host; expect(() => hostName.Contains("localhost")); PSHostsFile.HostsFile.Set(hostName, "127.0.0.1"); }); describe("the web application's configuration", delegate() { var browser = beforeAll(() => new FirefoxDriver()); it("should have a functioning database connection string", delegate() { browser.Navigate().GoToUrl(site.UrlFor("/Check")); var errorElement = browser.FindElement(BySizzle.CssSelector("#error")); string actual = errorElement.Text.Trim(); Assert.That(string.IsNullOrEmpty(actual), "SQL configuration error detected. Do you have SQL express installed and setup? If not, you can get it here: http://www.microsoft.com/download/en/details.aspx?id=26729 \nServer reported error:\n\n" + actual); }); }); }
public void Dispose() { if (_iisExpress != null) { _iisExpress.Dispose(); _iisExpress = null; } }
public void Dispose() { if (iisExpress != null) { iisExpress.Dispose(); iisExpress = null; } IOExtensions.DeleteDirectory(Path.GetFullPath(WebDirectory)); }
private void go_to_registration_form(ChromeDriver browser, IISExpressDriver site) { browser.Navigate().GoToUrl(site.UrlFor("/Account/Register")); var iframe = browser.WaitForElementEx( BySizzle.CssSelector("iframe[src^=\"https://www.facebook.com/plugins/registration.php\"]"), Constants.MSLongWait); browser.SwitchTo().Frame(iframe); }
public IDocumentStore NewDocumentStore() { if (iisExpress == null) { iisExpress = new IISExpressDriver(); iisExpress.Start(DeployWebProjectToTestDirectory(), 8084); } return(new DocumentStore { Url = iisExpress.Url }.Initialize()); }
public IDocumentStore NewDocumentStore() { if (_iisExpress == null) { _iisExpress = new IISExpressDriver(); _iisExpress.Start(IISDeploymentUtil.DeployWebProjectToTestDirectory(), 8084); } return(new DocumentStore() { Url = _iisExpress.Url }.Initialize()); }
public IDocumentStore NewDocumentStore(bool fiddler = false) { if (iisExpress == null) { iisExpress = new IISExpressDriver(); iisExpress.Start(DeployWebProjectToTestDirectory(), 8084); } var url = iisExpress.Url; if (fiddler) { url = url.Replace("localhost", "localhost.fiddler"); } return(new DocumentStore { Url = url }.Initialize()); }
public WebTestFixture() { if (IsIisExpressInstalled() == false) { return; } try { path = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString("N")); var from = Path.GetFullPath("../"); IOExtensions.CopyDirectory(from, path); iisExpressDriver = new IISExpressDriver(); iisExpressDriver.Start(path, Port); } catch (Exception) { IOExtensions.DeleteDirectory(path); throw; } }
public override void Specify() { var site = beforeAll(() => IISExpressDriver.StartServer()); var siteUsername = Guid.NewGuid().ToString(); var facebook = arrange(() => new FacebookClient()); var browser = arrange(() => { // Firefox fails as it puts up a warning dialog // when posting to non-HTTPS from the HTTPS iframe //var profile = new FirefoxProfile(); //profile.SetPreference("security.warn_entering_weak", false); //profile.SetPreference("security.warn_entering_weak.show_once", false); //profile.SetPreference("security.warn_submit_insecure", false); //return new FirefoxDriver(profile); return(new ChromeDriver()); }); given("a logged in facebook user", delegate() { var userFullname = "Some Fbuser"; var user = arrange(() => facebook.CreateTestUser(userFullname)); arrange(delegate() { browser.Navigate().GoToUrl("http://www.facebook.com/"); browser.FindElement(BySizzle.CssSelector("input[name=email]")).SendKeys(user.email); browser.FindElement(BySizzle.CssSelector("input[name=pass]")).SendKeys(user.password); browser.FindElement(BySizzle.CssSelector(".menu_login_container input[type=Submit]")).Click(); browser.WaitForElement(BySizzle.CssSelector("input[value='Log Out']")); }); given("the user registers on the site", delegate() { arrange(delegate() { go_to_registration_form(browser, site); type_registration_fields(browser, new { nickname = siteUsername }); submit_registration_dialog_as_facebook_user(browser); }); then_it_shows_the_user_has_logged_in(browser, siteUsername); }); given("the user tries registering with a short nickname (which fails model violation)", delegate() { arrange(delegate() { go_to_registration_form(browser, site); type_registration_fields(browser, new { nickname = "la" }); submit_registration_dialog_as_facebook_user(browser); }); it("should say registration failed", delegate() { expectEventually(() => browser.ContainsText("Account creation was unsuccessful.")); expect(() => browser.ContainsText("Username must be at least 6 characters long")); }); }); }); given("a non-facebook user registers on the site", delegate() { var email = siteUsername + "@somesite.com"; var password = siteUsername.Substring(0, 10); arrange(delegate() { go_to_registration_form(browser, site); should_have_registration_fields(browser, "nickname", "email", "password", "password_confirmation"); type_registration_fields(browser, new { nickname = siteUsername, email = email, password = password, password_confirmation = password }); click_registration_button(browser); }); then_it_shows_the_user_has_logged_in(browser, siteUsername); when("the user tries to log in later", delegate() { var secondBrowser = arrange(() => new ChromeDriver()); arrange(delegate() { secondBrowser.Navigate().GoToUrl(site.UrlFor("/Account/LogOn")); secondBrowser.FindElement(BySizzle.CssSelector("input[name=UserName]")).SendKeys(siteUsername); secondBrowser.FindElement(BySizzle.CssSelector("input[name=Password]")).SendKeys(password); secondBrowser.FindElement(BySizzle.CssSelector("input[value='Log On']")).Click(); }); then_it_shows_the_user_has_logged_in(browser, siteUsername); }); }); }
public override void Specify() { var facebookClient = arrange(() => new FacebookClient()); string userFullname = "User Name"; given("a facebook user", delegate() { var user = arrange(() => facebookClient.CreateTestUser(userFullname)); given("the user visits a content page", delegate() { var server = beforeAll(() => IISExpressDriver.StartServer()); var browser = arrange(() => new FirefoxDriver()); arrange(() => browser.Navigate().GoToUrl(server.UrlFor("/View/123"))); expect(() => browser.ContainsText("Welcome to 123")); then("the user can post a comment", delegate() { var comment = Guid.NewGuid().ToString(); var iframe = browser.WaitForElementEx( BySizzle.CssSelector("iframe[src^=\"https://www.facebook.com/plugins/comments.php\"]"), Constants.MSLongWait); browser.SwitchTo().Frame(iframe); var buttonIndicatingCommentFormIsHidden = browser.FindElements(BySizzle.CssSelector("a:contains('Add a comment')")); if (buttonIndicatingCommentFormIsHidden.Count() > 0) { buttonIndicatingCommentFormIsHidden.Single().Click(); } browser.FindElement(BySizzle.CssSelector("textarea")).SendKeys(comment); browser.FindElement(BySizzle.CssSelector("a[data-label^='Comment using']")).Click(); var windowContext = new WhichWindowContext(browser); browser.FindElement(BySizzle.CssSelector("a[onclick*=setProvider]:contains('Facebook')")).Click(); browser.SwitchTo().Window(windowContext.GetNewWindowName()); browser.FindElement(BySizzle.CssSelector("input[id=email]")).SendKeys(user.email); browser.FindElement(BySizzle.CssSelector("input[id=pass]")).SendKeys(user.password); browser.FindElement(BySizzle.CssSelector("input[name=login]")).Click(); browser.SwitchTo().Window(windowContext.GetOriginalWindowName()); browser.SwitchTo().Frame(iframe); var waitForElement = browser.WaitForElement(BySizzle.CssSelector("input[value=Comment]")); expectEventually(() => waitForElement.Displayed, Constants.MSLongWait); waitForElement.Click(); browser.FindElements(BySizzle.CssSelector("div.postText:contains('" + comment + "')")); }); }); }); }