/// <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);
        }
예제 #2
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"));
        }
        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);
        }
예제 #6
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);
        }
예제 #7
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);
        }
예제 #9
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);
        }
예제 #10
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));
            }
        }
        public void FireTriggersCommandEvent()
        {
            // 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;
            const string TEST_CAPTION = "This is a test";
            var          args         = new CommandEventArgs("Caption", TEST_CAPTION);

            sut.FireEvent("Command", args);

            // Assert
            Assert.Equal(TEST_CAPTION, sut.Text);
        }
        public void FriendlyUrlIsHandled()
        {
            // Arrange
            var expectedType = typeof(WebFormsTest.Web.Scenarios.Postback.Textbox_StaticId);

            // Act

            // Get the default page
            var locatedType = WebApplicationProxy.GetPageByLocation("/Scenarios/Postback/Textbox_StaticId").GetType();

            _testHelper.WriteLine("Type returned: " + locatedType.BaseType.FullName);

            // NOTE: This needs to look at the BaseType of the type returned from the GetPageByLocation
            // because this is the JIT'd page which is merged with the ASPX and inherits from the type
            // defined in the code-behind

            // Assert
            Assert.Equal(expectedType.FullName, locatedType.BaseType.FullName);
        }
예제 #13
0
        public void SimpleSelect()
        {
            // Arrange
            var expectedItems = WebFormsTest.Web.Scenarios.ModelBinding.Simple.SampleItems;

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

            sut.RunToEvent(WebFormEvent.PreRender);        // Need to execute all events
            var outHTML = sut.RenderHtml();

            _testHelper.WriteLine(outHTML);

            // Assert
            foreach (var item in expectedItems)
            {
                Assert.True(CanLocateTableWithCellContents(outHTML, "myGrid", item.ID.ToString()));
                Assert.True(CanLocateTableWithCellContents(outHTML, "myGrid", item.Name));
            }
        }
예제 #14
0
        private static void AddMasterPage(Page myPage)
        {
            if (string.IsNullOrEmpty(myPage.MasterPageFile))
            {
                return;
            }

            var master      = WebApplicationProxy.GetPageByLocation(myPage.MasterPageFile) as MasterPage;
            var masterField = typeof(Page).GetField("_master", BindingFlags.Instance | BindingFlags.NonPublic);

            masterField.SetValue(myPage, master);

            // Initialize the rest of the junk on page for the Master
            if (myPage.HasControls())
            {
                myPage.Controls.Clear();
            }
            var contentTemplates = ((Page)myPage).get_ContentTemplateCollection();

            master.SetContentTemplates(contentTemplates);
            master.SetOwnerControl((Page)myPage);
            master.InitializeAsUserControl(myPage.Page);
            myPage.Controls.Add(master);
        }
예제 #15
0
        public void CanIgetMasterPage()
        {
            var sut = WebApplicationProxy.GetPageByLocation("/Site.Master") as SiteMaster;

            Assert.NotNull(sut);
        }
예제 #16
0
        public void DefaultPage_TestPersonDataPopulation()
        {
            var mockPerson = new Data.Entity.Person
            {
                Id          = 5,
                FirstName   = "Joe",
                LastName    = "Brown",
                DateOfBirth = new DateTime(1980, 5, 1)
            };

            var yearProvider = new Mock <IYearProvider>();
            var personRepo   = new Mock <IPersonRepository>();

            personRepo.Setup(d => d.GetPerson(It.IsAny <int>())).Returns(mockPerson);

            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");

            page.RunToEvent(WebFormEvent.PreRender);

            var submitButton = page.FindControlRecursive <Button>("submitButton");

            var postData = new NameValueCollection();

            postData.Add("ctl00$MainContent$txtId", mockPerson.Id.ToString());
            page.MockPostData(postData);
            submitButton.FireEvent("Click", null);


            personRepo.Verify(x => x.GetPerson(It.Is <int>((val) => val == 5)), Times.Once());


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

            Assert.IsTrue(employeeData.Visible, "Expected employeeData control to be visible");

            var LabelId = page.FindControlRecursive <Label>("LabelId");

            Assert.AreEqual <string>(LabelId.Text, mockPerson.Id.ToString());

            var LabelFirstName = page.FindControlRecursive <Label>("LabelFirstName");

            Assert.AreEqual <string>(LabelFirstName.Text, mockPerson.FirstName);

            var LabelLastName = page.FindControlRecursive <Label>("LabelLastName");

            Assert.AreEqual <string>(LabelLastName.Text, mockPerson.LastName);

            var LabelDob = page.FindControlRecursive <Label>("LabelDob");

            Assert.AreEqual <string>(LabelDob.Text, mockPerson.DateOfBirth.ToShortDateString());



            //sut.sub
            var outHTML = page.RenderHtml();
        }