/// <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 }); } } }
/// <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 }); }
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); }