Example #1
0
        public KnapsackHttpHandler_tests()
        {
            var coffeeScriptCompiler = new CoffeeScriptCompiler(File.ReadAllText);

            storage       = IsolatedStorageFile.GetUserStoreForAssembly();
            rootDirectory = Path.GetFullPath(Guid.NewGuid().ToString());

            // Create a fake set of scripts in modules.
            Directory.CreateDirectory(Path.Combine(rootDirectory, "lib"));
            File.WriteAllText(Path.Combine(rootDirectory, "lib", "jquery.js"),
                              "function jQuery(){}");
            File.WriteAllText(Path.Combine(rootDirectory, "lib", "knockout.js"),
                              "function knockout(){}");

            Directory.CreateDirectory(Path.Combine(rootDirectory, "app"));
            File.WriteAllText(Path.Combine(rootDirectory, "app", "widgets.js"),
                              "/// <reference path=\"../lib/jquery.js\"/>\r\n/// <reference path=\"../lib/knockout.js\"/>\r\nfunction widgets(){}");
            File.WriteAllText(Path.Combine(rootDirectory, "app", "main.js"),
                              "/// <reference path=\"widgets.js\"/>\r\nfunction main() {}");
            File.WriteAllText(Path.Combine(rootDirectory, "app", "test.coffee"),
                              "x = 1");

            var builder = new ScriptModuleContainerBuilder(storage, rootDirectory, coffeeScriptCompiler);

            builder.AddModule("lib", null);
            builder.AddModule("app", null);
            scriptModuleContainer = builder.Build();
            scriptModuleContainer.UpdateStorage("scripts.xml");

            var styleBuilder = new StylesheetModuleContainerBuilder(storage, rootDirectory, "/");

            handler = new KnapsackHttpHandler(() => scriptModuleContainer, () => stylesheetModuleContainer, coffeeScriptCompiler);

            httpContext          = new Mock <HttpContextBase>();
            httpRequest          = new Mock <HttpRequestBase>();
            requestHeaders       = new NameValueCollection();
            responseHeaders      = new NameValueCollection();
            httpResponse         = new Mock <HttpResponseBase>();
            responseOutputStream = new MemoryStream();
            cache  = new Mock <HttpCachePolicyBase>();
            server = new Mock <HttpServerUtilityBase>();

            httpRequest.SetupGet(r => r.Headers).Returns(requestHeaders);
            httpResponse.SetupGet(r => r.Headers).Returns(responseHeaders);
            httpResponse.SetupGet(r => r.OutputStream).Returns(responseOutputStream);
            httpResponse.SetupGet(r => r.Cache).Returns(cache.Object);
            httpContext.SetupGet(c => c.Request).Returns(httpRequest.Object);
            httpContext.SetupGet(c => c.Response).Returns(httpResponse.Object);
            httpContext.SetupGet(c => c.Server).Returns(server.Object);

            httpResponse.Setup(r => r.Write(It.IsAny <string>())).Callback <string>(data =>
            {
                var writer = new StreamWriter(responseOutputStream);
                writer.Write(data);
                writer.Flush();
            });
        }
Example #2
0
        ModuleContainer BuildStylesheetModuleContainer(IsolatedStorageFile storage, KnapsackSection config)
        {
            var builder = new StylesheetModuleContainerBuilder(storage, HttpRuntime.AppDomainAppPath, HttpRuntime.AppDomainAppVirtualPath);

            return(BuildModuleContainer(builder, config.Styles, "styles"));
        }
Example #3
0
 ModuleContainer BuildStylesheetModuleContainer(IsolatedStorageFile storage, KnapsackSection config)
 {
     var builder = new StylesheetModuleContainerBuilder(storage, HttpRuntime.AppDomainAppPath, HttpRuntime.AppDomainAppVirtualPath);
     return BuildModuleContainer(builder, config.Styles, "styles");
 }