static StyleRule Parse(string source) { var parser = new StylesheetParser(); var rule = parser.Parse(source).Rules[0]; return(rule as StyleRule); }
public void Zero_Values_Before_Decimals_Are_Parsed() { var parser = new StylesheetParser(); var style = parser.Parse("*{ background-position: 0 1.1em; }"); Assert.AreEqual(1, style.RuleSets[0].Declarations.Count); }
protected bool LoadCss3Document(string fileName) { Terminal.WriteLine(string.Format("Validating the file ~{0}:", fileName), ConsoleColor.DarkBlue); Terminal.Indent(); OpenTest("Loading the file... "); Stylesheet stylesheet = null; string cssDoc = LoadCssFile(fileName); //one point if the CSS name is OK if (!string.IsNullOrEmpty(cssDoc)) { CloseTest(string.Empty); } else { cssDoc = LoadCssFile("*.css"); if (string.IsNullOrEmpty(cssDoc)) { CloseTest("Unable to read the CSS file."); } else { CloseTest("Incorrect file name"); } } if (!string.IsNullOrEmpty(cssDoc)) { OpenTest("Validating against the W3C official validation tool... "); if (!W3CSchemaValidationForCss3(cssDoc)) { CloseTest("Unable to validate.", 0); stylesheet = null; } else { CloseTest(string.Empty, 0); OpenTest("Parsing the CSS file... "); StylesheetParser parser = new StylesheetParser(); stylesheet = parser.Parse(cssDoc); if (stylesheet == null) { CloseTest("Unable to parse the CSS file.", 0); } else { CloseTest(string.Empty, 0); } } } Terminal.UnIndent(); this.CssDoc = stylesheet; return(stylesheet != null); }
public void Empty_Terms_Are_Ignored() { var parser = new StylesheetParser(); var style = parser.Parse("*{ font-size: 10px; ; }"); Assert.AreEqual(1, style.RuleSets[0].Declarations.Count); }
public void Terms_With_Size_And_Height_Shorthand_Are_Parsed() { var parser = new StylesheetParser(); var style = parser.Parse("*{font-size: 12px/20px }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual("12px/20px", expression.Terms[0].ToString()); }
public void Content_With_Empty_Single_Quote_Strings_Is_Parsed() { var parser = new StylesheetParser(); var style = parser.Parse("*{content: ' ' }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual("' '", expression.Terms[0].ToString()); }
public static void Main(string[] args) { using (var file = File.OpenRead(args[0])) { var parser = new StylesheetParser(); parser.Parse(file); } }
public void Terms_With_Vendor_Functions_Are_Parsed() { var parser = new StylesheetParser(); var style = parser.Parse("*{background-image: -moz-linear-gradient(top,#CCC,#ddd) }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual("-moz-linear-gradient(top, #CCC, #DDD)", expression.Terms[0].ToString()); }
public void ParseJustifyContent() { var parser = new StylesheetParser(); var sheet = parser.Parse("a {justify-content: space-evenly; }"); var style = ((StyleRule)sheet.StyleRules.First()).Style; Assert.Equal("space-evenly", style.JustifyContent); }
public void StyleSheetWithoutCommentsButStoringTrivia() { var parser = new StylesheetParser(); const string source = ".foo { color: red; } @media print { #myid { color: green; } }"; var sheet = parser.Parse(source); var comments = sheet.GetComments(); Assert.Empty(comments); }
public void Terms_With_Functions_Are_Parsed() { var parser = new StylesheetParser(); var style = parser.Parse("*{clip: rect(0px,60px,200px,0px) }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(1, expression.Terms.Count); Assert.AreEqual("rect(0px, 60px, 200px, 0px)", expression.Terms[0].ToString()); }
public void StyleSheetSimpleRoundtrip() { var parser = new StylesheetParser(preserveComments: true); const string source = ".foo { color: red; } @media all /*test*/ and /*test*/ (min-width: 701px) /*test*/ { #myid { color: green; } }"; var sheet = parser.Parse(source); var roundtrip = sheet.StylesheetText.Text; Assert.Equal(source, roundtrip); }
public void StyleSheetWithInitialCommentShouldWorkWithTriviaActive() { var parser = new StylesheetParser(preserveComments: true); var document = parser.Parse(@"/* Comment at the start */ body { font-size: 10pt; }"); var comment = document.Children.First(); Assert.IsType <Comment>(comment); Assert.Equal(" Comment at the start ", ((Comment)comment).Data); }
public void accelerator_true() { var termParts = new[]{"true"}; var parser = new StylesheetParser(); var style = parser.Parse("*{accelerator: true }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("true", expression.Terms[0].ToString()); }
public void background_attachment_scroll() { var termParts = new[]{"scroll"}; var parser = new StylesheetParser(); var style = parser.Parse("*{background-attachment: scroll }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("scroll", expression.Terms[0].ToString()); }
public void azimuth_left_side() { var termParts = new[]{"left-side"}; var parser = new StylesheetParser(); var style = parser.Parse("*{azimuth: left-side }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("left-side", expression.Terms[0].ToString()); }
public void ColorFunctionsMixAllShouldWork() { var parser = new StylesheetParser(); const string source = @" .rgbNumber { color: rgb(255, 128, 0); } .rgbPercent { color: rgb(100%, 50%, 0%); } .rgbaNumber { color: rgba(255, 128, 0, 0.0); } .rgbaPercent { color: rgba(100%, 50%, 0%, 0.0); } .hsl { color: hsl(120, 100%, 50%); } .hslAngle { color: hsl(120deg, 100%, 50%); } .hsla { color: hsla(120, 100%, 50%, 0.25); } .hslaAngle { color: hsla(120deg, 100%, 50%, 0.25); } .grayNumber { color: gray(128); } .grayPercent { color: gray(50%); } .grayPercentAlpha { color: gray(50%, 0.5); } .hwb { color: hwb(120, 60%, 20%); } .hwbAngle { color: hwb(120deg, 60%, 20%); } .hwbAlpha { color: hwb(120, 10%, 50%, 0.5); } .hwbAngleAlpha { color: hwb(120deg, 10%, 50%, 0.5); }"; var sheet = parser.Parse(source); Assert.Equal(15, sheet.Rules.Length); var rgbNumber = (sheet.Rules[0] as StyleRule).Style.Color; var rgbPercent = (sheet.Rules[1] as StyleRule).Style.Color; var rgbaNumber = (sheet.Rules[2] as StyleRule).Style.Color; var rgbaPercent = (sheet.Rules[3] as StyleRule).Style.Color; var hsl = (sheet.Rules[4] as StyleRule).Style.Color; var hslAngle = (sheet.Rules[5] as StyleRule).Style.Color; var hsla = (sheet.Rules[6] as StyleRule).Style.Color; var hslaAngle = (sheet.Rules[7] as StyleRule).Style.Color; var grayNumber = (sheet.Rules[8] as StyleRule).Style.Color; var grayPercent = (sheet.Rules[9] as StyleRule).Style.Color; var grayPercentAlpha = (sheet.Rules[10] as StyleRule).Style.Color; var hwb = (sheet.Rules[11] as StyleRule).Style.Color; var hwbAngle = (sheet.Rules[12] as StyleRule).Style.Color; var hwbAlpha = (sheet.Rules[13] as StyleRule).Style.Color; var hwbAngleAlpha = (sheet.Rules[14] as StyleRule).Style.Color; Assert.NotNull(rgbNumber); Assert.NotNull(rgbPercent); Assert.NotNull(rgbaNumber); Assert.NotNull(rgbaPercent); Assert.NotNull(hsl); Assert.NotNull(hslAngle); Assert.NotNull(hsla); Assert.NotNull(hslaAngle); Assert.NotNull(grayNumber); Assert.NotNull(grayPercent); Assert.NotNull(grayPercentAlpha); Assert.NotNull(hwb); Assert.NotNull(hwbAngle); Assert.NotNull(hwbAlpha); Assert.NotNull(hwbAngleAlpha); }
public static IDictionary <string, BaseStyle> ParceCss(string content) { var parser = new StylesheetParser(); var styles = parser.Parse(content); var rules = styles.RuleSets.ToArray(); var result = rules.ToDictionary( rule => rule.Selectors.First().SimpleSelectors.First().Class, rule => new StyleFactory(rule.Declarations).Style); return(result); }
public static void Main(string[] args) { Fuzzer.OutOfProcess.Run(stream => { try { var parser = new StylesheetParser(); parser.Parse(stream); } catch (ArgumentOutOfRangeException) { } catch (ParseException) { } }); }
public StyleContainer[] Read(Stream content) { var parser = new StylesheetParser(true, true, true, true, true, false); var stylesheet = parser.Parse(content); var styles = new List <StyleContainer>(stylesheet.StyleRules.Count()); foreach (var rule in stylesheet.StyleRules) { styles.Add(ToContainer(rule)); } return(styles.ToArray()); }
private static DisplayProperty parseCSS(string cssPath) { string cssContent = FileHelper.TryLoadFile(cssPath); var parser = new StylesheetParser(); var stylesheet = parser.Parse(cssContent); DisplayProperty displayProperty = new DisplayProperty(); displayProperty.Title = new DisplayStyle(); displayProperty.Side = new DisplayStyle(); displayProperty.Display = new DisplayStyle(); displayProperty.Tools = new DisplayStyle(); displayProperty.Search = new DisplayStyle(); displayProperty.Menu = new DisplayStyle(); displayProperty.Global = new DisplayStyle(); Type t1 = displayProperty.GetType(); //在样式表中自上而下寻找 foreach (StyleRule rule in stylesheet.StyleRules) { string selectors = rule.SelectorText; string color = rule.Style.Color; string bg = rule.Style.Background; string fontsize = rule.Style.FontSize; int.TryParse(Regex.Match(fontsize, @"\d+").Value, out int fs); //获得选择器 string[] selectTexts = selectors.Split('.'); string s1 = selectTexts[1].Trim(); string s2 = selectTexts[2].Trim(); //反射 DisplayStyle style = (DisplayStyle)t1.GetProperty(s1).GetValue(displayProperty); if (s2 == "Main") { style.MainFontSize = fs; style.MainBackground = getColorFromRGBSring(bg); style.MainForeground = getColorFromRGBSring(color); } else { style.SubFontSize = fs; style.SubBackground = getColorFromRGBSring(bg); style.SubForeground = getColorFromRGBSring(color); } t1.GetProperty(s1).SetValue(displayProperty, style); } return(displayProperty); }
public void StyleSheetWithCommentInRule() { var parser = new StylesheetParser(preserveComments: true); const string source = ".foo { color: red; } @media print { /*test*/ #myid { color: green; } /*test*/ }"; var sheet = parser.Parse(source); var comments = sheet.GetComments(); Assert.Equal(2, comments.Count()); foreach (var comment in comments) { Assert.Equal("test", comment.Data); } }
public void StyleSheetWithCommentInMedia() { var parser = new StylesheetParser(preserveComments: true); var source = ".foo { color: red; } @media all /*test*/ and /*test*/ (min-width: 701px) /*test*/ { #myid { color: green; } }"; var sheet = parser.Parse(source); var comments = sheet.GetComments(); Assert.Equal(3, comments.Count()); foreach (var comment in comments) { Assert.Equal("test", comment.Data); } }
private void Parse(string filePath) { if (string.IsNullOrEmpty(filePath)) { throw new ArgumentNullException("filePath"); } if (!File.Exists(filePath)) { throw new FileNotFoundException(); } StylesheetParser parser = new StylesheetParser(); Raw = File.ReadAllText(filePath); CssDoc = parser.Parse(Raw); }
public static void Main(string[] args) { Fuzzer.Run(() => { try { using (var file = File.OpenRead(args[0])) { var parser = new StylesheetParser(); parser.Parse(file); } } catch (ArgumentOutOfRangeException) { } catch (ParseException) { } }); }
private Stylesheet ParseStyles(HtmlNode node) { if (node.Attributes.Contains("style")) { var styleString = $"{node.Name} {{ {node.Attributes["style"].Value} }}"; if (!Styles.TryGetValue(styleString, out var stylesheet)) { var parser = new StylesheetParser(); stylesheet = parser.Parse(styleString); Styles.Add(styleString, stylesheet); } return(stylesheet); } return(null); }
internal static Stylesheet ParseStyleSheet(string source, bool includeUnknownRules = false, bool includeUnknownDeclarations = false, bool tolerateInvalidSelectors = false, bool tolerateInvalidValues = false, bool tolerateInvalidConstraints = false, bool preserveComments = false) { var parser = new StylesheetParser( includeUnknownRules, includeUnknownDeclarations, tolerateInvalidSelectors, tolerateInvalidValues, tolerateInvalidConstraints, preserveComments); return(parser.Parse(source)); }
public void StyleSheetSelectorsGetAll() { var parser = new StylesheetParser(); const string source = ".foo { } #bar { } @media all { div { } a > b { } @media print { script[type] { } } }"; var sheet = parser.Parse(source); var roundtrip = sheet.StylesheetText.Text; Assert.Equal(source, roundtrip); var selectors = sheet.GetAll <ISelector>(); Assert.Equal(5, selectors.Count()); var mediaRules = sheet.GetAll <MediaRule>(); Assert.Equal(2, mediaRules.Count()); var descendentSelector = selectors.Skip(3).First(); Assert.Equal("a>b", descendentSelector.Text); Assert.Equal("a > b ", descendentSelector.StylesheetText.Text); }
public static bool FixupCss(EpubFile cssFile) { var changed = false; var css = System.Text.Encoding.UTF8.GetString(cssFile.Content); var parser = new StylesheetParser(); var sheet = parser.Parse(css); var cssBodyList = sheet.StyleRules.Where(rule => rule.SelectorText == "body"); foreach (var cssBody in cssBodyList) { var margin = cssBody.Style.Margin; if (margin != null && margin.Contains("%")) { changed = true; cssBody.Style.Margin = "1em"; } var marginLeft = cssBody.Style.MarginLeft; if (marginLeft != null && marginLeft.Contains("%")) { changed = true; cssBody.Style.MarginLeft = "0.5em"; } var marginRight = cssBody.Style.MarginRight; if (marginRight != null && marginRight.Contains("%")) { changed = true; cssBody.Style.MarginRight = "0.5em"; } } if (changed) { var newCss = sheet.ToCss(); var newBuffer = System.Text.Encoding.UTF8.GetBytes(newCss); cssFile.Content = newBuffer; } return(changed); }
public void StyleSheetShouldIgnoreHtmlCommentTokens() { var parser = new StylesheetParser(); var source = "<!-- body { font-family: Verdana } div.hidden { display: none } -->"; var sheet = parser.Parse(source); Assert.Equal(2, sheet.Rules.Length); Assert.Equal(RuleType.Style, sheet.Rules[0].Type); var body = sheet.Rules[0] as StyleRule; Assert.Equal("body", body.SelectorText); Assert.Equal(1, body.Style.Length); Assert.Equal("Verdana", body.Style.FontFamily); Assert.Equal(RuleType.Style, sheet.Rules[1].Type); var div = sheet.Rules[1] as StyleRule; Assert.Equal("div.hidden", div.SelectorText); Assert.Equal(1, div.Style.Length); Assert.Equal("none", div.Style.Display); }
/// <summary> Gets the CSS classes. </summary> /// <returns> The CSS classes. </returns> public static StyleSheet GetStyleSheet() { string pdfStyleSheet = OutputSettings.Instance.StyleSheet; if (string.IsNullOrWhiteSpace(pdfStyleSheet)) { return(null); } StylesheetParser ssp = new StylesheetParser(); string css = File.ReadAllText(HttpContext.Current.Server.MapPath(pdfStyleSheet)); Stylesheet stylesheet = ssp.Parse(css); StyleSheet styles = new StyleSheet(); foreach (RuleSet ruleSet in stylesheet.RuleSets) { Dictionary <string, string> attributes = ruleSet.Declarations.ToDictionary( declaration => declaration.Name, declaration => declaration.Expression.ToString()); foreach (Selector selector in ruleSet.Selectors) { if (selector.ToString().StartsWith(".", StringComparison.OrdinalIgnoreCase)) { styles.LoadStyle(selector.ToString(), attributes); } else { styles.LoadTagStyle(selector.ToString(), attributes); } } } return(styles); }
/// <summary> /// Creates the new Output instance /// </summary> /// <param name="redirectToTerminal">When enabled, every log entry will be send to the terminal</param> public Output(bool redirectToTerminal = false) { HeaderLog = new Log(); SetupLog = new Log(); TeardownLog = new Log(); ScriptLog = new List <Log>(); CurrentLog = new Log(); RedirectToTerminal = redirectToTerminal; ResetLog(); //Load the styles var cssPath = Utils.ConfigFile("output.css"); if (!File.Exists(cssPath)) { throw new FileNotFoundException(cssPath); } else { StylesheetParser parser = new StylesheetParser(); CssDoc = parser.Parse(File.ReadAllText(cssPath)); } }
public void _moz_border_radius_5Percent() { var termParts = new[]{"5%"}; var parser = new StylesheetParser(); var style = parser.Parse("*{-moz-border-radius: 5% }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("5%", expression.Terms[0].ToString()); }
public static Stylesheet ToCssStylesheet(this string sourceCode) { var parser = new StylesheetParser(); return parser.Parse(sourceCode); }
public void background_position_1px_2em_0_3px() { var termParts = new[]{"1px","2em","0","3px"}; var parser = new StylesheetParser(); var style = parser.Parse("*{background-position: 1px 2em 0 3px }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("1px", expression.Terms[0].ToString()); Assert.AreEqual("2em", expression.Terms[1].ToString()); Assert.AreEqual("0", expression.Terms[2].ToString()); Assert.AreEqual("3px", expression.Terms[3].ToString()); }
public void background_CCC_transparent_urlimagesimgpng_fixed_repeat_x_repeat_y_no_repeat_top_left_center_right_bottom_1px_2px() { var termParts = new[]{"#CCC","transparent","url(images/img.png)","fixed","repeat-x","repeat-y","no-repeat","top","left","center","right","bottom","1px","2px"}; var parser = new StylesheetParser(); var style = parser.Parse("*{background: #CCC transparent url(images/img.png) fixed repeat-x repeat-y no-repeat top left center right bottom 1px 2px }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("#CCC", expression.Terms[0].ToString()); Assert.AreEqual("transparent", expression.Terms[1].ToString()); Assert.AreEqual("url(images/img.png)", expression.Terms[2].ToString()); Assert.AreEqual("fixed", expression.Terms[3].ToString()); Assert.AreEqual("repeat-x", expression.Terms[4].ToString()); Assert.AreEqual("repeat-y", expression.Terms[5].ToString()); Assert.AreEqual("no-repeat", expression.Terms[6].ToString()); Assert.AreEqual("top", expression.Terms[7].ToString()); Assert.AreEqual("left", expression.Terms[8].ToString()); Assert.AreEqual("center", expression.Terms[9].ToString()); Assert.AreEqual("right", expression.Terms[10].ToString()); Assert.AreEqual("bottom", expression.Terms[11].ToString()); Assert.AreEqual("1px", expression.Terms[12].ToString()); Assert.AreEqual("2px", expression.Terms[13].ToString()); }
public void text_transform_capitalize() { var termParts = new[]{"capitalize"}; var parser = new StylesheetParser(); var style = parser.Parse("*{text-transform: capitalize }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("capitalize", expression.Terms[0].ToString()); }
public ExCSSFixture() { _parser = new StylesheetParser(); _parsed = _parser.Parse(_stylesheets.Css3); }
public void visibility_hidden() { var termParts = new[]{"hidden"}; var parser = new StylesheetParser(); var style = parser.Parse("*{visibility: hidden }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("hidden", expression.Terms[0].ToString()); }
public void border_ridge() { var termParts = new[]{"ridge"}; var parser = new StylesheetParser(); var style = parser.Parse("*{border: ridge }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("ridge", expression.Terms[0].ToString()); }
public void border_solid_1px_CCC() { var termParts = new[]{"solid","1px","#CCC"}; var parser = new StylesheetParser(); var style = parser.Parse("*{border: solid 1px #CCC }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("solid", expression.Terms[0].ToString()); Assert.AreEqual("1px", expression.Terms[1].ToString()); Assert.AreEqual("#CCC", expression.Terms[2].ToString()); }
public void border_radius_5px_10px() { var termParts = new[]{"5px","10px"}; var parser = new StylesheetParser(); var style = parser.Parse("*{border-radius: 5px 10px }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("5px", expression.Terms[0].ToString()); Assert.AreEqual("10px", expression.Terms[1].ToString()); }
public void border_left_width_2px() { var termParts = new[]{"2px"}; var parser = new StylesheetParser(); var style = parser.Parse("*{border-left-width: 2px }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("2px", expression.Terms[0].ToString()); }
public void border_left_style_dashed() { var termParts = new[]{"dashed"}; var parser = new StylesheetParser(); var style = parser.Parse("*{border-left-style: dashed }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("dashed", expression.Terms[0].ToString()); }
public void z_index__1() { var termParts = new[]{"-1"}; var parser = new StylesheetParser(); var style = parser.Parse("*{z-index: -1 }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("-1", expression.Terms[0].ToString()); }
public void border_bottom_solid() { var termParts = new[]{"solid"}; var parser = new StylesheetParser(); var style = parser.Parse("*{border-bottom: solid }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("solid", expression.Terms[0].ToString()); }
public void white_space_pre_line() { var termParts = new[]{"pre-line"}; var parser = new StylesheetParser(); var style = parser.Parse("*{white-space: pre-line }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("pre-line", expression.Terms[0].ToString()); }
public void background_transparent_0_0() { var termParts = new[]{"transparent","0","0"}; var parser = new StylesheetParser(); var style = parser.Parse("*{background: transparent 0 0 }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("transparent", expression.Terms[0].ToString()); Assert.AreEqual("0", expression.Terms[1].ToString()); Assert.AreEqual("0", expression.Terms[2].ToString()); }
public void vertical_align_text_top() { var termParts = new[]{"text-top"}; var parser = new StylesheetParser(); var style = parser.Parse("*{vertical-align: text-top }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("text-top", expression.Terms[0].ToString()); }
public void background_repeat_repeat_y() { var termParts = new[]{"repeat-y"}; var parser = new StylesheetParser(); var style = parser.Parse("*{background-repeat: repeat-y }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("repeat-y", expression.Terms[0].ToString()); }
public void text_indent_5px() { var termParts = new[]{"5px"}; var parser = new StylesheetParser(); var style = parser.Parse("*{text-indent: 5px }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("5px", expression.Terms[0].ToString()); }
public void background_position_x_inherit() { var termParts = new[]{"inherit"}; var parser = new StylesheetParser(); var style = parser.Parse("*{background-position-x: inherit }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("inherit", expression.Terms[0].ToString()); }
public void background_position_5px_10Percent() { var termParts = new[]{"5px","10%"}; var parser = new StylesheetParser(); var style = parser.Parse("*{background-position: 5px 10% }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("5px", expression.Terms[0].ToString()); Assert.AreEqual("10%", expression.Terms[1].ToString()); }
public void border_left_1px_none() { var termParts = new[]{"1px","none"}; var parser = new StylesheetParser(); var style = parser.Parse("*{border-left: 1px none }"); var expression = style.RuleSets[0].Declarations[0].Expression; Assert.AreEqual(termParts.Length, expression.Terms.Count); Assert.AreEqual("1px", expression.Terms[0].ToString()); Assert.AreEqual("none", expression.Terms[1].ToString()); }