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()); }
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"); }
public Sandbox(string assemblyFile) { _AppDomain = AppDomain.CreateDomain(Guid.NewGuid().ToString()); _Proxy = (WebApplicationProxy)_AppDomain.CreateInstanceAndUnwrap( Assembly.GetExecutingAssembly().FullName, "WebServer.WebApplication.Proxy"); _Proxy.Initialize(assemblyFile); }
public void WhatIsMasterPageFileInPageNotUsingMasterPage() { var sut = WebApplicationProxy.GetPageByLocation <Textbox_StaticId>("/Scenarios/Postback/Textbox_StaticId.aspx"); _helper.WriteLine("MasterPageFile: " + sut.MasterPageFile); Assert.Null(sut.MasterPageFile); }
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); }
public void SessionHasSessionId() { // Arrange // Act var sut = WebApplicationProxy.GetNewSession(); // Assert Assert.False(string.IsNullOrEmpty(sut.SessionID)); }
public void GetTheHttpApplicationTypeFindsGlobal() { // Arrange // Act var t = WebApplicationProxy.GetHttpApplicationType(); // Assert Assert.NotNull(t); }
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); }
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); }
public void VerifyIsInTestModeIsSetInHttpContextCurrent() { // Arrange WebApplicationProxy.SubstituteDummyHttpContext("/"); // Act HttpContext testContext = HttpContext.Current; // Assert Assert.NotNull(testContext); Assert.True(testContext.Items.Contains("IsInTestMode")); }
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); }
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"); }
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); }
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)); }
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); }
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"]); }
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); }
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"); }
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); }
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")); }
/// <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); }
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); }
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); }
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 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); }
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); }