Example #1
0
        private static void AssertEncodeUsesOnlyIntendedCharacters(string input)
        {
            var encodedInput = PathEncoder.Encode(input);

            Assert.IsTrue(Rfc3986UnreservedCharacters.IsMatch(encodedInput ?? ""));
            encodedInput = PathEncoder.Encode(input, allowSlash: true);
            Assert.IsTrue(Rfc3986UnreservedCharactersAndSlash.IsMatch(encodedInput ?? ""));
            encodedInput = PathEncoder.Encode(input, allowSlash: false);
            Assert.IsTrue(Rfc3986UnreservedCharacters.IsMatch(encodedInput ?? ""));
        }
Example #2
0
        private static void AssertDecodeOfEncodeMatches(string input)
        {
            var encodedInput = PathEncoder.Encode(input);

            Assert.AreEqual(input, PathEncoder.Decode(encodedInput));
            encodedInput = PathEncoder.Encode(input, allowSlash: true);
            Assert.AreEqual(input, PathEncoder.Decode(encodedInput));
            encodedInput = PathEncoder.Encode(input, allowSlash: false);
            Assert.AreEqual(input, PathEncoder.Decode(encodedInput));
        }
Example #3
0
        private static void AssertUrlDecodeDoesNotChange(string input)
        {
            var encodedInput = PathEncoder.Encode(input);
            var urlString    = "http://localhost/" + encodedInput;

            Assert.AreEqual(urlString, HttpUtility.UrlDecode(urlString));
            encodedInput = PathEncoder.Encode(input, allowSlash: true);
            urlString    = "http://localhost/" + encodedInput;
            Assert.AreEqual(urlString, HttpUtility.UrlDecode(urlString));
            encodedInput = PathEncoder.Encode(input, allowSlash: false);
            urlString    = "http://localhost/" + encodedInput;
            Assert.AreEqual(urlString, HttpUtility.UrlDecode(urlString));
        }
Example #4
0
 public void AllowSlashFalse()
 {
     Assert.AreEqual(0, PathEncoder.Encode("abc/def/ghi", allowSlash: false).Where(c => '/' == c).Count());
 }
Example #5
0
 public void AllowSlashTrue()
 {
     Assert.AreEqual(2, PathEncoder.Encode("abc/def/ghi", allowSlash: true).Where(c => '/' == c).Count());
 }
Example #6
0
 public void SlashEncodedByDefault()
 {
     Assert.AreEqual(0, PathEncoder.Encode("abc/def/ghi").Where(c => '/' == c).Count());
 }
Example #7
0
        public void DoubleEncodeDecode()
        {
            var input = GetStringCharacterRange(30, 126); // Printable characters

            Assert.AreEqual(input, PathEncoder.Decode(PathEncoder.Decode(PathEncoder.Encode(PathEncoder.Encode(input)))));
        }
Example #8
0
 public void HandlesCshtmlExtension()
 {
     Assert.AreEqual(PathEncoder.Encode("index.cshtml"), "index.cshtml.view");
     Assert.AreEqual(PathEncoder.Decode("index.cshtml.view"), "index.cshtml");
 }