public void Ctor_WithCodePointFilter() { // Arrange var filter = new CodePointFilter(); filter.AllowCharacters('a', 'b'); filter.AllowCharacters('\0', '&', '\uFFFF', 'd'); UrlEncoder encoder = new UrlEncoder(filter); // Act & assert Assert.Equal("a", encoder.UrlEncode("a")); Assert.Equal("b", encoder.UrlEncode("b")); Assert.Equal("%63", encoder.UrlEncode("c")); Assert.Equal("d", encoder.UrlEncode("d")); Assert.Equal("%00", encoder.UrlEncode("\0")); // we still always encode control chars Assert.Equal("%26", encoder.UrlEncode("&")); // we still always encode HTML-special chars Assert.Equal("%EF%BF%BF", encoder.UrlEncode("\uFFFF")); // we still always encode non-chars and other forbidden chars }
public void AllowChars_String() { // Arrange var filter = new CodePointFilter(); // Act var retVal = filter.AllowCharacters("\u0100\u0102"); // Assert Assert.Same(filter, retVal); // returns 'this' instance Assert.True(filter.IsCharacterAllowed('\u0100')); Assert.False(filter.IsCharacterAllowed('\u0101')); Assert.True(filter.IsCharacterAllowed('\u0102')); Assert.False(filter.IsCharacterAllowed('\u0103')); }
public void AllowChars_Array() { // Arrange var filter = new CodePointFilter(); filter.AllowCharacters('\u0100', '\u0102'); // Assert Assert.True(filter.IsCharacterAllowed('\u0100')); Assert.False(filter.IsCharacterAllowed('\u0101')); Assert.True(filter.IsCharacterAllowed('\u0102')); Assert.False(filter.IsCharacterAllowed('\u0103')); }