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