Exemple #1
0
        public void ViewRegistrationTest(string viewsToRegister, int expectedResult)
        {
            RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY);
            int result = target.RegisterViews(viewsToRegister);

            Assert.AreEqual(expectedResult, result);
        }
Exemple #2
0
        public void ViewRegistrationGetMaskMatches(string viewsToRegister)
        {
            RootElementMaster target = new RootElementMaster(TEST_FACTORY_KEY);
            int result = target.RegisterViews(viewsToRegister);

            Assert.AreEqual(result, target.GetViewMask(viewsToRegister));
        }
Exemple #3
0
        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());
        }
Exemple #4
0
        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");
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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");
        }
Exemple #8
0
        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");
        }
Exemple #9
0
        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());
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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");
        }
Exemple #12
0
        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");
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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");
        }
Exemple #15
0
        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");
        }
Exemple #16
0
        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");
        }
Exemple #17
0
        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");
        }
Exemple #19
0
 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]");
            }
        }
Exemple #21
0
 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;
 }