Ejemplo n.º 1
0
        /// <summary>
        /// Before any medium has been found for the @media or @import rule.
        /// </summary>
        protected void FillMediaList(MediaList list, ref CssToken token)
        {
            if (token.Type != CssTokenType.CurlyBracketOpen)
            {
                while (token.Type != CssTokenType.Eof)
                {
                    var medium = CreateMedium(ref token);

                    if (medium != null)
                        list.Add(medium);

                    if (token.Type != CssTokenType.Comma)
                        break;

                    token = _tokenizer.Get();
                }

                if (token.Type != CssTokenType.CurlyBracketOpen)
                {
                    do
                    {
                        if (token.Type == CssTokenType.Eof || token.Type == CssTokenType.Semicolon)
                            break;

                        token = _tokenizer.Get();
                    }
                    while (token.Type != CssTokenType.CurlyBracketOpen);

                    list.Clear();
                }

                if (list.Length == 0)
                {
                    list.Add(new CssMedium
                    {
                        IsInverse = true,
                        Type = Keywords.All
                    });
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Before any medium has been found for the @media or @import rule.
        /// </summary>
        void FillMediaList(MediaList list, CssTokenType end, ref CssToken token)
        {
            if (token.Type == end)
                return;

            while (token.Type != CssTokenType.Eof)
            {
                var medium = CreateMedium(ref token);

                if (medium != null)
                    list.Add(medium);

                if (token.Type != CssTokenType.Comma)
                    break;

                token = _tokenizer.Get();
            }

            if (token.Type == end && list.Length > 0)
                return;

            list.Clear();
            list.Add(new CssMedium
            {
                IsInverse = true,
                Type = Keywords.All
            });
        }
Ejemplo n.º 3
0
        public void CssMediaListApiWithAppendDeleteAndTextShouldWork()
        {
            var media = new [] { "handheld", "screen", "only screen and (max-device-width: 480px)" };
            var p = new CssParser();
		    var m = new MediaList(p);
            Assert.AreEqual(0, m.Length);

		    m.Add(media[0]);
		    m.Add(media[1]);
		    m.Add(media[2]);

		    m.Remove(media[1]);

            Assert.AreEqual(2, m.Length);
            Assert.AreEqual(media[0], m[0]);
            Assert.AreEqual(media[2], m[1]);
            Assert.AreEqual(String.Concat(media[0], ", ", media[2]), m.MediaText);
        }