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); }
/// <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(); } }
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"); }
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(); }
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"); }
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"); }
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); }
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; } }
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"); }
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"); }
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()); }
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"); }
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)); }
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()); }
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); }
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"); }
/// <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)); }