public void Add_Method_Adds_Individual_Classes()
        {
            // arrange
            string classes = "test1 test2 test3";

            // act
            CssClassList collection = new CssClassList();

            collection.Add(classes);

            // assert
            Assert.AreEqual(3, collection.Count);
            Assert.AreEqual("test1", collection[0]);
            Assert.AreEqual("test2", collection[1]);
            Assert.AreEqual("test3", collection[2]);
        }
        public void AddRange_Method_Adds_Individual_Classes()
        {
            // arrange
            string[] classes = { "test1 test2 test3", "test4" };

            // act
            CssClassList collection = new CssClassList();

            collection.AddRange(classes);

            // assert
            Assert.AreEqual(4, collection.Count);
            Assert.AreEqual("test1", collection[0]);
            Assert.AreEqual("test2", collection[1]);
            Assert.AreEqual("test3", collection[2]);
            Assert.AreEqual("test4", collection[3]);
        }
Exemple #3
0
        /// <summary>
        ///   Constructor to specify extra HTML attributes as an anonymous type
        /// </summary>
        /// <param name="tag">An HTML tag to initialise this element with</param>
        /// <param name="htmlAttributes">Extra HTML attributes</param>
        public HtmlComponent(EHtmlTag tag, object htmlAttributes = null)
        {
            Tag        = tag;
            Attributes = new Dictionary <string, string>();
            CssClasses = new CssClassList();

            AppendTags  = new HtmlComponentList();
            PrependTags = new HtmlComponentList();

            if (htmlAttributes == null)
            {
                return;
            }

            bool isDict = (htmlAttributes as IDictionary <string, string>) != null;

            if (isDict)
            {
                Attributes = (IDictionary <string, string>)htmlAttributes;
                if (!Attributes.ContainsKey("class"))
                {
                    return;
                }

                CssClasses.Add(Attributes["class"]);
                Attributes.Remove("class");

                return;
            }

            NameValueCollection attribs = WebExtrasUtil.AnonymousObjectToHtmlAttributes(htmlAttributes);

            foreach (string key in attribs.Keys)
            {
                if (key.Equals("class", StringComparison.OrdinalIgnoreCase))
                {
                    CssClasses.Clear();
                    CssClasses.Add(attribs[key]);
                    continue;
                }

                Attributes[key] = attribs[key];
            }
        }