Пример #1
0
        public void TestMappingOverridesNormalCode()
        {
            Assert.AreEqual(Encoding.GetEncoding("iso-8859-1"), EncodingFinder.FindEncoding("iso-8859-1"));

            EncodingFinder.AddMapping("iso-8859-1", Encoding.UTF8);
            Assert.AreEqual(Encoding.UTF8, EncodingFinder.FindEncoding("iso-8859-1"));
        }
        /// <summary>
        /// Parses a character set into an encoding
        /// </summary>
        /// <param name="characterSet">The character set that needs to be parsed. <see langword="null"/> is allowed.</param>
        /// <returns>The encoding specified by the <paramref name="characterSet"/> parameter, or ASCII if the character set was <see langword="null"/> or empty</returns>
        private static Encoding ParseBodyEncoding(string characterSet)
        {
            // Default encoding in Mime messages is US-ASCII
            Encoding encoding = Encoding.ASCII;

            // If the character set was specified, find the encoding that the character
            // set describes, and use that one instead
            if (!string.IsNullOrEmpty(characterSet))
            {
                encoding = EncodingFinder.FindEncoding(characterSet);
            }

            return(encoding);
        }
Пример #3
0
        public void TestMap()
        {
            Encoding obscureEncoding = Encoding.UTF32;

            EncodingFinder.AddMapping("some_obscure_encoding", obscureEncoding);

            Assert.AreEqual(obscureEncoding, EncodingFinder.FindEncoding("some_obscure_encoding"));

            // Should work for uppercase as well
            Assert.AreEqual(obscureEncoding, EncodingFinder.FindEncoding("SOME_OBSCURE_ENCODING"));

            // Should work for mixed case as well
            Assert.AreEqual(obscureEncoding, EncodingFinder.FindEncoding("sOME_ObScUrE_enCOdiNg"));
        }
Пример #4
0
        public void TestFallbackDecoder()
        {
            bool wasCalled = false;

            EncodingFinder.FallbackDecoder = delegate(string characterSet)
            {
                Assert.AreEqual("unknown_special_encoding_yoyo", characterSet);
                wasCalled = true;
                return(Encoding.UTF8);
            };

            Assert.AreEqual(Encoding.UTF8, EncodingFinder.FindEncoding("unknown_special_encoding_yoyo"));
            Assert.IsTrue(wasCalled);
        }
Пример #5
0
        public void TestMapOther()
        {
            Encoding ascii = Encoding.ASCII;

            EncodingFinder.AddMapping("ASCII DASCii", ascii);

            Assert.AreEqual(ascii, EncodingFinder.FindEncoding("ASCII DASCii"));

            // Should work for uppercase as well
            Assert.AreEqual(ascii, EncodingFinder.FindEncoding("ascii DASCii"));

            // Should work for mixed case as well
            Assert.AreEqual(ascii, EncodingFinder.FindEncoding("AsciI dAsCii"));
        }
Пример #6
0
 public void TestBinary()
 {
     Assert.AreEqual(Encoding.ASCII, EncodingFinder.FindEncoding("binary"));
 }
Пример #7
0
 public void TestIso88599()
 {
     Assert.AreEqual(Encoding.GetEncoding("iso-8859-9"), EncodingFinder.FindEncoding("iso-8859-9"));
 }
Пример #8
0
 public void TestCodePage950Windows()
 {
     Assert.AreEqual(Encoding.GetEncoding(950), EncodingFinder.FindEncoding("windows-950"));
 }
Пример #9
0
 public void TestCodePage1255()
 {
     Assert.AreEqual(Encoding.GetEncoding(1255), EncodingFinder.FindEncoding("cp-1255"));
 }
Пример #10
0
 public void TestUtfHyphen8UpperCase()
 {
     Assert.AreEqual(Encoding.UTF8, EncodingFinder.FindEncoding("UTF-8"));
 }
Пример #11
0
 public void TestUtfHyphen8()
 {
     Assert.AreEqual(Encoding.UTF8, EncodingFinder.FindEncoding("utf-8"));
 }
Пример #12
0
 public void TestUnknownMappingThrowsException()
 {
     Assert.Throws <ArgumentException>(delegate { EncodingFinder.FindEncoding("unknown_special_encoding_yoyo"); });
 }
Пример #13
0
 public void TestIsoNoHyphen885915UpperCase()
 {
     Assert.AreEqual(Encoding.GetEncoding("iso-8859-15"), EncodingFinder.FindEncoding("ISO8859-15"));
 }