public IResourceHandler GetResourceHandler(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request) { var requestUrl = RequestUrl.FromString(request.Url); var api = GetApi(requestUrl.Api); var mimeType = mimeResolver.GetMimeType(Path.GetFileName(requestUrl.Resource)); return(ResourceHandler.FromByteArray(api.ProcessRequest(requestUrl), mimeType)); }
public void FromString_WithRequestedResource_ReturnsResourcePath() { var stringUrl = "http://test/test.csproj"; var result = RequestUrl.FromString(stringUrl); var resourceResult = result.Resource; Assert.AreEqual("test.csproj", resourceResult); }
public void FromString_WithApi_ReturnsApi() { var stringUrl = "http://test/test.csproj"; var result = RequestUrl.FromString(stringUrl); var apiResult = result.Api; Assert.AreEqual("test", apiResult); }
public void FromString_WithTwoGetParameters_ReturnsParameters() { var stringUrl = $"http://test/test.csproj?key=value&key2=value2"; var result = RequestUrl.FromString(stringUrl); var parameterResult = result.Parameters.Skip(1).Single(); Assert.AreEqual("key2", parameterResult.Key); Assert.AreEqual("value2", parameterResult.Value); }
public void ProcessRequest_FileSystemThrowsException_ReturnsFolderJson() { var setup = new TestSetup(); var requestUrl = new RequestUrl("FileApi", "files.json", new RequestParameter[] { new RequestParameter("Directory", @"C:\temp") }); setup.FileSystem .Setup(x => x.GetFiles(It.IsAny <string>())) .Throws(new System.IO.IOException("Could not load folder")); var testee = setup.CreateTestee(); var result = Encoding.UTF8.GetString( testee.ProcessRequest(RequestUrl.FromString(requestUrl.ToString()))); Assert.AreEqual("{\"files\":null,\"errorMessage\":\"Could not load folder\"}", result); }
public void ProcessRequest_FileSystemReturnsFiles_ReturnsFolderJson() { var setup = new TestSetup(); var requestUrl = new RequestUrl("FileApi", "files.json", new RequestParameter[] { new RequestParameter("Directory", @"C:\temp") }); setup.FileSystem .Setup(x => x.GetFiles(It.Is <string>(y => y == @"C:\temp"))) .Returns(new[] { new File { Kind = FileKind.File, Path = "TestFile" } }); var testee = setup.CreateTestee(); var result = Encoding.UTF8.GetString( testee.ProcessRequest(RequestUrl.FromString(requestUrl.ToString()))); Assert.AreEqual("{\"files\":[{\"kind\":0,\"path\":\"TestFile\"}],\"errorMessage\":null}", result); }