Пример #1
0
        public void DefaultPage_TestPageInitialState()
        {
            var personRepo   = new Mock <IPersonRepository>();
            var yearProvider = new Mock <IYearProvider>();

            var collection = new ServiceCollection();

            collection.AddScoped((sp) => { return(personRepo.Object); });
            collection.AddScoped((sp) => { return(yearProvider.Object); });

            var provider = new Services.ServiceProvider(collection.BuildServiceProvider());


            WebApplicationProxy.Create(typeof(_Default), provider);

            var page = WebApplicationProxy.GetPageByLocation <_Default>("/default.aspx", collection);

            page.RunToEvent(WebFormEvent.PreRender);

            var employeeData = page.FindControlRecursive <HtmlGenericControl>("employeeData");

            Assert.IsFalse(employeeData.Visible, "Expected employeeData control to be visible=false");


            var txtId = page.FindControlRecursive <TextBox>("txtId");

            Assert.IsTrue(txtId.Text == string.Empty, "Expected ID text box to have no value");


            personRepo.Verify(x => x.GetPerson(It.IsAny <int>()), Times.Never());
        }
Пример #2
0
        public void DefaultPage_VerifyFooterContent()
        {
            var personRepo   = new Mock <IPersonRepository>();
            var yearProvider = new Mock <IYearProvider>();

            yearProvider.Setup(x => x.CurrentYear).Returns(2000);

            var collection = new ServiceCollection();

            collection.AddScoped((sp) => { return(personRepo.Object); });
            collection.AddScoped((sp) => { return(yearProvider.Object); });

            var provider = new Services.ServiceProvider(collection.BuildServiceProvider());


            WebApplicationProxy.Create(typeof(_Default), provider);

            var page = WebApplicationProxy.GetPageByLocation <_Default>("/default.aspx", collection);

            page.RunToEvent(WebFormEvent.PreRender);

            var pageHtml = page.RenderHtml();

            var parser    = new HtmlParser();
            var document  = parser.Parse(pageHtml);
            var footerDiv = document.QuerySelectorAll("div[class=footer]");

            Assert.IsTrue(footerDiv.Length == 1, "Expected exactly one footer div");
            Assert.IsTrue(footerDiv[0].TextContent == "© 2000", "Value of label was incorrect");
        }
Пример #3
0
 public Sandbox(string assemblyFile)
 {
     _AppDomain = AppDomain.CreateDomain(Guid.NewGuid().ToString());
     _Proxy     = (WebApplicationProxy)_AppDomain.CreateInstanceAndUnwrap(
         Assembly.GetExecutingAssembly().FullName,
         "WebServer.WebApplication.Proxy");
     _Proxy.Initialize(assemblyFile);
 }
Пример #4
0
        public void WhatIsMasterPageFileInPageNotUsingMasterPage()
        {
            var sut = WebApplicationProxy.GetPageByLocation <Textbox_StaticId>("/Scenarios/Postback/Textbox_StaticId.aspx");

            _helper.WriteLine("MasterPageFile: " + sut.MasterPageFile);

            Assert.Null(sut.MasterPageFile);
        }
Пример #5
0
        public void BeginProcessing()
        {
            var sut = WebApplicationProxy.GetPageByLocation("/Default.aspx") as _Default;


            _testHelper.WriteLine("Controls: " + sut.Controls.Count);
            Assert.NotEqual(0, sut.Controls.Count);
            _testHelper.WriteLine("WE GOT THE CONTROL TREE!!");
        }
        public PrecompilerFixture()
        {
            Uri codeBase      = new Uri(GetType().Assembly.CodeBase);
            var currentFolder = new DirectoryInfo(Path.GetDirectoryName(codeBase.LocalPath));

            WebFolder = currentFolder.Parent.Parent.Parent.GetDirectories("WebFormsTest.Web")[0];

            WebApplicationProxy.Create(WebFolder.FullName, true);
        }
Пример #7
0
        public void SessionHasSessionId()
        {
            // Arrange

            // Act
            var sut = WebApplicationProxy.GetNewSession();

            // Assert
            Assert.False(string.IsNullOrEmpty(sut.SessionID));
        }
Пример #8
0
        public void GetTheHttpApplicationTypeFindsGlobal()
        {
            // Arrange

            // Act
            var t = WebApplicationProxy.GetHttpApplicationType();

            // Assert
            Assert.NotNull(t);
        }
Пример #9
0
        public void CanFetchConnectionStrings()
        {
            // Arrange
            var expectedValue = "aspnet-WebFormsTest-20151207082329";

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Web.Scenarios.WebConfig.AppSettings>("/Scenarios/WebConfig/AppSettings.aspx");
            var extractedSetting = sut.TestInitialCatalog;

            // Assert
            Assert.Equal(expectedValue, extractedSetting);
        }
Пример #10
0
        public void CanFetchAppSettings()
        {
            // Arrange
            var sut           = WebApplicationProxy.GetPageByLocation <Web.Scenarios.WebConfig.AppSettings>("/Scenarios/WebConfig/AppSettings.aspx");
            var expectedValue = "ThisIsMyTestSettingValue";

            // Act
            var extractedSetting = sut.TestConfigValue;

            // Assert
            Assert.Equal(expectedValue, extractedSetting);
        }
Пример #11
0
        public void VerifyIsInTestModeIsSetInHttpContextCurrent()
        {
            // Arrange
            WebApplicationProxy.SubstituteDummyHttpContext("/");

            // Act
            HttpContext testContext = HttpContext.Current;

            // Assert
            Assert.NotNull(testContext);
            Assert.True(testContext.Items.Contains("IsInTestMode"));
        }
Пример #12
0
        public void SessionOnPageMatchesHttpContextCurrent()
        {
            // Arrange

            // Act
            var sut     = WebApplicationProxy.GetNewSession();
            var thePage = WebApplicationProxy.GetPageByLocation("/default.aspx", ctx => ctx.AddSession(sut)) as Page;

            // Assert
            Assert.Same(sut, thePage.Session);
            Assert.NotNull(HttpContext.Current);
        }
Пример #13
0
        public void GetPageByType()
        {
            // Get the default page
            var t = WebApplicationProxy.GetPageByLocation("/Scenarios/Postback/Textbox_StaticId.aspx");

            _testHelper.WriteLine("Type returned: " + t.GetType().FullName);

            var a = t.GetType().Assembly;

            _testHelper.WriteLine("ASPNet assembly at: " + a.Location);

            t = WebApplicationProxy.GetPageByLocation("/Default.aspx");
        }
Пример #14
0
        public void ServerMapPathHandlesAppRelativePath()
        {
            // Arrange

            // Act
            var defaultPage  = WebApplicationProxy.GetPageByLocation <_Default>("/Default.aspx");
            var sut          = defaultPage.Server;
            var resultFolder = sut.MapPath("~/Scenarios");

            // Assert
            _testHelper.WriteLine("Web Folder Name: " + _Fixture.WebFolder.FullName);
            Assert.Equal(System.IO.Path.Combine(_Fixture.WebFolder.FullName, "Scenarios"), resultFolder);
        }
Пример #15
0
        public void CantFireSameEventTwice()
        {
            // Arrange
            base.context.SetupGet(c => c.IsDebuggingEnabled).Returns(true);

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Web.Scenarios.RunToEvent.VerifyOrder>("/Scenarios/RunToEvent/VerifyOrder.aspx");

            sut.FireEvent(WebFormEvent.Init);

            // Assert
            Assert.Throws <InvalidOperationException>(() => sut.FireEvent(WebFormEvent.Init));
        }
Пример #16
0
        public void ServerPropertyHandlesMapPath()
        {
            // Arrange

            // Act
            var defaultPage = WebApplicationProxy.GetPageByLocation <_Default>("/Default.aspx");
            var sut         = defaultPage.Server;
            var baseFolder  = sut.MapPath("/");

            // Assert
            _testHelper.WriteLine("Web Folder Name: " + _Fixture.WebFolder.FullName);
            Assert.Equal(_Fixture.WebFolder.FullName, baseFolder);
        }
Пример #17
0
        public void CheckSessionExistsOnInjectedContextWithSessionOnWebService()
        {
            var session = WebApplicationProxy.GetNewSession(new Dictionary <string, object>
            {
                ["TestCode"] = "123"
            });

            var service = WebApplicationProxy.GetService <TestWebService>(context =>
            {
                context.AddSession(session);
            });

            Assert.Equal("123", service.Session["TestCode"]);
        }
Пример #18
0
        public void ClientIdDoesNotMatchControlId()
        {
            // Arrange

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Buttons_AutoId>("/Scenarios/ControlTree/Buttons_AutoId.aspx");

            // Run to PreRender, the buttons are in a FormView that is databound in Load
            sut.RunToEvent(WebFormEvent.PreRender);

            // Assert
            Assert.NotEqual("buttonA", sut.ButtonA.ClientID);
            Assert.NotEqual("buttonB", sut.ButtonB.ClientID);
        }
Пример #19
0
        public void IsPostbackShouldBeTrue()
        {
            // Arrange
            var postData = new NameValueCollection();

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Textbox_StaticId>("/Scenarios/Postback/Textbox_StaticId.aspx");

            sut.MockPostData(postData);
            sut.RunToEvent(WebFormEvent.PreRender);

            // Assert
            Assert.True(sut.IsPostBack, "Page 'IsPostBack' is not set to true");
        }
Пример #20
0
        public void MasterPageIsCreated()
        {
            // Arrange

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <_Default>("/default.aspx");

            _helper.WriteLine($"TopLevelFilesCompiledCompleted: {BuildManagerWrapper.TopLevelFilesCompiledCompleted}");
            _helper.WriteLine($"MemoryCache == null: {BuildManagerWrapper.MemoryCache == null}");

            // Assert
            Assert.NotNull(sut.Master);
            _helper.WriteLine("Master Page Cheeseburger: " + ((SiteMaster)sut.Master).cheeseburger);
        }
Пример #21
0
        public void GetPageByLocationShouldHandleContext()
        {
            // Arrange
            Action <HttpContext> addContext = new Action <HttpContext>(ctx => ctx.Items.Add("test", "test"));
            var defaultPage = WebApplicationProxy.GetPageByLocation <_Default>("/Default.aspx", addContext);

            // Act
            //HttpContext.Current.Items.Add("test", "test");
            //var myDict = new Dictionary<string, string>();
            //myDict.Add("test", "test");
            //base.context.SetupGet(c => c.Items).Returns(myDict);

            // Assert
            Assert.True(defaultPage.Context().Items.Contains("test"));
        }
Пример #22
0
        /// <summary>
        /// Disabled until we fix the AutoEventWireup feature
        /// </summary>
        public void LoadEventWiredUp()
        {
            // Arrange

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <AutoEventWireup>("/AutoEventWireup.aspx");

            sut.FireEvent(WebFormEvent.Init);
            sut.FireEvent(WebFormEvent.Load);

            // Assert
            var responseText = sut.RenderHtml();

            Assert.Contains(AutoEventWireup.LOAD_INDICATOR, responseText);
        }
Пример #23
0
        public void StopAtCorrectEvent(WebFormEvent evt)
        {
            // Arrange
            base.context.SetupGet(c => c.IsDebuggingEnabled).Returns(true);

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Web.Scenarios.RunToEvent.VerifyOrder>("/Scenarios/RunToEvent/VerifyOrder.aspx");

            sut.RunToEvent(evt);

            // Assert
            int eventCount = (int)evt;

            Assert.Equal(eventCount, sut.EventList.Count);
        }
        public void OriginalValueSet()
        {
            // Arrange

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <PageWithUserControl>("/Scenarios/ControlTree/PageWithUserControl.aspx");

            sut.RunToEvent(WebFormEvent.PreRender);

            // Assert
            var theControl = sut.FindControl("MyLinkControl") as MyLinkControl;
            var theLink    = theControl.FindControl("myLink") as LinkButton;

            Assert.Equal("New Text", theControl.LinkButtonText);
            Assert.Equal("DoStuff", theLink.CommandName);
        }
        public void FireTriggersClickEvent()
        {
            // Arrange
            var page = WebApplicationProxy.GetPageByLocation <Buttons_AutoId>("/Scenarios/ControlTree/Buttons_AutoId.aspx");

            // Run to PreRender, the buttons are in a FormView that is databound in Load
            page.RunToEvent(WebFormEvent.PreRender);

            // Act
            var sut = page.ButtonA;

            sut.FireEvent("Click", null);

            // Assert
            Assert.False(sut.Enabled);
        }
Пример #26
0
        public void TextboxContentChanged()
        {
            // Arrange
            var          postData = new NameValueCollection();
            const string NEW_TEXT = "Posted back";

            postData.Add("TestTextboxControl", NEW_TEXT);

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Textbox_StaticId>("/Scenarios/Postback/Textbox_StaticId.aspx");

            sut.MockPostData(postData);
            sut.RunToEvent(WebFormEvent.PreRender);

            // Assert
            Assert.Equal(NEW_TEXT, sut.TestControl.Text);
        }
Пример #27
0
        public void AllEventsInOrder()
        {
            // Arrange
            base.context.SetupGet(c => c.IsDebuggingEnabled).Returns(true);

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Web.Scenarios.RunToEvent.VerifyOrder>("/Scenarios/RunToEvent/VerifyOrder.aspx");

            sut.RunToEvent();

            // Assert
            Assert.Equal(4, sut.EventList.Count);

            for (int i = 1; i <= 4; i++)
            {
                Assert.Equal(i.ToString(), sut.EventList[i].Substring(0, 1));
            }
        }
Пример #28
0
        public void IsAvailable()
        {
            // Arrange
            //var cache = WebApplicationProxy.Cache;
            var TEST_VALUE = new Uri("http://www.github.com");
            //cache.Insert("url", TEST_VALUE);
            //context.SetupGet(ctx => ctx.Cache).Returns(cache);

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <_Default>("/default.aspx");

            HttpContext.Current.Cache.Insert("url", TEST_VALUE);
            //sut.Context = context.Object;

            // Assert
            Assert.NotNull(sut.Context().Cache.Get("url"));
            Assert.Equal(TEST_VALUE, sut.Context().Cache.Get("url"));
        }
        public void VerifyControlIsConfiguredProperly()
        {
            // Arrange
            var sut = WebApplicationProxy.GetPageByLocation <Textbox_StaticId>("/Scenarios/Postback/Textbox_StaticId.aspx");

            var EXPECTED = "Configured Text";

            // Act
            sut.SetPageState <TextBox>("TestTextboxControl", tb =>
            {
                tb.Text = EXPECTED;
            });

            // Assert
            var thisTb = sut.FindControl("TestTextboxControl") as TextBox;

            Assert.Equal(EXPECTED, thisTb.Text);
        }
Пример #30
0
        public void TextboxAddedToControlSet()
        {
            // Arrange

            // Act
            var sut = WebApplicationProxy.GetPageByLocation <Textbox_StaticId>("/Scenarios/Postback/Textbox_StaticId.aspx");

            sut.FireEvent(WebFormEvent.Init, EventArgs.Empty);

            // Assert
            Assert.NotEqual(0, sut.Controls.Count);
            Assert.NotNull(sut.FindControl("TestTextboxControl"));

            TextBox tb = sut.FindControl("TestTextboxControl") as TextBox;

            output.WriteLine("Textbox found with text: " + tb.Text);
            Assert.Equal("Initial Text", tb.Text);
        }