protected override void Load(ContainerBuilder builder)
        {
            var selenoHost = new SelenoHost();

            selenoHost.Run("ContosoUniversity", 12365,
                           c => c.WithRouteConfig(RouteConfig.RegisterRoutes));
            builder.RegisterInstance(selenoHost).AsSelf().SingleInstance();
            builder.RegisterType <WebUiDriver>().AsSelf();

            DependenciesConfig.ConfigureDependencies(builder);
            //builder.RegisterGeneric(typeof(ViewStudentDetailsScenario))
            //    .AsSelf()
            //    .PropertiesAutowired()
            //    .InstancePerLifetimeScope();

            builder.RegisterSource(new ContravariantRegistrationSource());
            builder.RegisterAssemblyTypes(typeof(IMediator).Assembly).AsImplementedInterfaces();
            builder.RegisterAssemblyTypes(typeof(FunctionalTestsAutofacModule).Assembly).AsImplementedInterfaces();
            builder.Register <SingleInstanceFactory>(ctx =>
            {
                var c = ctx.Resolve <IComponentContext>();
                return(t => c.Resolve(t));
            });
            builder.Register <MultiInstanceFactory>(ctx =>
            {
                var c = ctx.Resolve <IComponentContext>();
                return(t => (IEnumerable <object>)c.Resolve(typeof(IEnumerable <>).MakeGenericType(t)));
            });

            builder.RegisterType <StudentDetailsPage>().As(typeof(IPage <Student>));
        }
示例#2
0
        public void Closing_SelenoHost_should_close_child_browser(string driverName)
        {
            // ARRANGE
            Process.GetProcessesByName(driverName).ForEach(StopProcess);
            var selenoHost = new SelenoHost();
            Func <RemoteWebDriver> driver = GetBrowserFactory(driverName);

            selenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346,
                           c => c.WithRemoteWebDriver(driver));
            // Somehow, Firefox spawns 6 processes
            const int NumberOfFirefoxProcesses = 6;
            int       NumberOfExpectedProcesses;

            switch (driverName)
            {
            case Firefox:
                NumberOfExpectedProcesses = NumberOfFirefoxProcesses;
                break;

            default:
                NumberOfExpectedProcesses = 1;
                break;
            }

            Process.GetProcessesByName(driverName).Length.Should().Be(NumberOfExpectedProcesses);

            // ACT
            selenoHost.Dispose();

            // ASSERT
            Process.GetProcessesByName(driverName).Should().BeEmpty();
        }
 public void FixtureSetup()
 {
     _host = new SelenoHost();
     _host.Run("TestStack.Seleno.AcceptanceTests.Web", 12324, x =>
               x.WithRouteConfig(RouteConfig.RegisterRoutes)
               .WithEnvironmentVariable("FunctionalTest", "SomeVal"));
 }
 public void FixtureSetup()
 {
     _host = new SelenoHost();
     _host.Run("TestStack.Seleno.AcceptanceTests.Web", 12324, x => 
         x.WithRouteConfig(RouteConfig.RegisterRoutes)
          .WithEnvironmentVariable("FunctionalTest", "SomeVal"));
 }
示例#5
0
 public void FixtureSetup()
 {
     _host = new SelenoHost();
     _host.Run(x => x
               .WithWebServer(new InternetWebServer("http://www.google.com/"))
               );
     _host.Application.Browser.Manage().Window.Size = new Size(750, 750);
 }
示例#6
0
 public static void Start()
 {
     SelenoHost.Run(@"SelenoTest.App", 12346, c => c
                    .UsingLoggerFactory(new ConsoleFactory())
                    .WithRouteConfig(RouteConfig.RegisterRoutes)
                    .WithRemoteWebDriver(GetChromeDriver)
                    );
 }
 public void FixtureSetup()
 {
     _host = new SelenoHost();
     _host.Run(x => x
         .WithWebServer(new InternetWebServer("http://www.google.com/"))
     );
     _host.Application.Browser.Manage().Window.Size = new Size(750,750);
 }
 // should be straight to the db, not through the UI
 public void Given_that_I_am_a_logged_in_user()
 {
     _homePage = SelenoHost.NavigateToInitialPage <HomeController, HomePage>(x => x.Index())
                 .Menu
                 .GoToAdminForAnonymousUser()
                 .GoToRegisterPage()
                 .CreateValidUser(ObjectMother.CreateRegisterModel());
 }
 public void SetUp()
 {
     SelenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346, c => c
                    .UsingLoggerFactory(new ConsoleFactory())
                    .WithMinimumWaitTimeoutOf(TimeSpan.FromSeconds(1))
                    .WithRouteConfig(RouteConfig.RegisterRoutes)
                    );
 }
        protected override void Load(ContainerBuilder builder)
        {
            var selenoHost = new SelenoHost();

            selenoHost.Run("ContosoUniversity", 12365,
                           c => c.WithRouteConfig(RouteConfig.RegisterRoutes));
            builder.RegisterInstance(selenoHost).AsSelf().SingleInstance();
            builder.RegisterType <BrowserHost>().AsSelf();
        }
示例#11
0
        static Host()
        {
            Instance = new SelenoHost();
            Instance.Run("WebApplication", 7055);
            Instance.Application.Browser.Manage().Window.Maximize();
            Thread.Sleep(5000);
            //new code changes

            //Instance.Run("WebApplication", 54881, configure => configure.WithRouteConfig(WebApplication.RouteConfig.RegisterRoutes).WithMinimumWaitTimeoutOf(System.TimeSpan.FromSeconds(3)));
        }
 public void FixtureSetup()
 {
     _host = new SelenoHost();
     _host.Run(x => x
               .UsingDomCapture(DomCaptureFolderPath)
               .WithWebServer(new InternetWebServer("https://www.google.com/"))
               .WithMinimumWaitTimeoutOf(TimeSpan.FromMilliseconds(100))
               .UsingLoggerFactory(new ConsoleFactory(LoggerLevel.Debug))
               );
 }
示例#13
0
        public void GivenAUserIsntRegistered_WhenRegisteringThem_TheyEndUpBackOnTheHomepageAndLoggedIn()
        {
            var page = SelenoHost.NavigateToInitialPage <HomePage>()
                       .GoToRegisterPage()
                       .RegisterUser(ObjectMother.NewUser);

            Assert.That(page.Title, Is.EqualTo("Home"));
            Assert.That(page.LoginPanel.IsLoggedIn, Is.True);
            Assert.That(page.LoginPanel.LoggedInUserName, Is.EqualTo(ObjectMother.NewUser.UserName));
        }
示例#14
0
 public void FixtureSetup()
 {
     _host = new SelenoHost();
     _host.Run(x => x
               .UsingCamera(@"c:\screenshots")
               .WithWebServer(new InternetWebServer("http://www.google.com/"))
               .WithMinimumWaitTimeoutOf(TimeSpan.FromMilliseconds(100))
               .UsingLoggerFactory(new ConsoleFactory(LoggerLevel.Debug))
               );
 }
 public void FixtureSetup()
 {
     _host = new SelenoHost();
     _host.Run(x => x
         .UsingCamera(@"c:\screenshots")
         .WithWebServer(new InternetWebServer("http://www.google.com/"))
         .WithMinimumWaitTimeoutOf(TimeSpan.FromMilliseconds(100))
         .UsingLoggerFactory(new ConsoleFactory(LoggerLevel.Debug))
     );
 }
示例#16
0
        public void Dispose()
        {
            if (_selenoHost == null || _selenoHost.Application == null)
            {
                return;
            }

            _selenoHost.Dispose();
            _selenoHost = null;
        }
        public void Function_correctly_with_checkbox_and_radio_lists()
        {
            var enteredViewModel = ObjectMother.ModelBindingViewModels.BasicValid;

            var page = SelenoHost.NavigateToInitialPage <HomePage>()
                       .GoToModelBindingExamplePage2()
                       .Submit(enteredViewModel);

            Assert.That(page.GetFormValues(), IsSame.ViewModelAs(enteredViewModel));
            Assert.That(page.HasValidationErrors(), Is.False, "There are validation errors on the page");
        }
示例#18
0
文件: Host.cs 项目: innovateedu2/NGL
        private static void RunIisExpress()
        {
            var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SelenoScreenShots");

            _instance = new SelenoHost();
            _instance.Run("NGL.Web", 12345, c =>
                          c.WithRouteConfig(RouteConfig.RegisterRoutes)
                          .UsingControlIdGenerator(new MvcControlIdGenerator())
                          .WithEnvironmentVariable("ConnectionString", DatabaseManager.ConnectionString)
                          .UsingCamera(filePath));
        }
示例#19
0
        private static void RunIisExpress()
        {
            var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SelenoScreenShots");

            _instance = new SelenoHost();
            _instance.Run("NGL.Web", 12345, c =>
                c.WithRouteConfig(RouteConfig.RegisterRoutes)
                    .UsingControlIdGenerator(new MvcControlIdGenerator())
                    .WithEnvironmentVariable("ConnectionString", DatabaseManager.ConnectionString)
                    .UsingCamera(filePath));
        }
        public void Closing_SelenoHost_should_close_child_browser(string driverName)
        {
            Process.GetProcessesByName(driverName).ForEach(StopProcess);
            var selenoHost = new SelenoHost();
            Func<RemoteWebDriver> driver = GetBrowserFactory(driverName);
            selenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346,
                c => c.WithRemoteWebDriver(driver));
            Process.GetProcessesByName(driverName).Length.Should().Be(1);

            selenoHost.Dispose();

            Process.GetProcessesByName(driverName).Should().BeEmpty();
        }
        public void RunTest()
        {
            using (var host = new SelenoHost())
            {
                host.Run(
                    x =>
                    x.WithRemoteWebDriver(() => WebDriver)
                    .WithWebServer(new InternetWebServer("http://www.google.com/")));
                var title = host.NavigateToInitialPage <Page>().Title;

                Assert.That(title, Is.EqualTo("Google"));
            }
        }
示例#22
0
        public void RunTest()
        {
            using (var host = new SelenoHost())
            {
                host.Run(
                    x =>
                    x.WithRemoteWebDriver(() => WebDriver)
                     .WithWebServer(new InternetWebServer("http://www.google.com/")));
                var title = host.NavigateToInitialPage<Page>().Title;

                Assert.That(title, Is.EqualTo("Google"));
            }
        }
        public void Closing_SelenoHost_should_close_child_browser(string driverName)
        {
            Process.GetProcessesByName(driverName).ForEach(StopProcess);
            var selenoHost = new SelenoHost();
            Func <RemoteWebDriver> driver = GetBrowserFactory(driverName);

            selenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346,
                           c => c.WithRemoteWebDriver(driver));
            Process.GetProcessesByName(driverName).Length.Should().Be(1);

            selenoHost.Dispose();

            Process.GetProcessesByName(driverName).Should().BeEmpty();
        }
        public void Closing_SelenoHost_should_close_Iis_Express()
        {
            PatientlyStopProcess(IisExpress);
            Process.GetProcessesByName("chromedriver").ForEach(StopProcess);

            var selenoHost = new SelenoHost();
            selenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346,
                c => c.WithRemoteWebDriver(BrowserFactory.Chrome));
            Process.GetProcessesByName(IisExpress).Length.Should().Be(1);

            selenoHost.Dispose();

            Process.GetProcessesByName("chromedriver").Should().BeEmpty();
            Process.GetProcessesByName(IisExpress).Should().BeEmpty();
        }
        public void Can_buy_an_Album_when_registered()
        {
            var orderedPage = SelenoHost.NavigateToInitialPage <HomeController, HomePage>(x => x.Index())
                              .Menu
                              .GoToAdminForAnonymousUser()
                              .GoToRegisterPage()
                              .CreateValidUser(ObjectMother.CreateRegisterModel())
                              .GenreMenu
                              .SelectGenreByName("Disco")
                              .SelectAlbumByName("Le Freak")
                              .AddAlbumToCart()
                              .Checkout()
                              .SubmitShippingInfo(ObjectMother.CreateShippingInfo(), "Free");

            orderedPage.Title.Should().Be("Checkout Complete");
        }
示例#26
0
        public void Closing_SelenoHost_should_close_Iis_Express()
        {
            PatientlyStopProcess(IisExpress);
            Process.GetProcessesByName("chromedriver").ForEach(StopProcess);

            var selenoHost = new SelenoHost();

            selenoHost.Run("TestStack.Seleno.AcceptanceTests.Web", 12346,
                           c => c.WithRemoteWebDriver(BrowserFactory.Chrome));
            Process.GetProcessesByName(IisExpress).Length.Should().Be(1);

            selenoHost.Dispose();

            Process.GetProcessesByName("chromedriver").Should().BeEmpty();
            Process.GetProcessesByName(IisExpress).Should().BeEmpty();
        }
示例#27
0
        public void Can_buy_an_Album_when_registered()
        {
            var homepage     = SelenoHost.NavigateToInitialPage <HomeController, HomePage>(x => x.Index());
            var registerPage = homepage
                               .GoToAdminForAnonymousUser()
                               .GoToRegisterPage();

            registerPage.Username        = "******";
            registerPage.Email           = "*****@*****.**";
            registerPage.Password        = "******";
            registerPage.ConfirmPassword = "******";

            homepage = registerPage.SubmitRegistration();
            var orderedPage = PlaceOrder(homepage);

            orderedPage.Title.Should().Be("Checkout Complete");
        }
示例#28
0
        internal void Initalise()
        {
            switch (RunProfile)
            {
            case RunProfile.Remote:
                DesiredCapabilities capability = PopulateCapabilities();
                SetBrowserStackCredentials(capability);
                Browser = new RemoteWebDriver(new Uri(browserStackBrowserUri), capability);
                var selenoHost = new SelenoHost();
                selenoHost.Run(config =>
                {
                    config
                    .WithRemoteWebDriver(() => Browser)
                    .WithWebServer(new InternetWebServer(RootUrl));
                });

                Seleno = selenoHost;
                Seleno.Application.Browser.Manage().Window.Maximize();
                break;

            case RunProfile.Owasp:
                var   zapHost = ConfigurationManager.AppSettings["zapHost"];
                var   zapPort = ConfigurationManager.AppSettings["zapPort"];
                Proxy proxy   = new Proxy
                {
                    SslProxy  = $"{zapHost}:{zapPort}",
                    HttpProxy = $"{zapHost}:{zapPort}",
                    FtpProxy  = $"{zapHost}:{zapPort}",
                };

                Seleno  = LocalBrowserHost.GetInstanceFor(BrowserName, RootUrl, proxy);
                RootUrl = Seleno.Application.WebServer.BaseUrl;
                break;

            case RunProfile.Local:
            default:
                Seleno  = LocalBrowserHost.GetInstanceFor(BrowserName, RootUrl);
                RootUrl = Seleno.Application.WebServer.BaseUrl;
                Seleno.Application.Browser.Manage().Window.Maximize();
                break;
            }
        }
        public static SelenoHost GetInstanceFor(string key, string remoteRootUrl, Proxy proxy = null)
        {
            int counter = 0;

            if (!localSelenoInstances.ContainsKey(key))
            {
                var instance = new SelenoHost();
                if (InitiateInstance(instance, key, remoteRootUrl, proxy))
                {
                    localSelenoInstances.GetOrAdd(key, instance);
                }
                else
                {
                    if (counter < 3)
                    {
                        counter++;
                        Thread.Sleep(30000);
                        GetInstanceFor(key, remoteRootUrl, proxy);
                    }
                }
            }

            return(localSelenoInstances[key]);
        }
 public void Given_browser_is_on_a_page()
 {
     Page = SelenoHost.NavigateToInitialPage <HomePage>();
 }
示例#31
0
 public WebUiDriver(SelenoHost host)
 {
     Host = host;
 }
示例#32
0
 public void When_I_navigate_to_the_Movie_List_page()
 {
     _page = SelenoHost.NavigateToInitialPage <MoviesController, MovieListPage>(x => x.Index());
 }
示例#33
0
 public WebUiDriver(SelenoHost host)
 {
     Host = host;
 }
示例#34
0
 protected void Given_a_filled_in_form()
 {
     Page = SelenoHost
            .NavigateToInitialPage <HomePage>()
            .GoToWriteModelPage();
 }
示例#35
0
 public void SetUp()
 {
     _selenoHost           = new SelenoHost();
     _browserConfiguration = new BrowserConfiguration();
     _sut = Substitute.ForPartsOf <BrowserHost>(_selenoHost, _browserConfiguration);
 }
示例#36
0
 public void SetUp()
 {
     SelenoHost.Run("ChameleonForms.Example", 12345, c => c
                    .WithMinimumWaitTimeoutOf(TimeSpan.FromSeconds(1))
                    );
 }
示例#37
0
 public void Given_an_element_doesnt_exist_on_the_page()
 {
     _page = SelenoHost.NavigateToInitialPage <HomePage>()
             .GoToReadModelPage();
 }
示例#38
0
 public BrowserHost(SelenoHost selenoHost, BrowserConfiguration browserConfiguration = null)
 {
     _selenoHost   = selenoHost;
     Configuration = browserConfiguration ?? new BrowserConfiguration();
 }