public void LoadControl_WithControlThrowingHttpParseException_LoadsErrorControlWithExceptionProperty() { // arrange var containerControl = new Mock <IContainerControl>(); var exception = new HttpParseException(); var userControl = new Mock <UserControl>(); userControl.Stub(c => c.ID); var errorControl = userControl.As <IErrorControl>(); userControl.Object.ID = "Foo.Bar"; errorControl.Stub(c => c.Exception); containerControl.Setup(tc => tc.LoadControl("~/Skins/VsShirts/Controls/ViewPost.ascx")).Throws(exception); containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns((UserControl)errorControl.Object); var skin = new SkinConfig { TemplateFolder = "VsShirts" }; var skinControlLoader = new SkinControlLoader(containerControl.Object, skin); // act var control = skinControlLoader.LoadControl("ViewPost") as IErrorControl; // assert Assert.AreEqual(exception, control.Exception.InnerException); }
protected override void OnInit(EventArgs e) { foreach (string controlName in _controls) { var skin = HostInfo.GetAggregateSkin(); var skinControlLoader = new SkinControlLoader(this, skin); Control control = skinControlLoader.LoadControl(controlName); CenterBodyControl.Controls.Add(control); } base.OnInit(e); }
public void LoadControl_WithControlName_ReplacesDotWithUnderscoreInId() { // arrange var containerControl = new Mock <IContainerControl>(); var loadedControl = new UserControl { ID = "Foo.Bar" }; containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Returns(loadedControl); var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" }; var skinControlLoader = new SkinControlLoader(containerControl.Object, skin); // act var control = skinControlLoader.LoadControl("ViewPost"); // assert Assert.AreEqual("Foo_Bar", control.ID); }
public void LoadControl_WithControlName_LoadsTheControlFromTheSkinFolder() { // arrange var containerControl = new Mock <IContainerControl>(); var loadedControl = new UserControl { ID = "Foo.Bar" }; containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Returns(loadedControl); var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" }; var skinControlLoader = new SkinControlLoader(containerControl.Object, skin); // act var control = skinControlLoader.LoadControl("ViewPost"); // assert Assert.AreSame(loadedControl, control); }
public void LoadControl_WithControlThrowingHttpParseException_LoadsErrorControlWithExceptionHavingControlPath() { // arrange var containerControl = new Mock <IContainerControl>(); var exception = new HttpParseException(); var errorControl = new Error(); containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(exception); containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns(errorControl); var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" }; var skinControlLoader = new SkinControlLoader(containerControl.Object, skin); // act var control = skinControlLoader.LoadControl("ViewPost") as IErrorControl; // assert Assert.AreEqual("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx", control.Exception.ControlPath); }
public void LoadControl_WithControlThrowingHttpException_LoadsFallbackControl() { // arrange var containerControl = new Mock <IContainerControl>(); var fallbackControl = new UserControl { ID = "Foo.Bar" }; containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(new HttpException()); containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/ViewPost.ascx")).Returns(fallbackControl); var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" }; var skinControlLoader = new SkinControlLoader(containerControl.Object, skin); // act var control = skinControlLoader.LoadControl("ViewPost"); // assert Assert.AreSame(fallbackControl, control); }
public void InitializeBlogPage() { var skin = SkinConfig.GetCurrentSkin(Blog, SubtextContext.HttpContext); var skinControlLoader = new SkinControlLoader(this, skin); InitializeControls(skinControlLoader); if (skin.HasCustomCssText) { CustomCss.Attributes.Add("href", Url.CustomCssUrl()); } else { //MAC IE does not like the empy CSS file, plus its a waste :) CustomCss.Visible = false; } if (Rsd != null) { Rsd.Attributes.Add("href", Url.RsdUrl(Blog).ToString()); } if (wlwmanifest != null) { wlwmanifest.Attributes.Add("href", Url.WlwManifestUrl()); } if (opensearch != null) { opensearch.Attributes.Add("href", Url.OpenSearchDescriptorUrl()); opensearch.Attributes.Add("Title", Blog.Title); } if (RSSLink != null) { RSSLink.Attributes.Add("href", Url.RssUrl(Blog).ToString()); } // if specified, add script elements if (scripts != null) { scripts.Text = ScriptRenderer.RenderScriptElementCollection(skin.SkinKey); } if (styles != null) { styles.Text = StyleRenderer.RenderStyleElementCollection(skin.SkinKey); } if (openIDServer != null && !string.IsNullOrEmpty(Blog.OpenIdServer)) { openIDServer.Text = string.Format(OpenIdServerLocation, Blog.OpenIdServer); } if (openIDDelegate != null && !string.IsNullOrEmpty(Blog.OpenIdDelegate)) { openIDDelegate.Text = string.Format(OpenIdDelegateLocation, Blog.OpenIdDelegate); } if (metaTags != null) { metaTags.Blog = Blog; } }