Commit cc0fd15f authored by Brickner_cp's avatar Brickner_cp

HTTP

parent fffd905c
......@@ -90,6 +90,11 @@ namespace PcapDotNet.Base
return sequence.SequenceToString(separator, string.Empty);
}
public static string SequenceToString<T>(this IEnumerable<T> sequence, char separator)
{
return sequence.SequenceToString(separator.ToString());
}
/// <summary>
/// Converts a sequence to a string by converting each element to a string.
/// </summary>
......
......@@ -47,6 +47,11 @@ namespace PcapDotNet.Core.Test
Assert.AreEqual(element.Name(), expectedName);
}
public static void AssertNoShow(this XElement element)
{
Assert.IsNull(element.Attribute("show"));
}
public static void AssertShow(this XElement element, string expectedValue, string message = null)
{
Assert.AreEqual(expectedValue, element.Show(), message ?? element.Name());
......@@ -134,7 +139,7 @@ namespace PcapDotNet.Core.Test
public static void AssertValue(this XElement element, string expectedValue, string message = null)
{
Assert.AreEqual(element.Value(), expectedValue, message ?? element.Name());
Assert.AreEqual(expectedValue, element.Value(), message ?? element.Name());
}
public static void AssertValue(this XElement element, IEnumerable<byte> expectedValue, string message = null)
......
......@@ -73,6 +73,13 @@ namespace PcapDotNet.Packets.Http
public string Name { get; private set; }
public ReadOnlyCollection<byte> Value { get; private set; }
public string ValueString
{
get
{
return _defaultEncoding.GetString(Value.ToArray());
}
}
public virtual bool Equals(HttpField other)
{
......@@ -86,12 +93,7 @@ namespace PcapDotNet.Packets.Http
public override string ToString()
{
return string.Format("{0}: {1}", Name, ValueToString());
}
protected virtual string ValueToString()
{
return _defaultEncoding.GetString(Value.ToArray());
return string.Format("{0}: {1}", Name, ValueString);
}
private static readonly Encoding _defaultEncoding = Encoding.GetEncoding(28591);
......
......@@ -20,6 +20,11 @@ namespace PcapDotNet.Packets.Http
{
}
public HttpField this[string fieldName]
{
get { return GetField<HttpField>(fieldName); }
}
public HttpTransferEncodingField TransferEncoding
{
get
......@@ -28,14 +33,6 @@ namespace PcapDotNet.Packets.Http
}
}
private T GetField<T>(string fieldName) where T : HttpField
{
HttpField field;
if (!_fields.TryGetValue(fieldName, out field))
return null;
return (T)field;
}
public HttpContentLengthField ContentLength
{
get
......@@ -97,6 +94,14 @@ namespace PcapDotNet.Packets.Http
_fields = mergedFields.ToDictionary(field => field.Key, field => HttpField.CreateField(field.Key, field.Value.ToArray()), StringComparer.InvariantCultureIgnoreCase);
}
private T GetField<T>(string fieldName) where T : HttpField
{
HttpField field;
if (!_fields.TryGetValue(fieldName, out field))
return null;
return (T)field;
}
private static readonly HttpHeader _empty = new HttpHeader();
private readonly Dictionary<string, HttpField> _fields = new Dictionary<string, HttpField>(StringComparer.InvariantCultureIgnoreCase);
}
......
......@@ -59,10 +59,10 @@ namespace PcapDotNet.Packets.Http
SetTransferCodings(match.GroupCapturesValues(RegexTransferCodingGroupName).ToArray());
}
protected override string ValueToString()
{
return TransferCodings == null ? string.Empty : TransferCodings.SequenceToString(",");
}
// protected override string ValueToString()
// {
// return TransferCodings == null ? string.Empty : TransferCodings.SequenceToString(",");
// }
private ReadOnlyCollection<string> _transferCodings;
......
......@@ -29,9 +29,9 @@ namespace PcapDotNet.TestUtils
"> Actual: <" + actual + ">. " + message);
}
public static void IsBiggerOrEqual<T>(T expectedMaximum, T actual) where T : IComparable<T>
public static void IsBiggerOrEqual<T>(T expectedMinimum, T actual) where T : IComparable<T>
{
IsBiggerOrEqual(expectedMaximum, actual, string.Empty);
IsBiggerOrEqual(expectedMinimum, actual, string.Empty);
}
public static void IsSmallerOrEqual<T>(T expectedMaximum, T actual, string message) where T : IComparable<T>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment