Exemple #1
0
        string Unescape()
        {
            switch (LiteralKind)
            {
            case AttributeLiteralKind.SingleQuoted:
            case AttributeLiteralKind.DoubleQuoted:
                return(UxTextEncoding.Unescape(_escapedValue, 1, _escapedValue.Length - 2));

            default:
                return(_escapedValue);
            }
        }
Exemple #2
0
        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));
 }