/// <summary> /// Creates the test object /// </summary> /// <returns></returns> ModulePrefs GetModulePrefsFullDataObject() { GadgetMaster master = new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY)); ModulePrefs target = new ModulePrefs(ModulePrefsFullData.Source, master); return(target); }
public void TitleSetTest() { //ModulePrefsFullData ModulePrefs target = GetModulePrefsFullDataObject(); Assert.IsFalse(string.IsNullOrEmpty(target.Title)); Assert.AreEqual(ModulePrefsFullData.ExpectedTitle, target.Title); }
public void IconSetTest() { //ModulePrefsFullData ModulePrefs target = GetModulePrefsFullDataObject(); Assert.IsFalse(string.IsNullOrEmpty(target.IconUrl)); Assert.AreEqual(ModulePrefsFullData.ExpectedIcon, target.IconUrl); }
public void TestAttributeParse() { //ModulePrefsData data = new ModulePrefsData(); ModulePrefs target = GetModulePrefsObject(); Assert.AreEqual(ModulePrefsData.ExpectedTitle, target.Title, "Incorrect title set"); }
public void TestOffsetParseCorrect() { //ModulePrefsData data = new ModulePrefsData(); ModulePrefs target = GetModulePrefsObject(); Assert.AreEqual(ModulePrefsData.ExpectedOffsets, target.MyOffset.ToString(), "Offset list bad"); }
public void MessageContents_BadFormat() { ModulePrefs target = GetModulePrefsObject(); BaseGadgetControl control = target.Controls[0]; Assert.GreaterThan(target.CountInternalControls(), 0, "No controls Parsed"); }
public void FormattedModulePrefsParse() { //ModulePrefsFullData GadgetMaster master = new GadgetMaster(ControlFactory.GetControlFactory(TEST_FACTORY_KEY)); ModulePrefs target = new ModulePrefs(ModulePrefsFormattedLargeData.Source, master); Assert.IsFalse(string.IsNullOrEmpty(target.Title), "Title not set"); Assert.AreEqual(ModulePrefsFormattedLargeData.ExpectedTitle, target.Title, "Title incorrect value"); }
public void TestOffsetExistsParse() { //ModulePrefsData data = new ModulePrefsData(); ModulePrefs target = GetModulePrefsObject(); Assert.IsNotNull(target.MyOffset, "Root offset is null"); Assert.AreEqual(new ModulePrefs().OffsetKey, target.MyOffset.OffsetKey, "incorrect root offset type"); Assert.IsTrue(target.MyOffset.ChildOffsets.Count > 1); }
/** * Creates a set of all configuration needed to satisfy the requested feature set. * * Appends special configuration for gadgets.util.hasFeature and gadgets.util.getFeatureParams to * the output js. * * This can't be handled via the normal configuration mechanism because it is something that * varies per request. * * @param reqs The features needed to satisfy the request. * @throws GadgetException If there is a problem with the gadget auth token */ private String GetLibraryConfig(Gadget gadget, ICollection <GadgetFeature> reqs) { GadgetContext context = gadget.getContext(); JsonObject features = containerConfig.GetJsonObject(context.getContainer(), FEATURES_KEY); Dictionary <String, Object> config = new Dictionary <string, object>(features == null ? 2 : features.Names.Count + 2); if (features != null) { // Discard what we don't care about. foreach (GadgetFeature feature in reqs) { String name = feature.getName(); Object conf = features.Opt(name); if (conf != null) { config.Add(name, conf); } } } // Add gadgets.util support. This is calculated dynamically based on request inputs. ModulePrefs prefs = gadget.getSpec().getModulePrefs(); var values = prefs.getFeatures().Values; Dictionary <String, Dictionary <String, String> > featureMap = new Dictionary <string, Dictionary <string, string> >(values.Count); foreach (Feature feature in values) { featureMap.Add(feature.getName(), feature.getParams()); } config.Add("core.util", featureMap); // Add authentication token config ISecurityToken authToken = context.getToken(); if (authToken != null) { Dictionary <String, String> authConfig = new Dictionary <String, String>(2); String updatedToken = authToken.getUpdatedToken(); if (updatedToken != null) { authConfig.Add("authToken", updatedToken); } String trustedJson = authToken.getTrustedJson(); if (trustedJson != null) { authConfig.Add("trustedJson", trustedJson); } config.Add("shindig.auth", authConfig); } return("gadgets.config.init(" + JsonConvert.ExportToString(config) + ");\n"); }
public void MessageInDataContext() { ModulePrefs target = GetModulePrefsObject(); string msgExpression = "${Msg." + ModulePrefsInlineMessagesData.testmsg1_key + "}"; string result = target.MyDataContext.GetVariableValue(msgExpression); Assert.IsNotNull(result); Assert.IsNotEmpty(result); Assert.AreEqual(ModulePrefsInlineMessagesData.testmsg1_string, result, "Gotten message invalid"); }
/// <summary> /// Loads messagebundles from a source created with /// <c>GetConsolidatedMessageBundles</c> /// or <c>WriteConsolidatedMessageBundles</c> /// </summary> /// <param name="messageBundles"></param> public void LoadConsolidatedMessageBundles(string messageBundles) { if (string.IsNullOrEmpty(messageBundles)) { return; } int pos = messageBundles.IndexOf("<bundles"); int endPos = messageBundles.IndexOf("</bundles"); if (pos > -1) { pos = messageBundles.IndexOf(">", pos); if (pos > -1) { pos = pos + 1; if (endPos > pos) { messageBundles = messageBundles.Substring(pos, endPos - pos); } else { messageBundles = messageBundles.Substring(pos); } } messageBundles = "<ModulePrefs>" + messageBundles + "</ModulePrefs>"; } Dictionary <string, Locale> myLocales = new Dictionary <string, Locale>(); foreach (Locale locale in this.ModulePrefs.Locales) { myLocales.Add(locale.MyMessageBundle.Messages.CultureCode, locale); } ModulePrefs tmpModPrefs = new ModulePrefs(null, this); tmpModPrefs.LoadTag(messageBundles); foreach (Locale locale in tmpModPrefs.Locales) { string key = locale.MyMessageBundle.Messages.CultureCode; if (!myLocales.ContainsKey(key)) { this.ModulePrefs.AddControl(locale); } else { myLocales[key].LoadMessageBundle(locale.MyMessageBundle.RawTag); } } ExternalMessageBundlesLoaded = true; }
public void MessageControlHasText() { ModulePrefs target = GetModulePrefsObject(); Locale l = target.Locales[0]; Assert.IsTrue(l.MyMessageBundle.Messages.HasValues(), "No messages registered"); Assert.GreaterThan(l.Controls.Count, 0, "Message not also registered in Controls collection"); Message msg = l.MyMessageBundle.MessageControls[0]; //.Messages.GetDefinedMessages().Values[0]; Assert.IsNotEmpty(msg.Value); Assert.IsNotNull(msg.Value); Assert.AreEqual(ModulePrefsInlineMessagesData.testmsg1_string, msg.Value, "Message contents incorrect"); }
public void MessageLocaleFound() { ModulePrefs target = GetModulePrefsObject(); Assert.GreaterThan(target.Locales.Count, 0); }
public void MessagePresent() { ModulePrefs target = GetModulePrefsObject(); Assert.GreaterThan(target.CountInternalControls(), 0, "No controls Parsed"); }
private JsonObject CallJob(GadgetContext context) { try { JsonObject gadgetJson = new JsonObject(); Gadget gadget = Processor.Process(context); GadgetSpec spec = gadget.getSpec(); ModulePrefs prefs = spec.getModulePrefs(); // TODO: modularize response fields based on requested items. JsonObject views = new JsonObject(); foreach (View view in spec.getViews().Values) { views.Put(view.getName(), new JsonObject() // .Put("content", view.getContent()) .Put("type", view.getType().ToString().ToLower()) .Put("quirks", view.getQuirks()) .Put("preferredHeight", view.getPreferredHeight()) .Put("preferredWidth", view.getPreferredWidth())); } // Features. List <String> feats = new List <String>(); foreach (var entry in prefs.getFeatures()) { feats.Add(entry.Key); } string[] features = new string[feats.Count]; feats.CopyTo(features, 0); // Links JsonObject links = new JsonObject(); foreach (LinkSpec link in prefs.getLinks().Values) { links.Put(link.getRel(), link.getHref()); } JsonObject userPrefs = new JsonObject(); // User pref specs foreach (UserPref pref in spec.getUserPrefs()) { JsonObject up = new JsonObject() .Put("displayName", pref.getDisplayName()) .Put("type", pref.getDataType().ToString().ToLower()) .Put("default", pref.getDefaultValue()) .Put("enumValues", pref.getEnumValues()) .Put("orderedEnumValues", getOrderedEnums(pref)); userPrefs.Put(pref.getName(), up); } // TODO: This should probably just copy all data from // ModulePrefs.getAttributes(), but names have to be converted to // camel case. gadgetJson.Put("iframeUrl", UrlGenerator.getIframeUrl(gadget)) .Put("url", context.getUrl().ToString()) .Put("moduleId", context.getModuleId()) .Put("title", prefs.getTitle()) .Put("titleUrl", prefs.getTitleUrl().ToString()) .Put("views", views) .Put("features", features) .Put("userPrefs", userPrefs) .Put("links", links) // extended meta data .Put("directoryTitle", prefs.getDirectoryTitle()) .Put("description", prefs.getDescription()) .Put("thumbnail", prefs.getThumbnail().ToString()) .Put("screenshot", prefs.getScreenshot().ToString()) .Put("author", prefs.getAuthor()) .Put("authorEmail", prefs.getAuthorEmail()) .Put("authorAffiliation", prefs.getAuthorAffiliation()) .Put("authorLocation", prefs.getAuthorLocation()) .Put("authorPhoto", prefs.getAuthorPhoto()) .Put("authorAboutme", prefs.getAuthorAboutme()) .Put("authorQuote", prefs.getAuthorQuote()) .Put("authorLink", prefs.getAuthorLink()) .Put("categories", prefs.getCategories()) .Put("screenshot", prefs.getScreenshot().ToString()) .Put("height", prefs.getHeight()) .Put("width", prefs.getWidth()) .Put("showStats", prefs.getShowStats()) .Put("showInDirectory", prefs.getShowInDirectory()) .Put("singleton", prefs.getSingleton()) .Put("scaling", prefs.getScaling()) .Put("scrolling", prefs.getScrolling()); return(gadgetJson); } catch (ProcessingException e) { throw new RpcException(context, e); //throw e; } catch (JsonException e) { // Shouldn't be possible throw new RpcException(context, e); } }