Exemple #1
0
        /// <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);
        }
Exemple #2
0
        public void TitleSetTest()
        {
            //ModulePrefsFullData
            ModulePrefs target = GetModulePrefsFullDataObject();

            Assert.IsFalse(string.IsNullOrEmpty(target.Title));
            Assert.AreEqual(ModulePrefsFullData.ExpectedTitle, target.Title);
        }
Exemple #3
0
        public void IconSetTest()
        {
            //ModulePrefsFullData
            ModulePrefs target = GetModulePrefsFullDataObject();

            Assert.IsFalse(string.IsNullOrEmpty(target.IconUrl));
            Assert.AreEqual(ModulePrefsFullData.ExpectedIcon, target.IconUrl);
        }
Exemple #4
0
        public void TestAttributeParse()
        {
            //ModulePrefsData data = new ModulePrefsData();

            ModulePrefs target = GetModulePrefsObject();

            Assert.AreEqual(ModulePrefsData.ExpectedTitle, target.Title, "Incorrect title set");
        }
Exemple #5
0
        public void TestOffsetParseCorrect()
        {
            //ModulePrefsData data = new ModulePrefsData();

            ModulePrefs target = GetModulePrefsObject();

            Assert.AreEqual(ModulePrefsData.ExpectedOffsets, target.MyOffset.ToString(), "Offset list bad");
        }
Exemple #6
0
        public void MessageContents_BadFormat()
        {
            ModulePrefs target = GetModulePrefsObject();

            BaseGadgetControl control = target.Controls[0];

            Assert.GreaterThan(target.CountInternalControls(), 0, "No controls Parsed");
        }
Exemple #7
0
        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");
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        /**
         * 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");
        }
Exemple #10
0
        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");
        }
Exemple #11
0
        /// <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;
        }
Exemple #12
0
        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");
        }
Exemple #13
0
        public void MessageLocaleFound()
        {
            ModulePrefs target = GetModulePrefsObject();

            Assert.GreaterThan(target.Locales.Count, 0);
        }
Exemple #14
0
        public void MessagePresent()
        {
            ModulePrefs target = GetModulePrefsObject();

            Assert.GreaterThan(target.CountInternalControls(), 0, "No controls Parsed");
        }
Exemple #15
0
        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);
            }
        }