public ScriptedController(ControllerContext context, LoadedModuleHandle module) : base(module, true) { _ctx = context; HttpRequest = new HttpRequestImpl(_ctx.HttpContext.Request); HttpResponse = new HttpResponseImpl(_ctx.HttpContext.Response); if (_ctx.RouteData != null) { RouteValues = new MapImpl(); foreach (var routeData in _ctx.RouteData.Values) { var rv = RouteValues.AsObject(); rv.SetIndexedValue( ValueFactory.Create(routeData.Key), CustomMarshaller.ConvertToIValueSafe(routeData.Value, routeData.Value.GetType()) ); } } else { RouteValues = ValueFactory.Create(); } var typeClr = (Type)context.ActionDescriptor.Properties["type"]; var type = TypeManager.RegisterType(typeClr.Name, typeof(ScriptedController)); DefineType(type); InitOwnData(); }
public void RequestHeadersAccessibleThrough_MapImpl() { var request = new Mock <HttpRequest>(); var headers = new HeaderDictionary(); headers.Add("Content-Length", "12312"); headers.Add("Content-Encoding", "utf-8"); request.SetupGet(x => x.Headers).Returns(headers); var scriptRequest = new HttpRequestImpl(request.Object); Assert.Equal(2, scriptRequest.Headers.Count()); Assert.Equal(headers["Content-Length"], scriptRequest.Headers.GetIndexedValue(ValueFactory.Create("Content-Length")).AsString()); Assert.Equal(headers["Content-Encoding"], scriptRequest.Headers.GetIndexedValue(ValueFactory.Create("Content-Encoding")).AsString()); }
public void CookiesAreAccessible() { var fakeCookies = new Dictionary <string, string>(); fakeCookies["test"] = "test"; var reqCookies = new Mock <IRequestCookieCollection>(); reqCookies.Setup(x => x.GetEnumerator()).Returns(fakeCookies.GetEnumerator()); var requestMock = new Mock <HttpRequest>(); requestMock.SetupGet(x => x.Cookies).Returns(reqCookies.Object); var request = new HttpRequestImpl(requestMock.Object); Assert.Equal(request.Cookies.GetIndexedValue(ValueFactory.Create("test")).AsString(), "test"); }
public void FormDataIsAccessible() { lock (TestOrderingLock.Lock) { var se = new MinimalTypeSystemHack(); var fileMock = new Mock <IFormFile>(); fileMock.SetupGet(x => x.Name).Returns("uploaded"); var filesMock = new Mock <IFormFileCollection>(); filesMock.SetupGet(x => x.Count).Returns(1); filesMock.Setup(x => x.GetFile("uploaded")).Returns(fileMock.Object); filesMock.Setup(x => x.GetEnumerator()).Returns(() => { var arr = new List <IFormFile> { fileMock.Object }; return(arr.GetEnumerator()); }); var formMock = new Mock <IFormCollection>(); formMock.SetupGet(x => x.Files).Returns(filesMock.Object); var requestMock = new Mock <HttpRequest>(); requestMock.SetupGet(x => x.Form).Returns(formMock.Object); requestMock.SetupGet(x => x.Headers).Returns(new HeaderDictionary()); var request = new HttpRequestImpl(requestMock.Object); Assert.Equal(1, request.FormData.Files.Count()); Assert.IsType(typeof(FormDataCollectionContext), request.FormData); Assert.IsType(typeof(FormFilesCollectionContext), request.FormData.Files); var fFile = request.FormData.Files[0]; var fFileInt = request.FormData.Files["uploaded"]; Assert.Equal(fFile, fFileInt); } }
public HttpContextImpl(HttpContext context) { this.context = context; request = new HttpRequestImpl(context.Request); response = new HttpResponseImpl(context.Response); }