/*90*/ true, false, false, false, true, true, true, true, true, true,
/*100*/ true, true, true, true, true, true, true, true, true, true,
/*110*/ true, true, true, true, true, true, true, true, true, true,
- /*120*/ true, true, true, false, true, false
+ /*120*/ true, true, true, false, true, false, true
};
static readonly int last_token_char = token_chars.Length;
public static bool IsValidCharacter (char input)
{
- return input <= last_token_char && token_chars[input];
+ return input < last_token_char && token_chars[input];
}
public void EatChar ()
// Quoted string
start = pos - 1;
while (pos < s.Length) {
- ch = s[pos];
+ ch = s [pos++];
if (ch == '"') {
- ++pos;
ttype = Token.Type.QuotedString;
break;
}
-
- // any OCTET except CTLs, but including LWS
- if (ch < 32 || ch > 126)
- break;
-
- ++pos;
}
break;
ttype = Token.Type.OpenParens;
break;
default:
- if (ch <= last_token_char && token_chars[ch]) {
+ if (ch < last_token_char && token_chars[ch]) {
start = pos - 1;
ttype = Token.Type.Token;
while (pos < s.Length) {
ch = s[pos];
- if (ch > last_token_char || !token_chars[ch]) {
+ if (ch >= last_token_char || !token_chars[ch]) {
break;
}
value.FileName = "\"quoted\"";
Assert.AreEqual ("\"quoted\"", value.FileName, "#41");
Assert.AreEqual (new NameValueHeaderValue ("filename", "\"quoted\""), value.Parameters.First (), "#42");
+
+ value.FileName = "~";
+ Assert.AreEqual ("~", value.FileName, "#51");
+ Assert.AreEqual (new NameValueHeaderValue ("filename", "~"), value.Parameters.First (), "#52");
+
+ value.FileName = "\x7f";
+ Assert.AreEqual ("\"\x7f\"", value.FileName, "#61");
+ Assert.AreEqual (new NameValueHeaderValue ("filename", "\"\x7f\""), value.Parameters.First (), "#62");
}
[Test]
Assert.Fail ("#2");
} catch (FormatException) {
}
+
+ try {
+ new NameValueHeaderValue ("\x7f", null);
+ Assert.Fail ("#3");
+ } catch (FormatException) {
+ }
+
+ try {
+ new NameValueHeaderValue ("arg", "\x7f");
+ Assert.Fail ("#4");
+ } catch (FormatException) {
+ }
+ }
+
+ [Test]
+ public void Ctor_ValidArguments ()
+ {
+ NameValueHeaderValue nvh;
+
+ nvh = new NameValueHeaderValue ("arg", "~");
+ Assert.AreEqual ("~", nvh.Value, "#1");
+
+ nvh = new NameValueHeaderValue ("arg", "\"\x7f\x80\"");
+ Assert.AreEqual ("\"\x7f\x80\"", nvh.Value, "#2");
}
[Test]