Пример #1
0
        public void HtmlAttributeEncode()
        {
            var encoder = new HttpEncoderPoker();
            var sw      = new StringWriter();

            AssertExtensions.Throws <ArgumentNullException> (() => {
                encoder.CallHtmlAttributeEncode("string", null);
            }, "#A1");

            encoder.CallHtmlAttributeEncode("<script>", sw);
            Assert.AreEqual("&lt;script>", sw.ToString(), "#A2");

            sw = new StringWriter();
            encoder.CallHtmlAttributeEncode("\"a&b\"", sw);
            Assert.AreEqual("&quot;a&amp;b&quot;", sw.ToString(), "#A3");

            sw = new StringWriter();
            encoder.CallHtmlAttributeEncode("'string'", sw);
            Assert.AreEqual("&#39;string&#39;", sw.ToString(), "#A4");

            sw = new StringWriter();
            encoder.CallHtmlAttributeEncode("\\string\\", sw);
            Assert.AreEqual("\\string\\", sw.ToString(), "#A5");

            sw = new StringWriter();
            encoder.CallHtmlAttributeEncode(null, sw);
            Assert.AreEqual(String.Empty, sw.ToString(), "#A6");

            sw = new StringWriter();
            encoder.CallHtmlAttributeEncode(null, sw);
            Assert.AreEqual(String.Empty, sw.ToString(), "#A7");
        }
Пример #2
0
        public void HtmlEncode()
        {
            var          encoder = new HttpEncoderPoker();
            StringWriter sw;

            AssertExtensions.Throws <ArgumentNullException> (() =>
            {
                encoder.CallHtmlEncode("string", null);
            }, "#A1");

            sw = new StringWriter();
            encoder.CallHtmlEncode(null, sw);
            Assert.AreEqual(String.Empty, sw.ToString(), "#A2");

            sw = new StringWriter();
            encoder.CallHtmlEncode(String.Empty, sw);
            Assert.AreEqual(String.Empty, sw.ToString(), "#A3");

            for (int i = 0; i < encoding_pairs.Length; i += 2)
            {
                sw = new StringWriter();
                encoder.CallHtmlEncode(encoding_pairs [i], sw);
                Assert.AreEqual(encoding_pairs [i + 1], sw.ToString(), "#B" + (i / 2).ToString());
            }
        }
Пример #3
0
		public void HtmlAttributeEncode ()
		{
			var encoder = new HttpEncoderPoker ();
			var sw = new StringWriter ();

			AssertExtensions.Throws<ArgumentNullException> (() => {
				encoder.CallHtmlAttributeEncode ("string", null);
			}, "#A1");

			encoder.CallHtmlAttributeEncode ("<script>", sw);
			Assert.AreEqual ("&lt;script>", sw.ToString (), "#A2");

			sw = new StringWriter ();
			encoder.CallHtmlAttributeEncode ("\"a&b\"", sw);
			Assert.AreEqual ("&quot;a&amp;b&quot;", sw.ToString (), "#A3");

			sw = new StringWriter ();
			encoder.CallHtmlAttributeEncode ("'string'", sw);
			Assert.AreEqual ("&#39;string&#39;", sw.ToString (), "#A4");

			sw = new StringWriter ();
			encoder.CallHtmlAttributeEncode ("\\string\\", sw);
			Assert.AreEqual ("\\string\\", sw.ToString (), "#A5");

			sw = new StringWriter ();
			encoder.CallHtmlAttributeEncode (null, sw);
			Assert.AreEqual (String.Empty, sw.ToString (), "#A6");

			sw = new StringWriter ();
			encoder.CallHtmlAttributeEncode (null, sw);
			Assert.AreEqual (String.Empty, sw.ToString (), "#A7");
		}
Пример #4
0
        public void UrlEncode()
        {
            var encoder = new HttpEncoderPoker();

            byte [] bytes = new byte [10];

            AssertExtensions.Throws <ArgumentOutOfRangeException> (() =>
            {
                encoder.CallUrlEncode(bytes, -1, 1);
            }, "#A1-1");

            AssertExtensions.Throws <ArgumentOutOfRangeException> (() =>
            {
                encoder.CallUrlEncode(bytes, 11, 1);
            }, "#A1-2");

            AssertExtensions.Throws <ArgumentOutOfRangeException> (() =>
            {
                encoder.CallUrlEncode(bytes, 0, -1);
            }, "#A1-3");

            AssertExtensions.Throws <ArgumentOutOfRangeException> (() =>
            {
                encoder.CallUrlEncode(bytes, 01, 11);
            }, "#A1-4");

            AssertExtensions.Throws <ArgumentNullException> (() =>
            {
                encoder.CallUrlEncode(null, 0, 1);
            }, "#A1-5");

            for (char c = char.MinValue; c < char.MaxValue; c++)
            {
                byte [] bIn;
                bIn = Encoding.UTF8.GetBytes(c.ToString());
                MemoryStream expected   = new MemoryStream();
                MemoryStream expUnicode = new MemoryStream();

                //build expected result for UrlEncode
                for (int i = 0; i < bIn.Length; i++)
                {
                    UrlEncodeChar((char)bIn [i], expected, false);
                }

                byte [] expectedBytes = expected.ToArray();
                byte [] encodedBytes  = encoder.CallUrlEncode(bIn, 0, bIn.Length);
                Assert.IsNotNull(encodedBytes, "#B1-1");
                Assert.AreEqual(expectedBytes.Length, encodedBytes.Length, "#B1-2");

                for (int i = 0; i < expectedBytes.Length; i++)
                {
                    Assert.AreEqual(expectedBytes [i], encodedBytes [i], String.Format("[Char: {0}] [Pos: {1}]", c, i));
                }
            }

            byte [] encoded = encoder.CallUrlEncode(new byte [0], 0, 0);
            Assert.IsNotNull(encoded, "#C1-1");
            Assert.AreEqual(0, encoded.Length, "#C1-2");
        }
Пример #5
0
        public void HtmlDecode_Specials()
        {
            var encoder = new HttpEncoderPoker();
            var sw      = new StringWriter();

            encoder.CallHtmlDecode("&hearts;&#6iQj", sw);
            Assert.AreEqual("♥&#6iQj", sw.ToString(), "#A1");
        }
Пример #6
0
        public void UrlPathEncode2()
        {
            var encoder = new HttpEncoderPoker();

            string s  = "default.xxx?sdsd=sds";
            string s2 = encoder.CallUrlPathEncode(s);

            Assert.AreEqual(s, s2, "UrlPathEncode " + s);
        }
Пример #7
0
        public void UrlPathEncode()
        {
            var encoder = new HttpEncoderPoker();

            Assert.AreEqual(null, encoder.CallUrlPathEncode(null), "#A1-1");
            Assert.AreEqual(String.Empty, encoder.CallUrlPathEncode(String.Empty), "#A1-2");

            for (char c = char.MinValue; c < char.MaxValue; c++)
            {
                MemoryStream expected = new MemoryStream();
                UrlPathEncodeChar(c, expected);

                string exp = Encoding.ASCII.GetString(expected.ToArray());
                string act = encoder.CallUrlPathEncode(c.ToString());
                Assert.AreEqual(exp, act, "UrlPathEncode " + c.ToString());
            }
        }
Пример #8
0
        public void HeaderNameValueEncode()
        {
            var    encoder = new HttpEncoderPoker();
            string encodedName;
            string encodedValue;

            encoder.CallHeaderNameValueEncode(null, null, out encodedName, out encodedValue);
            Assert.AreEqual(null, encodedName, "#A1-1");
            Assert.AreEqual(null, encodedValue, "#A1-2");

            encoder.CallHeaderNameValueEncode(String.Empty, String.Empty, out encodedName, out encodedValue);
            Assert.AreEqual(String.Empty, encodedName, "#A2-1");
            Assert.AreEqual(String.Empty, encodedValue, "#A2-2");

            char ch;

            for (int i = Char.MinValue; i <= Char.MaxValue; i++)
            {
                ch = (char)i;
                encoder.CallHeaderNameValueEncode(ch.ToString(), null, out encodedName, out encodedValue);

                if (headerNameEncodedChars.ContainsKey(ch))
                {
                    Assert.AreEqual(headerNameEncodedChars [ch], encodedName, "#B1-" + i.ToString());
                }
                else
                {
                    Assert.AreEqual(ch.ToString(), encodedName, "#B1-" + i.ToString());
                }

                encoder.CallHeaderNameValueEncode(null, ch.ToString(), out encodedName, out encodedValue);
                if (headerValueEncodedChars.ContainsKey(ch))
                {
                    Assert.AreEqual(headerValueEncodedChars [ch], encodedValue, "#C1-" + i.ToString());
                }
                else
                {
                    Assert.AreEqual(ch.ToString(), encodedValue, "#C1-" + i.ToString());
                }
            }
        }
Пример #9
0
		public void HeaderNameValueEncode ()
		{
			var encoder = new HttpEncoderPoker ();
			string encodedName;
			string encodedValue;
			
			encoder.CallHeaderNameValueEncode (null, null, out encodedName, out encodedValue);
			Assert.AreEqual (null, encodedName, "#A1-1");
			Assert.AreEqual (null, encodedValue, "#A1-2");

			encoder.CallHeaderNameValueEncode (String.Empty, String.Empty, out encodedName, out encodedValue);
			Assert.AreEqual (String.Empty, encodedName, "#A2-1");
			Assert.AreEqual (String.Empty, encodedValue, "#A2-2");

			char ch;
			for (int i = Char.MinValue; i <= Char.MaxValue; i++) {
				ch = (char) i;
				encoder.CallHeaderNameValueEncode (ch.ToString (), null, out encodedName, out encodedValue);

				if (headerNameEncodedChars.ContainsKey (ch))
					Assert.AreEqual (headerNameEncodedChars [ch], encodedName, "#B1-" + i.ToString ());
				else
					Assert.AreEqual (ch.ToString (), encodedName, "#B1-" + i.ToString ());

				encoder.CallHeaderNameValueEncode (null, ch.ToString (), out encodedName, out encodedValue);
				if (headerValueEncodedChars.ContainsKey (ch))
					Assert.AreEqual (headerValueEncodedChars [ch], encodedValue, "#C1-" + i.ToString ());
				else
					Assert.AreEqual (ch.ToString (), encodedValue, "#C1-" + i.ToString ());
			}
		}
Пример #10
0
		public void UrlPathEncode2 ()
		{
			var encoder = new HttpEncoderPoker ();

			string s = "default.xxx?sdsd=sds";
			string s2 = encoder.CallUrlPathEncode (s);
			Assert.AreEqual (s, s2, "UrlPathEncode " + s);
		}
Пример #11
0
		public void UrlPathEncode ()
		{
			var encoder = new HttpEncoderPoker ();

			Assert.AreEqual (null, encoder.CallUrlPathEncode (null), "#A1-1");
			Assert.AreEqual (String.Empty, encoder.CallUrlPathEncode (String.Empty), "#A1-2");

			for (char c = char.MinValue; c < char.MaxValue; c++) {
				MemoryStream expected = new MemoryStream ();
				UrlPathEncodeChar (c, expected);

				string exp = Encoding.ASCII.GetString (expected.ToArray ());
				string act = encoder.CallUrlPathEncode (c.ToString ());
				Assert.AreEqual (exp, act, "UrlPathEncode " + c.ToString ());
			}
		}
Пример #12
0
		public void UrlEncode ()
		{
			var encoder = new HttpEncoderPoker ();
			byte [] bytes = new byte [10];

			AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
				encoder.CallUrlEncode (bytes, -1, 1);
			}, "#A1-1");

			AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
				encoder.CallUrlEncode (bytes, 11, 1);
			}, "#A1-2");

			AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
				encoder.CallUrlEncode (bytes, 0, -1);
			}, "#A1-3");

			AssertExtensions.Throws<ArgumentOutOfRangeException> (() => {
				encoder.CallUrlEncode (bytes, 01, 11);
			}, "#A1-4");

			AssertExtensions.Throws<ArgumentNullException> (() => {
				encoder.CallUrlEncode (null, 0, 1);
			}, "#A1-5");

			for (char c = char.MinValue; c < char.MaxValue; c++) {
				byte [] bIn;
				bIn = Encoding.UTF8.GetBytes (c.ToString ());
				MemoryStream expected = new MemoryStream ();
				MemoryStream expUnicode = new MemoryStream ();

				//build expected result for UrlEncode
				for (int i = 0; i < bIn.Length; i++)
					UrlEncodeChar ((char) bIn [i], expected, false);

				byte [] expectedBytes = expected.ToArray ();
				byte [] encodedBytes = encoder.CallUrlEncode (bIn, 0, bIn.Length);
				Assert.IsNotNull (encodedBytes, "#B1-1");
				Assert.AreEqual (expectedBytes.Length, encodedBytes.Length, "#B1-2");

				for (int i = 0; i < expectedBytes.Length; i++)
					Assert.AreEqual (expectedBytes [i], encodedBytes [i], String.Format ("[Char: {0}] [Pos: {1}]", c, i));
			}

			byte [] encoded = encoder.CallUrlEncode (new byte [0], 0, 0);
			Assert.IsNotNull (encoded, "#C1-1");
			Assert.AreEqual (0, encoded.Length, "#C1-2");
		}
Пример #13
0
		public void HtmlEncode ()
		{
			var encoder = new HttpEncoderPoker ();
			StringWriter sw;

			AssertExtensions.Throws<ArgumentNullException> (() => {
				encoder.CallHtmlEncode ("string", null);
			}, "#A1");

			sw = new StringWriter ();
			encoder.CallHtmlEncode (null, sw);
			Assert.AreEqual (String.Empty, sw.ToString (), "#A2");

			sw = new StringWriter ();
			encoder.CallHtmlEncode (String.Empty, sw);
			Assert.AreEqual (String.Empty, sw.ToString (), "#A3");

			for (int i = 0; i < encoding_pairs.Length; i += 2) {
				sw = new StringWriter ();
				encoder.CallHtmlEncode (encoding_pairs [i], sw);
				Assert.AreEqual (encoding_pairs [i + 1], sw.ToString (), "#B" + (i / 2).ToString ());
			}
		}
Пример #14
0
		public void HtmlDecode_Specials ()
		{
			var encoder = new HttpEncoderPoker ();
			var sw = new StringWriter ();

			encoder.CallHtmlDecode ("&hearts;&#6iQj", sw);
			Assert.AreEqual ("♥&#6iQj", sw.ToString (), "#A1");
		}