Esempio n. 1
0
        public void TestAppendMedium()
        {
            MediaList list = new MediaList();

            list.AppendMedium("screen");
            Assert.AreEqual(1, list.Length);
            Assert.AreEqual("screen", list.MediaText);
            Assert.AreEqual("screen", list[0]);

            list.AppendMedium("all");
            Assert.AreEqual(2, list.Length);
            Assert.AreEqual("screen,all", list.MediaText);
            Assert.AreEqual("screen", list[0]);
            Assert.AreEqual("all", list[1]);

            list.AppendMedium("screen");
            Assert.AreEqual(2, list.Length);
            Assert.AreEqual("all,screen", list.MediaText);
            Assert.AreEqual("all", list[0]);
            Assert.AreEqual("screen", list[1]);
        }
Esempio n. 2
0
        /// <summary>
        /// Appends media labels from the given source to the medialist.
        /// </summary>
        /// <param name="source">The token iterator.</param>
        /// <param name="media">The medialist to append to.</param>
        /// <param name="endToken">The optional token type to finish appending to the list.</param>
        void AppendMediaList(IEnumerator <CssToken> source, MediaList media, CssTokenType endToken = CssTokenType.Semicolon)
        {
            do
            {
                if (source.Current.Type == CssTokenType.Whitespace)
                {
                    continue;
                }
                else if (source.Current.Type == endToken)
                {
                    break;
                }

                do
                {
                    if (source.Current.Type == CssTokenType.Comma || source.Current.Type == endToken)
                    {
                        break;
                    }
                    else if (source.Current.Type == CssTokenType.Whitespace)
                    {
                        buffer.Append(' ');
                    }
                    else
                    {
                        buffer.Append(source.Current.ToValue());
                    }
                }while (source.MoveNext());

                media.AppendMedium(buffer.ToString());
                buffer.Clear();

                if (source.Current.Type == endToken)
                {
                    break;
                }
            }while (source.MoveNext());
        }