string Unescape() { switch (LiteralKind) { case AttributeLiteralKind.SingleQuoted: case AttributeLiteralKind.DoubleQuoted: return(UxTextEncoding.Unescape(_escapedValue, 1, _escapedValue.Length - 2)); default: return(_escapedValue); } }
public AttributeLiteralToken With(string unescapedValue = null, AttributeLiteralKind?literalKind = null) { unescapedValue = unescapedValue ?? UnescapedValue; if ((literalKind == null || literalKind != LiteralKind) && unescapedValue == UnescapedValue) { return(this); } switch (literalKind ?? LiteralKind) { case AttributeLiteralKind.DoubleQuoted: case AttributeLiteralKind.Invalid: return(new AttributeLiteralToken( LeadingTrivia, string.Format("\"{0}\"", UxTextEncoding.EncodeAttribute(unescapedValue, '"')), TrailingTrivia, AttributeLiteralKind.DoubleQuoted, unescapedValue)); case AttributeLiteralKind.SingleQuoted: return(new AttributeLiteralToken( LeadingTrivia, string.Format("'{0}'", UxTextEncoding.EncodeAttribute(unescapedValue, '\'')), TrailingTrivia, AttributeLiteralKind.SingleQuoted, unescapedValue)); case AttributeLiteralKind.Unquoted: if (SyntaxParser.IsValidUnquotedAttributeValue(unescapedValue)) { return(new AttributeLiteralToken( LeadingTrivia, unescapedValue, TrailingTrivia, AttributeLiteralKind.Unquoted, unescapedValue)); } return(new AttributeLiteralToken( LeadingTrivia, UxTextEncoding.EncodeAttribute(unescapedValue, '"'), TrailingTrivia, AttributeLiteralKind.DoubleQuoted, unescapedValue)); default: throw new NotSupportedException("Attribute kind is unknown, don't know how to handle."); } }
public void Decode_text(string input, string expected) { Assert.That(UxTextEncoding.Unescape(input), Is.EqualTo(expected)); }