public void LoadFromAssembly()
        {
            loader.AddAssemblySource(new AssemblySourceInfo("Castle.MonoRail.Framework.Tests", "Castle.MonoRail.Framework.Tests"));

            Assert.IsFalse(loader.HasSource("Content/contentinassembly2.vm"));
            Assert.IsTrue(loader.HasSource("Content/contentinassembly.vm"));
            Assert.IsNotNull(loader.GetViewSource("Content/contentinassembly.vm"));

            Assert.IsFalse(loader.HasSource("Content\\contentinassembly2.vm"));
            Assert.IsTrue(loader.HasSource("Content\\contentinassembly.vm"));
            Assert.IsNotNull(loader.GetViewSource("Content\\contentinassembly.vm"));
        }
예제 #2
0
        public static IViewEngineManager GetViewManager()
        {
            var config = new MonoRailConfiguration();

            config.ViewEngineConfig.ViewEngines.Add(new ViewEngineInfo(typeof(BooViewEngine), false));
            config.ViewEngineConfig.ViewPathRoot = Path.Combine(@"..\..\..\AdminInterface", "Views");

            var provider = new FakeServiceProvider();
            var loader   = new FileAssemblyViewSourceLoader(config.ViewEngineConfig.ViewPathRoot);

            loader.AddAssemblySource(new AssemblySourceInfo("Common.Web.Ui", "Common.Web.Ui.Views"));
            provider.Services.Add(typeof(IMonoRailConfiguration), config);
            provider.Services.Add(typeof(IViewSourceLoader), loader);

            var manager = new DefaultViewEngineManager();

            manager.Service(provider);
            var options    = Exposed.From(manager).viewEnginesFastLookup[0].Options;
            var namespaces = options.NamespacesToImport;

            namespaces.Add("Boo.Lang.Builtins");
            namespaces.Add("AdminInterface.Helpers");
            namespaces.Add("Common.Web.Ui.Helpers");
            options.AssembliesToReference.Add(Assembly.Load("AdminInterface"));
            return(manager);
        }
예제 #3
0
        public static IViewEngineManager Init(Assembly assembly = null)
        {
            if (assembly == null)
            {
                assembly = Assembly.GetEntryAssembly();
            }

            ActiveRecordStarter.Initialize(
                new[] {
                Assembly.Load("AdminInterface"),
                Assembly.Load("Common.Web.Ui")
            },
                ActiveRecordSectionHandler.Instance);

            var config = new MonoRailConfiguration();

            config.ViewEngineConfig.ViewEngines.Add(new ViewEngineInfo(typeof(BooViewEngine), false));

            var loader = new FileAssemblyViewSourceLoader("");

            loader.AddAssemblySource(new AssemblySourceInfo(assembly, assembly.GetName().Name + ".Views"));

            var provider = new FakeServiceProvider();

            provider.Services.Add(typeof(IMonoRailConfiguration), config);
            provider.Services.Add(typeof(IViewSourceLoader), loader);

            var manager = new DefaultViewEngineManager();

            manager.Service(provider);
            var options = ((BooViewEngine)manager.ResolveEngine(".brail")).Options;

            options.AssembliesToReference.Add(Assembly.Load("Common.Web.Ui"));
            var namespaces = options.NamespacesToImport;

            namespaces.Add("Boo.Lang.Builtins");
            namespaces.Add("AdminInterface.Helpers");
            namespaces.Add("Common.Web.Ui.Helpers");

            BaseMailer.ViewEngineManager = manager;
            return(manager);
        }
		public void SetUp()
		{
			Layout = null;
			PropertyBag = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
			Helpers = new HelperDictionary();
			StubMonoRailServices services = new StubMonoRailServices();
			services.UrlBuilder = new DefaultUrlBuilder(new StubServerUtility(), new StubRoutingEngine());
			services.UrlTokenizer = new DefaultUrlTokenizer();
			UrlInfo urlInfo = new UrlInfo(
				"example.org", "test", "/TestBrail", "http", 80,
				"http://test.example.org/test_area/test_controller/test_action.tdd",
				Area, ControllerName, Action, "tdd", "no.idea");
			StubEngineContext = new StubEngineContext(new StubRequest(), new StubResponse(), services,
													  urlInfo);
			StubEngineContext.AddService<IUrlBuilder>(services.UrlBuilder);
			StubEngineContext.AddService<IUrlTokenizer>(services.UrlTokenizer);

			ViewComponentFactory = new DefaultViewComponentFactory();
			ViewComponentFactory.Service(StubEngineContext);
			ViewComponentFactory.Initialize();

			StubEngineContext.AddService<IViewComponentFactory>(ViewComponentFactory);
			ControllerContext = new ControllerContext();
			ControllerContext.Helpers = Helpers;
			ControllerContext.PropertyBag = PropertyBag;
			StubEngineContext.CurrentControllerContext = ControllerContext;


			Helpers["formhelper"] = Helpers["form"] = new FormHelper(StubEngineContext);
			Helpers["urlhelper"] = Helpers["url"] = new UrlHelper(StubEngineContext);
			Helpers["dicthelper"] = Helpers["dict"] = new DictHelper(StubEngineContext);
			Helpers["DateFormatHelper"] = Helpers["DateFormat"] = new DateFormatHelper(StubEngineContext);

			string viewPath = Path.Combine(viewSourcePath, "Views");

			FileAssemblyViewSourceLoader loader = new FileAssemblyViewSourceLoader(viewPath);
			loader.AddAssemblySource(
				new AssemblySourceInfo(Assembly.GetExecutingAssembly().FullName,
									   "Castle.MonoRail.Views.Brail.Tests.ResourcedViews"));

			BooViewEngine = new BooViewEngine();
			BooViewEngine.Options = new BooViewEngineOptions();
			BooViewEngine.Options.SaveDirectory = Environment.CurrentDirectory;
			BooViewEngine.Options.SaveToDisk = false;
			BooViewEngine.Options.Debug = true;
			BooViewEngine.Options.BatchCompile = false;

			BooViewEngine.SetViewSourceLoader(loader);
			BooViewEngine.Initialize();

			BeforEachTest();
		}
예제 #5
0
        public void SetUp()
        {
            Layout      = null;
            PropertyBag = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
            Helpers     = new HelperDictionary();
            var services = new StubMonoRailServices
            {
                UrlBuilder   = new DefaultUrlBuilder(new StubServerUtility(), new StubRoutingEngine()),
                UrlTokenizer = new DefaultUrlTokenizer()
            };
            var urlInfo = new UrlInfo(
                "example.org", "test", "/TestBrail", "http", 80,
                "http://test.example.org/test_area/test_controller/test_action.tdd",
                Area, ControllerName, Action, "tdd", "no.idea");

            StubEngineContext = new StubEngineContext(new StubRequest(), new StubResponse(), services,
                                                      urlInfo);
            StubEngineContext.AddService <IUrlBuilder>(services.UrlBuilder);
            StubEngineContext.AddService <IUrlTokenizer>(services.UrlTokenizer);

            ViewComponentFactory = new DefaultViewComponentFactory();
            ViewComponentFactory.Service(StubEngineContext);

            StubEngineContext.AddService <IViewComponentFactory>(ViewComponentFactory);
            ControllerContext = new ControllerContext
            {
                Helpers     = Helpers,
                PropertyBag = PropertyBag
            };
            StubEngineContext.CurrentControllerContext = ControllerContext;


            Helpers["formhelper"]       = Helpers["form"] = new FormHelper(StubEngineContext);
            Helpers["urlhelper"]        = Helpers["url"] = new UrlHelper(StubEngineContext);
            Helpers["dicthelper"]       = Helpers["dict"] = new DictHelper(StubEngineContext);
            Helpers["DateFormatHelper"] = Helpers["DateFormat"] = new DateFormatHelper(StubEngineContext);

            var viewPath = Path.Combine(viewSourcePath, "Views");

            var loader = new FileAssemblyViewSourceLoader(viewPath);

            loader.AddAssemblySource(
                new AssemblySourceInfo(Assembly.GetExecutingAssembly().FullName,
                                       "Castle.MonoRail.Views.Brail.Tests.ResourcedViews"));

            BooViewEngine = new BooViewEngine
            {
                Options = new BooViewEngineOptions
                {
                    SaveDirectory = Environment.CurrentDirectory,
                    SaveToDisk    = false,
                    Debug         = true,
                    BatchCompile  = false
                }
            };

            BooViewEngine.SetViewSourceLoader(loader);
            BooViewEngine.Initialize();

            BeforEachTest();
        }