Beispiel #1
0
        static public GadgetMaster FetchGadget(string url, string controlFactoryKey)
        {
            if (string.IsNullOrEmpty(url))
            {
                throw new ArgumentNullException("URL must be specified");
            }

            string gadgetString = null;

            HttpWebRequest gadgetRequest = HttpWebRequest.Create(url) as HttpWebRequest;

            HttpWebResponse gadgetResponse = gadgetRequest.GetResponse() as HttpWebResponse;


            using (Stream stream = gadgetResponse.GetResponseStream())
            {
                StreamReader sr = new StreamReader(stream);
                gadgetString = sr.ReadToEnd();
                sr.Close();
            }

            GadgetMaster gm = GadgetMaster.CreateGadget(controlFactoryKey, gadgetString);

            gm.FetchMessageBundles();

            return(gm);
        }
Beispiel #2
0
        /// <summary>
        /// Renders from offsets
        /// </summary>
        /// <param name="w"></param>
        /// <param name="offsets"></param>
        private void RenderOnce(StreamWriter w, string gadgetXml, string surface, string offsets)
        {
            InitRenderUserData();


            OffsetItem offsetObj = null;

            if (!string.IsNullOrEmpty(offsets))
            {
                offsetObj = new OffsetItem(offsets);
            }
            GadgetMaster gadget = GadgetMaster.CreateGadget(CurrentControlFactory.FactoryKey, gadgetXml, offsetObj);

            gadget.MyDataContext.Culture = CurrentCulture;
            if (RenderUsingData == RenderData.Sandbox)
            {
                AccountTestData.ResolveDataControlValues(gadget.MyDataContext, CurrentUser, CurrentUser, CurrentUserFriends);
            }
            else
            {
                //gadget.MyDataContext.ResolveDataValues(GetCurrentUserId());
            }
            gadget.RenderContent(w, surface);
            if (chkDisposeGadget.Checked)
            {
                gadget.Dispose();
            }
        }
Beispiel #3
0
        public void MissingLifecycleEventNull()
        {
            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, GadgetXmlVersioned.VERSION_09_GADGET);

            Assert.IsNull(target.GetEventLink(LifecycleEventKey.ADD_APP), "Add App is not null");
            Assert.IsNull(target.GetEventLink(LifecycleEventKey.REMOVE_APP), "Remove App is not null");
        }
Beispiel #4
0
        public void ClonedGadgetHasExternalMessages()
        {
            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);

            //This takes a long time.  Manual add of info instead.
            //GadgetProvider.FetchExternalMessageBundles(master);

            MessageBundleData.LoadSampleMessageBundles(master);


            string[] cultures = master.MyDataContext.ResourceStringCatalog.GetDefinedCultures();
            string   cult     = "";

            for (int i = 0; i < cultures.Length; i++)
            {
                cult += "|" + cultures[i];
            }
            Assert.IsTrue(cult.Contains("ru"));
            Assert.IsTrue(cult.Contains("fr"));


            Assert.IsTrue(master.HasExternalMessageBundles(), "External bundles not defined in main gadget");
            Assert.Greater(master.MasterDataContext.ResourceStringCatalog.GetDefinedCultures().Length, 0, "No locales defined in main gadget");

            GadgetMaster target = master.Clone() as GadgetMaster;

            Assert.IsNotNull(target);
            Assert.IsTrue(target.HasExternalMessageBundles(), "Clone has no bundles");
            Assert.Greater(target.MasterDataContext.ResourceStringCatalog.GetDefinedCultures().Length, 0, "No locales defined in clone gadget");

            string allMessages = master.GetConsolidatedMessageBundles();
        }
Beispiel #5
0
        public void ProfileLocationAndMountCorrect()
        {
            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, ModPrefMySpaceViewSettings.Source);

            Assert.AreEqual(ModPrefMySpaceViewSettings.expectedProfileLocation, target.MySpaceViewSettings.ProfileLocation, "Profile location wrong");
            Assert.AreEqual(ModPrefMySpaceViewSettings.expectedProfileMount, target.MySpaceViewSettings.GetProfileMount(), "Profile mount wrong");
        }
Beispiel #6
0
        public void RenderGadgetSimpleTemplates()
        {
            GadgetWithSimpleTemplate data   = new GadgetWithSimpleTemplate();
            GadgetMaster             target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);

            ResolveDataControlValues(target.MyDataContext, data.ExpectedViewer, data.ExpectedViewer, data.ExpectedFriends);


            Assert.IsTrue(target.IsParsed);
            Assert.IsTrue(target.MyOffset.ToString().IndexOf("ContentBlock") > -1, "Content Block not found in offsets");

            target.RenderingOptions.DivWrapContentBlocks = false;
            target.RenderingOptions.SuppressWhitespace   = true;
            target.ClientRenderCustomTemplates           = false;

            string result = target.RenderToString("canvas");

            result = ControlTestHelper.NormalizeRenderResult(result);
            //remove double spaces
            while (result.Contains("  "))
            {
                result = result.Replace("  ", " ");
            }
            string expectedCanvas = ControlTestHelper.NormalizeRenderResult(data.ExpectedCanvas);

            Assert.IsFalse(string.IsNullOrEmpty(result), "empty result");

            Assert.AreEqual(expectedCanvas, result, "Rendered results are incorrect");
        }
Beispiel #7
0
        public void LifecycleEventsDefined()
        {
            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, GadgetXmlEvents.SOURCE);

            Assert.AreEqual(GadgetXmlEvents.ADD_APP_EVENT_HREF, target.GetEventLink(LifecycleEventKey.ADD_APP).Href);
            Assert.AreEqual(GadgetXmlEvents.REMOVE_APP_EVENT_HREF, target.GetEventLink(LifecycleEventKey.REMOVE_APP).Href);
        }
Beispiel #8
0
        public void Render(int id)
        {
            try
            {
                var gContents = (from gc in gadgetDB.GadgetContents
                                 where (gc.GadgetID == id && gc.RecordTypeID == RecordTypeValues.GadgetXML)
                                 select gc).First();

                if (gContents == null)
                {
                    Response.Write("Not found");
                    return;
                }


                GadgetMaster gm = GadgetMaster.CreateGadget(GadgetManager.GADGET_FACTORY_KEY, gContents.Content);

                TextWriter writer = new StreamWriter(Response.OutputStream);
                gm.RenderContent(writer);
            }
            catch (Exception ex)
            {
                Response.Write("Error getting gadget: " + ex.Message);
                return;
            }
        }
Beispiel #9
0
        public void CanvasSizeCorrect()
        {
            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, ModPrefMySpaceViewSettings.Source);

            Assert.AreEqual(ModPrefMySpaceViewSettings.expectedCanvasSize.Width, target.MySpaceViewSettings.CanvasSize.Width, "Canvas width wrong");
            Assert.AreEqual(ModPrefMySpaceViewSettings.expectedCanvasSize.Height, target.MySpaceViewSettings.CanvasSize.Height, "Canvas height wrong");
        }
        public void ExternalTemplateURISet()
        {
            GadgetReferencingTemplateLibrary testData = new GadgetReferencingTemplateLibrary();

            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);             //new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY));

            Assert.AreEqual(testData.ExpectedTemplateLibraryUri, master.TemplateLibraries.Libraries[0].Uri, "Library URI incorrect");
        }
        public void ExternalTemplatesEmptyWhenNotDefined()
        {
            TestableMarkupDef testData = new DataGadgetEmptyAttrRepeatTestData();

            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);             //new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY));

            Assert.IsFalse(master.TemplateLibraries.HasLibraries());
        }
        public void ExternalTemplateReferencesFound()
        {
            GadgetReferencingTemplateLibrary testData = new GadgetReferencingTemplateLibrary();

            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);             //new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY));

            Assert.IsTrue(master.TemplateLibraries.HasLibraries());
        }
        public void DataResolvablePointersOk()
        {
            DataGadgetTestData data   = new DataGadgetResolvablePointerParams();
            GadgetMaster       target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);

            string[] circulars;
            Assert.IsFalse(target.Errors.HasCircularControlParameterReferences(out circulars));
            Assert.AreEqual(0, circulars.Length);
        }
        public void AppSettingsDefinedInGadget()
        {
            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, ModPrefMySpaceAppSettings.Source);

            Assert.IsNotNull(target, "Target gadget failed to parse");
            Assert.IsNotNull(target.ModulePrefs, "ModulePrefs is null");
            Assert.IsNotNull(target.ModulePrefs.MySpaceAppSettings, "Module prefs app settings is null");
            Assert.IsNotNull(target.MySpaceAppSettings, "MySpace app settings is null");
        }
        public void TemplateLoadStateInitiallyEmpty()
        {
            GadgetReferencingTemplateLibrary testData = new GadgetReferencingTemplateLibrary();

            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);             //new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY));

            Assert.IsTrue(master.TemplateLibraries.HasLibraries(), "No libraries defined");
            Assert.IsFalse(master.TemplateLibraries.Libraries[0].Loaded, "Library incorrectly marked as loaded");
        }
        public void AgeRestrictionFromDirectLoad()
        {
            GadgetMaster   gadget = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, ModPrefMySpaceAppSettings.Source);
            ModuleOptional myOpt  = gadget.ModulePrefs.OptionalFeatures[0];

            MySpaceAppSettings target = new MySpaceAppSettings(myOpt);

            Assert.AreEqual(ModPrefMySpaceAppSettings.ExpectedAgeRestrictionValue, target.AppAgeRestriction, "Age restriction wrong");
        }
Beispiel #17
0
        public void SkeletalFullWithoutTemplatesHasBlocks()
        {
            GadgetWithoutTemplatesData data = new GadgetWithoutTemplatesData();
            GadgetMaster target             = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);

            Assert.IsTrue(target.IsParsed);
            Assert.IsTrue(target.MyOffset.ToString().IndexOf("ContentBlock") > -1, "Content Block not found in offsets");

            Assert.Greater(target.ContentBlocks.Count, 0, "No content blocks defined");
        }
Beispiel #18
0
        public void ReParseWithMessageBundle()
        {
            InternationalGadgetTestData data = new InternationalGadgetTestData();
            GadgetMaster target   = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);
            int          ctlCount = target.CountInternalControls();

            Assert.Greater(ctlCount, 0);
            target.ReParse();
            Assert.AreEqual(ctlCount, target.CountInternalControls());
        }
Beispiel #19
0
        public void SecurityPolicyDefaultCorrect()
        {
            InternationalGadgetTestData data = new InternationalGadgetTestData();
            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);

            Assert.AreEqual(target.ModulePrefs.SecurityPolicy.EL_Escaping, DataPipeline.Security.EL_Escaping.None,
                            "Incorrect EL Escaping set");

            Assert.AreEqual(target.ModulePrefs.SecurityPolicy.EL_Escaping, target.MasterDataContext.Settings.SecurityPolicy.EL_Escaping,
                            "DataContext policy doesn't match ModulePrefs policy");
        }
Beispiel #20
0
        public void TagParameterRegistrationVariantsTest()
        {
            GadgetCustomTagTemplates testData = new GadgetCustomTagTemplates();
            GadgetMaster             target   = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);

            string result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("canvas"));

            Assert.IsNotNull(result, "Empty render result");
            Assert.IsTrue(result.Contains(testData.ExpectedParamAttributeValue), "Attribute parameter not correctly rendered");
            Assert.IsTrue(result.Contains(testData.ExpectedParamElementValue), "Element parameter not correctly rendered");
            Assert.IsTrue(result.Contains(testData.ExpectedVariableValue), "osVar parameter not correctly rendered");
        }
        public void RenderNotEmpty()
        {
            InternationalGadgetTestData testData = new InternationalGadgetTestData();
            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);

            master.RenderingOptions.ClientRenderCustomTemplates = false;
            master.RenderingOptions.ClientRenderDataContext     = false;
            master.RenderingOptions.DivWrapContentBlocks        = false;
            string result = master.RenderToString("canvas");

            Assert.IsFalse(string.IsNullOrEmpty(result));
        }
Beispiel #22
0
        public void SecurityPolicyAffectsRender()
        {
            SecurityPolicyGadget data   = new SecurityPolicyGadget();
            GadgetMaster         target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);

            target.RenderingOptions.DivWrapContentBlocks = false;

            string key    = "markup";
            string result = ControlTestHelper.NormalizeRenderResult(target.RenderToString("canvas"));

            Assert.AreEqual(data.ExpectedCanvas, result);
        }
        public void DataThreewayPointersFlagged()
        {
            DataGadgetTestData data   = new DataGadgetTriplePointerParams();
            GadgetMaster       target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);

            string[] circulars;
            Assert.IsTrue(target.Errors.HasCircularControlParameterReferences(out circulars));
            Assert.Greater(circulars.Length, 0);
            Assert.IsTrue(ContainsValue(circulars, "f1"));
            Assert.IsTrue(ContainsValue(circulars, "f2"));
            Assert.IsTrue(ContainsValue(circulars, "f3"));
        }
        public void InValidGadgetHasParseErrors()
        {
            string source = GadgetTestData.FullGadget;
            //remove a bracket from the middle of the gadget
            int    startPos   = source.Length / 2;
            int    bracketPos = source.IndexOf(">", startPos);
            string newSource  = source.Substring(0, bracketPos) + source.Substring(bracketPos + 1);

            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, newSource);

            Assert.IsTrue(target.Errors.HasParseErrors());
        }
Beispiel #25
0
        public void OffsetParsed()
        {
            IfTestData   testData = new IfTestData("true", true);
            GadgetMaster master   = null;

            master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);
            master.Parse();

            string offsets = master.MyOffset.ToString();

            Assert.IsTrue(offsets.IndexOf("os_If") > -1, "If offset not found in: " + offsets);
        }
Beispiel #26
0
        public void ExternalSourceGadgetRegisters()
        {
            ExternalSourceGadgetTestData data = new ExternalSourceGadgetTestData();
            GadgetMaster target = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, data.Source);

            Assert.IsTrue(target.HasExternalServerRenderControls(), "No external render controls registered");
            Assert.IsTrue(target.HasExternalServerRenderControls("home"));
            //Assert.IsFalse(target.HasExternalServerRenderControls("canvas"));

            List <IExternalDataSource> srcs = target.GetExternalServerRenderControls("home");

            Assert.AreEqual(data.ExpectedExternalControlCount, srcs.Count, "Ext control count wrong");
        }
Beispiel #27
0
        /// <summary>
        /// Helper to check the rendered results
        /// </summary>
        /// <param name="gadget"></param>
        void TestRepeaterRenderResult(DataGadgetTestData gadget)
        {
            GadgetMaster master = null;

            master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, gadget.Source);
            master.RenderingOptions.DivWrapContentBlocks = false;
            ResolveDataControlValues(master.MyDataContext, gadget.ExpectedViewer, gadget.ExpectedViewer, gadget.ExpectedFriends);

            string result   = ControlTestHelper.GetRenderedContents(master, "canvas");
            string expected = gadget.ExpectedCanvas.Trim().Replace("\r\n", "\n");

            Assert.AreEqual(ControlTestHelper.NormalizeRenderResult(expected), ControlTestHelper.NormalizeRenderResult(result), "Rendered results incorrect");
        }
        public void TemplateLibraryHasTag()
        {
            GadgetReferencingTemplateLibrary testData = new GadgetReferencingTemplateLibrary();
            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);             //new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY));

            Assert.Greater(testData.ExpectedCustomTags.Count, 0, "No expected tags");

            BasicLibrary  testLib = new BasicLibrary();
            TemplatesRoot library = master.LoadTemplateLibrary(testData.ExpectedTemplateLibraryUri, BasicLibrary.Source);

            Assert.AreEqual(2, library.CustomTags.Count, "Incorrect template count");
            Assert.IsFalse(String.IsNullOrEmpty(library.CustomTags[0].Tag), "tag is empty");
        }
        public void CustomTemplatesTagsRecognized()
        {
            GadgetReferencingTemplateLibrary testData = new GadgetReferencingTemplateLibrary();
            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);             //new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY));

            Assert.AreEqual(0, master.MasterCustomTagFactory.CustomTags.Count, "Custom tags not initially zero");

            BasicLibrary  testLib = new BasicLibrary();
            TemplatesRoot library = master.LoadTemplateLibrary(testData.ExpectedTemplateLibraryUri, BasicLibrary.Source);

            Assert.IsTrue(master.MasterCustomTagFactory.IsCustomTag("foo:bar"));
            Assert.IsTrue(master.MasterCustomTagFactory.IsCustomTag("foo:dog"));
        }
        public void RefetchUtf8EncodedRenderNotEmpty()
        {
            InternationalGadgetTestData testData = new InternationalGadgetTestData();
            GadgetMaster master = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, testData.Source);

            string offsets = master.MyOffset.ToString();

            byte[]  encodedBytes = Encoding.UTF8.GetBytes(testData.Source);
            Decoder decoder      = Encoding.UTF8.GetDecoder();
            int     len          = decoder.GetCharCount(encodedBytes, 0, encodedBytes.Length);

            char[] buffer = new char[len];
            decoder.GetChars(encodedBytes, 0, encodedBytes.Length, buffer, 0);

            String encodedSrc = new string(buffer);


            byte[]  encodedUnicodeBytes = Encoding.Unicode.GetBytes(testData.Source);
            Decoder unicodeDecoder      = Encoding.Unicode.GetDecoder();
            int     lenUnicode          = decoder.GetCharCount(encodedUnicodeBytes, 0, encodedUnicodeBytes.Length);

            char[] bufferUnicode = new char[lenUnicode];
            unicodeDecoder.GetChars(encodedUnicodeBytes, 0, encodedUnicodeBytes.Length, bufferUnicode, 0);

            String uniEncodedSrc = new string(buffer);



            GadgetMaster remaster = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, encodedSrc, new OffsetItem(offsets));

            GadgetMaster unicodeMaster = GadgetMaster.CreateGadget(TEST_FACTORY_KEY, uniEncodedSrc, new OffsetItem(offsets));

            Assert.IsFalse(remaster.Errors.HasParseErrors());

            master.RenderingOptions.ClientRenderCustomTemplates = false;
            master.RenderingOptions.ClientRenderDataContext     = false;
            master.RenderingOptions.DivWrapContentBlocks        = false;
            string result = master.RenderToString("canvas");

            Assert.IsFalse(string.IsNullOrEmpty(result));

            remaster.RenderingOptions.ClientRenderCustomTemplates = false;
            remaster.RenderingOptions.ClientRenderDataContext     = false;
            remaster.RenderingOptions.DivWrapContentBlocks        = false;
            string secondResult = remaster.RenderToString("canvas");

            Assert.IsFalse(string.IsNullOrEmpty(secondResult));
        }