Exemple #1
0
        private void CheckInvalidTryParse(string input)
        {
            ViaHeaderValue result = null;

            Assert.False(ViaHeaderValue.TryParse(input, out result));
            Assert.Null(result);
        }
        public void Parse_Invalid()
        {
            try {
                ViaHeaderValue.Parse(null);
                Assert.Fail("#1");
            } catch (FormatException) {
            }

            try {
                ViaHeaderValue.Parse("  ");
                Assert.Fail("#2");
            } catch (FormatException) {
            }

            try {
                ViaHeaderValue.Parse("a");
                Assert.Fail("#3");
            } catch (FormatException) {
            }

            try {
                ViaHeaderValue.Parse("1 nowhere.com :43");
                Assert.Fail("#4");
            } catch (FormatException) {
            }
        }
Exemple #3
0
        private void CheckInvalidParse(string input)
        {
            Assert.Throws <FormatException>(() => { ViaHeaderValue.Parse(input); });

            Assert.False(ViaHeaderValue.TryParse(input, out ViaHeaderValue result));
            Assert.Null(result);
        }
Exemple #4
0
        private void CheckValidTryParse(string input, ViaHeaderValue expectedResult)
        {
            ViaHeaderValue result = null;

            Assert.True(ViaHeaderValue.TryParse(input, out result));
            Assert.Equal(expectedResult, result);
        }
Exemple #5
0
        private static void CheckInvalidGetViaLength(string input, int startIndex)
        {
            object result = null;

            Assert.Equal(0, ViaHeaderValue.GetViaLength(input, startIndex, out result));
            Assert.Null(result);
        }
Exemple #6
0
        public void GetHashCode_UseSameAndDifferentRanges_SameOrDifferentHashCodes()
        {
            ViaHeaderValue via1  = new ViaHeaderValue("x11", "host");
            ViaHeaderValue via2  = new ViaHeaderValue("x11", "HOST");
            ViaHeaderValue via3  = new ViaHeaderValue("X11", "host");
            ViaHeaderValue via4  = new ViaHeaderValue("x11", "host", "HTTP");
            ViaHeaderValue via5  = new ViaHeaderValue("x11", "host", "http");
            ViaHeaderValue via6  = new ViaHeaderValue("x11", "host", null, "(comment)");
            ViaHeaderValue via7  = new ViaHeaderValue("x11", "host", "HTTP", "(comment)");
            ViaHeaderValue via8  = new ViaHeaderValue("x11", "host", "HTTP", "(COMMENT)");
            ViaHeaderValue via9  = new ViaHeaderValue("x12", "host");
            ViaHeaderValue via10 = new ViaHeaderValue("x11", "host2");
            ViaHeaderValue via11 = new ViaHeaderValue("x11", "host", "WS");
            ViaHeaderValue via12 = new ViaHeaderValue("x11", "host", string.Empty, string.Empty);

            Assert.Equal(via1.GetHashCode(), via2.GetHashCode());
            Assert.Equal(via1.GetHashCode(), via3.GetHashCode());
            Assert.NotEqual(via1.GetHashCode(), via4.GetHashCode());
            Assert.NotEqual(via1.GetHashCode(), via6.GetHashCode());
            Assert.NotEqual(via1.GetHashCode(), via7.GetHashCode());
            Assert.NotEqual(via1.GetHashCode(), via9.GetHashCode());
            Assert.NotEqual(via1.GetHashCode(), via10.GetHashCode());
            Assert.NotEqual(via4.GetHashCode(), via11.GetHashCode());
            Assert.Equal(via4.GetHashCode(), via5.GetHashCode());
            Assert.NotEqual(via4.GetHashCode(), via6.GetHashCode());
            Assert.NotEqual(via6.GetHashCode(), via7.GetHashCode());
            Assert.NotEqual(via7.GetHashCode(), via8.GetHashCode());
            Assert.Equal(via1.GetHashCode(), via12.GetHashCode());
        }
        public void TryParse_Invalid()
        {
            ViaHeaderValue res;

            Assert.IsFalse(ViaHeaderValue.TryParse("", out res), "#1");
            Assert.IsNull(res, "#2");
        }
Exemple #8
0
        public void Equals_UseSameAndDifferentRanges_EqualOrNotEqualNoExceptions()
        {
            ViaHeaderValue via1  = new ViaHeaderValue("x11", "host");
            ViaHeaderValue via2  = new ViaHeaderValue("x11", "HOST");
            ViaHeaderValue via3  = new ViaHeaderValue("X11", "host");
            ViaHeaderValue via4  = new ViaHeaderValue("x11", "host", "HTTP");
            ViaHeaderValue via5  = new ViaHeaderValue("x11", "host", "http");
            ViaHeaderValue via6  = new ViaHeaderValue("x11", "host", null, "(comment)");
            ViaHeaderValue via7  = new ViaHeaderValue("x11", "host", "HTTP", "(comment)");
            ViaHeaderValue via8  = new ViaHeaderValue("x11", "host", "HTTP", "(COMMENT)");
            ViaHeaderValue via9  = new ViaHeaderValue("x12", "host");
            ViaHeaderValue via10 = new ViaHeaderValue("x11", "host2");
            ViaHeaderValue via11 = new ViaHeaderValue("x11", "host", "WS");
            ViaHeaderValue via12 = new ViaHeaderValue("x11", "host", string.Empty, string.Empty);

            Assert.False(via1.Equals(null), "x11 host vs. <null>");
            Assert.True(via1.Equals(via2), "x11 host vs. x11 HOST");
            Assert.True(via1.Equals(via3), "x11 host vs. X11 host");
            Assert.False(via1.Equals(via4), "x11 host vs. HTTP/x11 host");
            Assert.False(via4.Equals(via1), "HTTP/x11 host vs. x11 host");
            Assert.False(via1.Equals(via6), "x11 host vs. HTTP/x11 (comment)");
            Assert.False(via6.Equals(via1), "HTTP/x11 (comment) vs. x11 host");
            Assert.False(via1.Equals(via7), "x11 host vs. HTTP/x11 host (comment)");
            Assert.False(via7.Equals(via1), "HTTP/x11 host (comment) vs. x11 host");
            Assert.False(via1.Equals(via9), "x11 host vs. x12 host");
            Assert.False(via1.Equals(via10), "x11 host vs. x11 host2");
            Assert.False(via4.Equals(via11), "HTTP/x11 host vs. WS/x11 host");
            Assert.True(via4.Equals(via5), "HTTP/x11 host vs. http/x11 host");
            Assert.False(via4.Equals(via6), "HTTP/x11 host vs. x11 host (comment)");
            Assert.False(via6.Equals(via4), "x11 host (comment) vs. HTTP/x11 host");
            Assert.False(via6.Equals(via7), "x11 host (comment) vs. HTTP/x11 host (comment)");
            Assert.False(via7.Equals(via6), "HTTP/x11 host (comment) vs. x11 host (comment)");
            Assert.False(via7.Equals(via8), "HTTP/x11 host (comment) vs. HTTP/x11 host (COMMENT)");
            Assert.True(via1.Equals(via12), "x11 host vs. x11 host <empty> <empty>");
        }
Exemple #9
0
        private static void CheckGetViaLength(string input, int startIndex, int expectedLength,
                                              ViaHeaderValue expectedResult)
        {
            object result = null;

            Assert.Equal(expectedLength, ViaHeaderValue.GetViaLength(input, startIndex, out result));
            Assert.Equal(expectedResult, result);
        }
        public void Parse()
        {
            var res = ViaHeaderValue.Parse("1.1 nowhere.com");

            Assert.IsNull(res.ProtocolName, "#1");
            Assert.AreEqual("nowhere.com", res.ReceivedBy, "#2");
            Assert.AreEqual("1.1", res.ProtocolVersion, "#3");
        }
        public void TryParse()
        {
            ViaHeaderValue res;

            Assert.IsTrue(ViaHeaderValue.TryParse("a b", out res), "#1");
            Assert.AreEqual("b", res.ReceivedBy, "#2");
            Assert.AreEqual("a", res.ProtocolVersion, "#3");
            Assert.IsNull(res.Comment, "#4");
            Assert.IsNull(res.ProtocolName, "#5");
        }
Exemple #12
0
        private void CheckValidParsedValue(string input, int startIndex, ViaHeaderValue expectedResult,
                                           int expectedIndex)
        {
            HttpHeaderParser parser = GenericHeaderParser.MultipleValueViaParser;
            object           result = null;

            Assert.True(parser.TryParseValue(input, null, ref startIndex, out result),
                        string.Format("TryParse returned false: {0}", input));
            Assert.Equal(expectedIndex, startIndex);
            Assert.Equal(result, expectedResult);
        }
Exemple #13
0
        public void Ctor_AllParams_AllFieldsInitializedCorrectly()
        {
            ViaHeaderValue via = new ViaHeaderValue("1.1", "host", "HTTP", "(comment)");

            Assert.Equal("1.1", via.ProtocolVersion);
            Assert.Equal("host", via.ReceivedBy);
            Assert.Equal("HTTP", via.ProtocolName);
            Assert.Equal("(comment)", via.Comment);

            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", "h", "p", "(x"); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", "h", "p", "x)"); });
        }
        public void Equals()
        {
            var value = new ViaHeaderValue("ab", "x");

            Assert.AreEqual(value, new ViaHeaderValue("ab", "x"), "#1");
            Assert.AreEqual(value, new ViaHeaderValue("AB", "X"), "#2");
            Assert.AreNotEqual(value, new ViaHeaderValue("AA", "x"), "#3");

            value = new ViaHeaderValue("ab", "DD", "cc");
            Assert.AreEqual(value, new ViaHeaderValue("Ab", "DD", "cC"), "#4");
            Assert.AreNotEqual(value, new ViaHeaderValue("AB", "DD"), "#5");
            Assert.AreNotEqual(value, new ViaHeaderValue("Ab", "dd", "cc", "(c)"), "#6");
        }
Exemple #15
0
        public void Ctor_ProtocolVersionReceivedByAndProtocolNameOnlyOverload_CallForwardedToOtherCtor()
        {
            ViaHeaderValue via = new ViaHeaderValue("1.1", "host", "HTTP");

            Assert.Equal("1.1", via.ProtocolVersion);
            Assert.Equal("host", via.ReceivedBy);
            Assert.Equal("HTTP", via.ProtocolName);
            Assert.Null(via.Comment);

            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", "h", "x y"); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", "h", "x "); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", "h", " x"); });
        }
Exemple #16
0
        public void ToString_UseDifferentRanges_AllSerializedCorrectly()
        {
            ViaHeaderValue via = new ViaHeaderValue("1.1", "host:80");

            Assert.Equal("1.1 host:80", via.ToString());

            via = new ViaHeaderValue("1.1", "[::1]", "HTTP");
            Assert.Equal("HTTP/1.1 [::1]", via.ToString());

            via = new ViaHeaderValue("1.0", "www.example.com", "WS", "(comment)");
            Assert.Equal("WS/1.0 www.example.com (comment)", via.ToString());

            via = new ViaHeaderValue("1.0", "www.example.com:80", null, "(comment)");
            Assert.Equal("1.0 www.example.com:80 (comment)", via.ToString());
        }
        public void Parse()
        {
            var res = ViaHeaderValue.Parse("1.1 nowhere.com");

            Assert.IsNull(res.ProtocolName, "#1");
            Assert.AreEqual("nowhere.com", res.ReceivedBy, "#2");
            Assert.AreEqual("1.1", res.ProtocolVersion, "#3");
            Assert.AreEqual("1.1 nowhere.com", res.ToString(), "#4");

            res = ViaHeaderValue.Parse("foo / 1.1 nowhere.com:43   ( lalala ) ");
            Assert.AreEqual("foo", res.ProtocolName, "#10");
            Assert.AreEqual("1.1", res.ProtocolVersion, "#11");
            Assert.AreEqual("nowhere.com:43", res.ReceivedBy, "#12");
            Assert.AreEqual("( lalala )", res.Comment, "#13");
            Assert.AreEqual("foo/1.1 nowhere.com:43 ( lalala )", res.ToString(), "#14");
        }
        public void Properties()
        {
            var value = new ViaHeaderValue("s", "p");

            Assert.IsNull(value.ProtocolName, "#1");
            Assert.AreEqual("s", value.ProtocolVersion, "#2");
            Assert.AreEqual("p", value.ReceivedBy, "#3");

            value = new ViaHeaderValue("s", "rb", "name");
            Assert.AreEqual("name", value.ProtocolName, "#4");
            Assert.AreEqual("s", value.ProtocolVersion, "#5");
            Assert.AreEqual("rb", value.ReceivedBy, "#6");

            value = new ViaHeaderValue("s", "rb", "name", "(cmt)");
            Assert.AreEqual("name", value.ProtocolName, "#7");
            Assert.AreEqual("s", value.ProtocolVersion, "#8");
            Assert.AreEqual("rb", value.ReceivedBy, "#9");
            Assert.AreEqual("(cmt)", value.Comment, "#10");
        }
Exemple #19
0
        public void Ctor_ProtocolVersionAndReceivedByOnlyOverload_CallForwardedToOtherCtor()
        {
            ViaHeaderValue via = new ViaHeaderValue("1.1", ".token");

            Assert.Equal("1.1", via.ProtocolVersion);
            Assert.Equal(".token", via.ReceivedBy);
            Assert.Null(via.ProtocolName);
            Assert.Null(via.Comment);

            via = new ViaHeaderValue("x11", "[::1]:1818");
            Assert.Equal("x11", via.ProtocolVersion);
            Assert.Equal("[::1]:1818", via.ReceivedBy);

            AssertExtensions.Throws <ArgumentException>("protocolVersion", () => { new ViaHeaderValue(null, "host"); });
            AssertExtensions.Throws <ArgumentException>("protocolVersion", () => { new ViaHeaderValue("", "host"); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("x y", "h"); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("x ", "h"); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue(" x", "h"); });
            AssertExtensions.Throws <ArgumentException>("receivedBy", () => { new ViaHeaderValue("1.1", null); });
            AssertExtensions.Throws <ArgumentException>("receivedBy", () => { new ViaHeaderValue("1.1", ""); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", "x y"); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", "x "); });
            Assert.Throws <FormatException>(() => { new ViaHeaderValue("v", " x"); });
        }
Exemple #20
0
        public void Clone_Call_CloneFieldsMatchSourceFields()
        {
            ViaHeaderValue source = new ViaHeaderValue("1.1", "host");
            ViaHeaderValue clone  = (ViaHeaderValue)((ICloneable)source).Clone();

            Assert.Equal(source.ProtocolVersion, clone.ProtocolVersion);
            Assert.Equal(source.ReceivedBy, clone.ReceivedBy);
            Assert.Equal(source.ProtocolName, clone.ProtocolName);
            Assert.Equal(source.Comment, clone.Comment);

            source = new ViaHeaderValue("1.1", "host", "HTTP");
            clone  = (ViaHeaderValue)((ICloneable)source).Clone();
            Assert.Equal(source.ProtocolVersion, clone.ProtocolVersion);
            Assert.Equal(source.ReceivedBy, clone.ReceivedBy);
            Assert.Equal(source.ProtocolName, clone.ProtocolName);
            Assert.Equal(source.Comment, clone.Comment);

            source = new ViaHeaderValue("1.1", "host", "HTTP", "(comment)");
            clone  = (ViaHeaderValue)((ICloneable)source).Clone();
            Assert.Equal(source.ProtocolVersion, clone.ProtocolVersion);
            Assert.Equal(source.ReceivedBy, clone.ReceivedBy);
            Assert.Equal(source.ProtocolName, clone.ProtocolName);
            Assert.Equal(source.Comment, clone.Comment);
        }
Exemple #21
0
 public static bool TryParse(string input, out ViaHeaderValue parsedValue);
Exemple #22
0
 public static bool TryParse(string input, out ViaHeaderValue parsedValue)
 {
     throw new NotImplementedException();
 }
Exemple #23
0
		public static bool TryParse (string input, out ViaHeaderValue parsedValue)
		{
			throw new NotImplementedException ();
		}
Exemple #24
0
        private void CheckValidParse(string input, ViaHeaderValue expectedResult)
        {
            ViaHeaderValue result = ViaHeaderValue.Parse(input);

            Assert.Equal(expectedResult, result);
        }
Exemple #25
0
        public static bool TryParse(string input, out ViaHeaderValue parsedValue)
        {
            parsedValue = null;

            var lexer = new Lexer(input);

            var t = lexer.Scan();

            if (t != Token.Type.Token)
            {
                return(false);
            }

            var            next  = lexer.Scan();
            ViaHeaderValue value = new ViaHeaderValue();

            if (next == Token.Type.SeparatorSlash)
            {
                next = lexer.Scan();
                if (next != Token.Type.Token)
                {
                    return(false);
                }

                value.ProtocolName    = lexer.GetStringValue(t);
                value.ProtocolVersion = lexer.GetStringValue(next);

                next = lexer.Scan();
            }
            else
            {
                value.ProtocolVersion = lexer.GetStringValue(t);
            }

            if (next != Token.Type.Token)
            {
                return(false);
            }

            if (lexer.PeekChar() == ':')
            {
                lexer.EatChar();

                t = lexer.Scan();
                if (t != Token.Type.Token)
                {
                    return(false);
                }
            }
            else
            {
                t = next;
            }

            value.ReceivedBy = lexer.GetStringValue(next, t);

            string comment;

            if (!lexer.ScanCommentOptional(out comment))
            {
                return(false);
            }

            value.Comment = comment;
            parsedValue   = value;
            return(true);
        }
Exemple #26
0
 private void CheckInvalidParse(string input)
 {
     Assert.Throws <FormatException>(() => { ViaHeaderValue.Parse(input); });
 }
 /// <summary>
 /// Sets the Via header of the request to the specified value.
 /// </summary>
 /// <param name="value">The Via header value.</param>
 /// <returns>An <see cref="IRequest"/> object that represents the request.</returns>
 public static IRequest Via(this IWith @this, ViaHeaderValue value)
 => @this.AddHeaderValue(headers => headers.Via, value);
Exemple #28
0
		public static bool TryParse (string input, out ViaHeaderValue parsedValue)
		{
			parsedValue = null;

			var lexer = new Lexer (input);

			var t = lexer.Scan ();
			if (t != Token.Type.Token)
				return false;

			var next = lexer.Scan ();
			ViaHeaderValue value = new ViaHeaderValue ();

			if (next == Token.Type.SeparatorSlash) {
				next = lexer.Scan ();
				if (next != Token.Type.Token)
					return false;

				value.ProtocolName = lexer.GetStringValue (t);
				value.ProtocolVersion = lexer.GetStringValue (next);

				next = lexer.Scan ();
			} else {
				value.ProtocolVersion = lexer.GetStringValue (t);
			}

			if (next != Token.Type.Token)
				return false;

			if (lexer.PeekChar () == ':') {
				lexer.EatChar ();

				t = lexer.Scan ();
				if (t != Token.Type.Token)
					return false;
			} else {
				t = next;
			}

			value.ReceivedBy = lexer.GetStringValue (next, t);

			string comment;
			if (!lexer.ScanCommentOptional (out comment))
				return false;

			value.Comment = comment;
			parsedValue = value;
			return true;
		}