public void ViewRegistrationTest(string viewsToRegister, int expectedResult) { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); int result = target.RegisterViews(viewsToRegister); Assert.AreEqual(expectedResult, result); }
public void ViewRegistrationGetMaskMatches(string viewsToRegister) { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); int result = target.RegisterViews(viewsToRegister); Assert.AreEqual(result, target.GetViewMask(viewsToRegister)); }
public void GetInstanceFromTag(string markupTag, Type expectedControlType) { RootElementMaster master = new RootElementMaster(TEST_FACTORY_KEY); BaseGadgetControl gotten = testFactory.CreateControl(markupTag, string.Empty, ParseContext.DefaultContext, master); Assert.AreEqual(expectedControlType, gotten.GetType()); }
public void ExternalRenderControlsInitiallyEmpty() { string view = "canvas"; RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); Assert.IsFalse(target.HasExternalServerRenderControls()); Assert.IsFalse(target.HasExternalServerRenderControls(view), "Named view incorrect"); }
public void DependentAttributeGetInstance(string markup, Type expectedControlType, Type controlContextType) { RootElementMaster master = new RootElementMaster(TEST_FACTORY_KEY); ParseContext context = new ParseContext(controlContextType); BaseGadgetControl gotten = testFactory.CreateControl(markup, context, master); Assert.AreEqual(expectedControlType, gotten.GetType()); }
public void ViewsGetIntMask(string viewsToRegister, string viewsToTest, int expectedResult) { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); target.RegisterViews(viewsToRegister); int result = target.GetViewMask(viewsToTest); Assert.AreEqual(expectedResult, result); }
public void TestRegisterDataItem() { RootElementMaster root = new RootElementMaster(TEST_FACTORY_KEY); DataScript target = new DataScript(DataScriptBlockData.Source, null, root); DataContext dc = target.MyRootMaster.MasterDataContext; target.ConfirmDataItemsRegistered(); Assert.IsTrue(dc.HasVariable("foo"), "Viewer key not registered with DataContext"); }
public void ViewRegistrationIdent(string initialViews, string newViews, string testView, bool expectedInitial, bool expectedAfter) { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); target.RegisterViews(initialViews); Assert.AreEqual(expectedInitial, target.HasViewDefined(testView), "View initially state failed"); int rslt = target.RegisterViews(newViews); Assert.AreEqual(expectedAfter, target.HasViewDefined(testView), "View after state failed"); }
public void TestOffsetParse() { RootElementMaster root = new RootElementMaster(TEST_FACTORY_KEY); DataScript target = new DataScript(DataScriptBlockData.Source, null, root); if (!target.IsParsed) { target.Parse(); } Assert.AreEqual(DataScriptBlockData.ExpectedOffsets, target.MyOffset.ToString()); }
public void CreateFromRoot() { ControlFactory cf = ControlFactory.GetControlFactory(factoryKey); Assert.IsNotNull(cf); RootElementMaster masterA = cf.BuildControlTree(RootGadgetA) as RootElementMaster; Assert.IsTrue(masterA is RootMasterA); RootElementMaster masterB = cf.BuildControlTree(SecondRootGadget) as RootElementMaster; Assert.IsTrue(masterB is RootMasterSecond); }
public void ControlAttributeAlternates(string markup, Type parseContextType, Type expectedControlType) { ParseContext context = new ParseContext(parseContextType); string tag = ControlFactory.GetTagName(markup); RootElementMaster master = new RootElementMaster(TEST_FACTORY_KEY); BaseGadgetControl gotten = testFactory.CreateControl(tag, markup, context, master); Assert.IsTrue(gotten is GadgetLiteral, "Initial tag test was not a GadgetLiteral"); gotten = testFactory.CreateControl(markup, context, master); Assert.AreEqual(expectedControlType, gotten.GetType(), "Attribute discovered Type object returned is incorrect"); }
public void TestDataItemParse() { RootElementMaster root = new RootElementMaster(TEST_FACTORY_KEY); DataScript target = new DataScript(DataScriptBlockData.Source, null, root); //DataContext dc = target.My. .MyDataContext; DataContext dc = target.MyRootMaster.MasterDataContext; Assert.IsNotNull(dc, "Data context is null"); OsViewerRequest vreq = target.Controls[0] as OsViewerRequest; Assert.IsNotNull(vreq, "ViewerRequest is null"); Assert.IsFalse(String.IsNullOrEmpty(vreq.Key), "ViewerRequest key is null"); Assert.AreEqual("foo", vreq.Key, "Incorrect key on ViewerRequest"); }
CustomTagFactory BuildInitTagFactoryWithTemplate() { CustomTagFactory factory = new CustomTagFactory(); factory.MyControlFactory = ControlFactory.GetControlFactory(TEST_FACTORY_KEY); RootElementMaster tmpMaster = new RootElementMaster(TEST_FACTORY_KEY); CustomTagTemplate tagTemplate = new CustomTagTemplate(); tagTemplate.MyRootMaster = tmpMaster; tagTemplate.LoadTag(CUSTOM_TAG_TEMPLATE); tagTemplate.OverrideInstanceMarkupTag("script"); factory.RegisterCustomTag(tagTemplate); return(factory); }
public void ScopedExternalRenderControlsFiltered(string registeredView, string scopedView, bool expectedFound) { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); target.RegisterViews(registeredView); OsGet ctl = new OsGet(); ctl.LoadTag("<os:Get src='http://www.lolcats.com' resolver='server' />"); target.Controls.Add(ctl); target.RegisterExternalServerRenderControl(ctl, target.GetViewMask(registeredView)); List <IExternalDataSource> sources = target.GetExternalServerRenderControls(scopedView); Assert.IsNotNull(sources); Assert.AreEqual(expectedFound, sources.Count > 0, "Sources not filtered"); }
public void ExternalRenderControlsGetControl() { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); OsGet ctl = new OsGet(); ctl.LoadTag("<os:Get src='http://www.lolcats.com' resolver='server' />"); target.Controls.Add(ctl); target.RegisterExternalServerRenderControl(ctl); List <IExternalDataSource> sources = target.GetExternalServerRenderControls(); Assert.IsNotNull(sources); Assert.Greater(sources.Count, 0, "No sources defined"); Assert.AreEqual(sources[0], ctl, "Not a matching control"); }
public void ExternalRenderControlsFindControl() { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); OsGet ctl = new OsGet(); ctl.LoadTag("<os:Get src='http://www.lolcats.com' resolver='server' />"); Assert.IsFalse(string.IsNullOrEmpty(ctl.SourceUri), "Empty src"); Assert.IsTrue(ctl.ResolveLocation == ResolveAt.Server, "Not marked for server resolution"); Assert.IsFalse(target.HasExternalServerRenderControls()); target.Controls.Add(ctl); target.RegisterExternalServerRenderControl(ctl); Assert.IsTrue(target.HasExternalServerRenderControls(), "Control not registered as External Ref"); }
public void ViewStringGetTest(string viewsToRegister) { RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY); int mask = target.RegisterViews(viewsToRegister); string[] parts = viewsToRegister.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string viewStr = target.GetViewString(mask); for (int i = 0; i < parts.Length; i++) { string x = parts[i].Trim(); if (x.Contains(".")) { x = x.Substring(0, x.IndexOf(".")); } Assert.IsTrue(viewStr.Contains(x), "Missing view: " + x); } }
public void MultipleRootIsRootElementTest() { GadgetMaster gm = new GadgetMaster(); Assert.IsTrue(testFactory.IsRootElement(gm), "GadgetMaster not recognized root"); //TemplateLibrary TemplatesRoot templates = new TemplatesRoot(); Assert.IsTrue(testFactory.IsRootElement(templates), "TemplatesRoot not recognized root"); //RootElement RootElementMaster ram = new RootElementMaster(); Assert.IsTrue(testFactory.IsRootElement(ram), "RootElementMaster not recognized root"); OsmlRepeater repeater = new OsmlRepeater(); Assert.IsFalse(testFactory.IsRootElement(repeater), "OsmlRepeater incorrectly recognized as root"); }
public DataScript(string markup, OffsetItem thisOffset, RootElementMaster master) { MyRootMaster = master; MyOffset = thisOffset; LoadTag(markup); }
public void ProcessRequest(HttpContext context) { string gadgetFile = context.Request["gadget"]; string gadgetString = null; string controlFactory = "gadget_v1.0"; if (!string.IsNullOrEmpty(gadgetFile)) { string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GadgetFileList.GADGET_DIRECTORY + "\\" + gadgetFile); if (File.Exists(filePath)) { using (StreamReader sr = new StreamReader(filePath)) { gadgetString = sr.ReadToEnd(); } GadgetMaster gm = GadgetMaster.CreateGadget(controlFactory, gadgetString); if (gm.HasExternalMessageBundles()) { LoadMessageBundles(gm, gadgetFile); } if (gm.HasExternalTemplateLibraries()) { LoadTemplates(gm, gadgetFile); } context.Response.StatusCode = 200; context.Response.ContentType = "text/html"; StreamWriter writer = new StreamWriter(context.Response.OutputStream); gm.Render(writer); //or context.Response.Write(gm.RenderToString()); } else { context.Response.ContentType = "text/plain"; context.Response.StatusCode = 400; context.Response.Write("File not found: " + gadgetFile); } } else if (context.Request.HttpMethod.Equals("post", StringComparison.InvariantCultureIgnoreCase)) { //check for form post gadgetString = context.Request.Form["source"]; if (string.IsNullOrEmpty(gadgetString)) { context.Response.ContentType = "text/plain"; context.Response.StatusCode = 400; context.Response.Write("No content posted to render"); } else { //gadgetString = gadgetString.Trim(); string tmp = context.Request.Form["parser"]; if (!string.IsNullOrEmpty(tmp)) { controlFactory = tmp; } ControlFactory cf = ControlFactory.GetControlFactory(controlFactory); RootElementMaster rm = cf.BuildControlTree(gadgetString); rm.MyDataResolver = new SimpleDataPipelineResolver(); context.Response.StatusCode = 200; context.Response.ContentType = "text/html"; if (rm.Errors.HasParseErrors()) { context.Response.Write("<div style='border:2px solid red;'><ul>"); foreach (var err in rm.Errors.ParseErrors) { context.Response.Write("<li>"); context.Response.Write(err.ToString()); context.Response.Write("</li>"); } context.Response.Write("</ul></div>"); } StreamWriter writer = new StreamWriter(context.Response.OutputStream); writer.AutoFlush = true; rm.Render(writer); } } else { context.Response.StatusCode = 200; context.Response.ContentType = "text/html"; context.Response.Write("[No content specified]"); } }
public void ValidViewsTest(string registeredViews, string targetView, bool expectedResult) { Assert.AreEqual(expectedResult, RootElementMaster.IsValidView(registeredViews, targetView)); }
public void ProcessRequest(HttpContext context) { if (!context.Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase)) { context.Response.ContentType = "text/html"; context.Response.StatusCode = 400; context.Response.Write("<h1>Error</h1> Invalid request"); context.Response.End(); return; } string src = context.Request.Form["source"]; if (string.IsNullOrEmpty(src)) { context.Response.ContentType = "text/plain"; context.Response.Write("Fail - specify 'source' in form"); context.Response.End(); return; } ControlFactory cf = ControlFactory.GetControlFactory("gadget_v1.0"); RootElementMaster root = cf.FetchGadget(src); if (root == null || string.IsNullOrEmpty(root.RawTag)) { context.Response.ContentType = "text/plain"; context.Response.Write("Fail - invalid gadget"); context.Response.End(); return; } //write to list. int pos = src.LastIndexOf("/"); string file = src; if (pos > -1) { file = src.Substring(pos + 1); } string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, GadgetFileList.GADGET_DIRECTORY); path = Path.Combine(path, file); if (File.Exists(path)) { /* * context.Response.ContentType = "text/plain"; * context.Response.Write("File already loaded - delete manually: " + path); * context.Response.End(); * return; * */ File.Delete(path); } FileStream fs = new FileStream(path, FileMode.CreateNew); StreamWriter writer = new StreamWriter(fs); writer.Write(root.RawTag); writer.Flush(); writer.Close(); context.Response.Redirect("Render.aspx?gadget=" + file); }
private static void SetupGadgetForInlineRender(RootElementMaster gadget) { gadget.ClientRenderCustomTemplates = false; gadget.RenderingOptions.ClientRenderDataContext = false; }