public void ColorValidLengthLongString() { HtmlColor hc; var color = "fffabc"; var result = HtmlColor.TryFromHex(color, out hc); Assert.IsTrue(result); }
public void ColorInvalidLengthString() { HtmlColor hc; var color = "abcd"; var result = HtmlColor.TryFromHex(color, out hc); Assert.IsFalse(result); }
public void ColorInvalidHexDigitString() { HtmlColor hc; var color = "BCDEFG"; var result = HtmlColor.TryFromHex(color, out hc); Assert.IsFalse(result); }
public void Color_with_leading_hashtag_can_be_parsed_by_try() { HtmlColor color; bool result = HtmlColor.TryFromHex("#FF0000", out color); Assert.IsTrue(result); Assert.AreEqual(new HtmlColor(255, 0, 0), color); }
private bool ParseSingleValueHexColor(string color) { HtmlColor htmlColor; if (HtmlColor.TryFromHex(color, out htmlColor)) { return(AddTerm(htmlColor)); } return(false); }
public void Null_color_does_not_throw() { bool result = true; Assert.DoesNotThrow(() => { HtmlColor color; result = HtmlColor.TryFromHex(null, out color); }); Assert.IsFalse(result); }
/// <summary> /// Creates a single value from the given source. /// </summary> /// <param name="source">The token iterator.</param> /// <returns>The value or NULL.</returns> CSSValue CreateValue(IEnumerator <CssToken> source) { CSSValue value = null; switch (source.Current.Type) { case CssTokenType.String: // 'i am a string' value = new CSSPrimitiveValue(UnitType.String, ((CssStringToken)source.Current).Data); break; case CssTokenType.Url: // url('this is a valid URL') value = new CSSPrimitiveValue(UnitType.Uri, ((CssStringToken)source.Current).Data); break; case CssTokenType.Ident: // ident value = new CSSPrimitiveValue(UnitType.Ident, ((CssKeywordToken)source.Current).Data); break; case CssTokenType.Percentage: // 5% value = new CSSPrimitiveValue(UnitType.Percentage, ((CssUnitToken)source.Current).Data); break; case CssTokenType.Dimension: // 3px value = new CSSPrimitiveValue(((CssUnitToken)source.Current).Unit, ((CssUnitToken)source.Current).Data); break; case CssTokenType.Number: // 173 value = new CSSPrimitiveValue(UnitType.Number, ((CssNumberToken)source.Current).Data); break; case CssTokenType.Hash: // #string HtmlColor color; if (HtmlColor.TryFromHex(((CssKeywordToken)source.Current).Data, out color)) { value = new CSSPrimitiveValue(color); } break; case CssTokenType.Delim: // e.g. #0F3, #012345, ... if (((CssDelimToken)source.Current).Data == '#') { String hash = String.Empty; while (source.MoveNext()) { var stop = false; switch (source.Current.Type) { case CssTokenType.Number: case CssTokenType.Dimension: case CssTokenType.Ident: var rest = source.Current.ToValue(); if (hash.Length + rest.Length <= 6) { hash += rest; } else { stop = true; } break; default: stop = true; break; } if (stop || hash.Length == 6) { break; } } if (HtmlColor.TryFromHex(hash, out color)) { value = new CSSPrimitiveValue(color); } } break; case CssTokenType.Function: // rgba(255, 255, 20, 0.5) value = CreateFunction(source); break; } return(value); }