static void Check (ImageCodecInfo e, ImageCodecInfo d, Guid FormatID, string CodecName, string DllName,
			string FilenameExtension, ImageCodecFlags Flags, string FormatDescription,
			string MimeType, int Version, int signatureLength, string mask, string pattern, string pattern2)
		{
			Regex extRegex = new Regex (@"^(\*\.\w+(;(\*\.\w+))*;)?"+
				Regex.Escape (FilenameExtension)+@"(;\*\.\w+(;(\*\.\w+))*)?$",
				RegexOptions.IgnoreCase | RegexOptions.Singleline);

			if (e != null) {
				Assert.AreEqual (FormatID, e.FormatID, "Encoder.FormatID");
				Assert.IsTrue (e.CodecName.IndexOf (CodecName)>=0,
					"Encoder.CodecName contains "+CodecName);
				Assert.AreEqual (DllName, e.DllName, "Encoder.DllName");
				Assert.IsTrue (extRegex.IsMatch (e.FilenameExtension),
					"Encoder.FilenameExtension is a right list with "+FilenameExtension);
				Assert.AreEqual (Flags, e.Flags, "Encoder.Flags");
				Assert.IsTrue (e.FormatDescription.IndexOf (FormatDescription)>=0,
					"Encoder.FormatDescription contains "+FormatDescription);
				Assert.IsTrue (e.MimeType.IndexOf (MimeType)>=0,
					"Encoder.MimeType contains "+MimeType);

				Assert.AreEqual (signatureLength, e.SignatureMasks.Length, "Encoder.SignatureMasks.Length");
				for (int i = 0; i < signatureLength; i++) {
					Assert.AreEqual (mask, BitConverter.ToString (e.SignatureMasks[i]), String.Format ("Encoder.SignatureMasks[{0}]", i));
				}
				Assert.AreEqual (signatureLength, e.SignaturePatterns.Length, "Encoder.SignaturePatterns.Length");
				Assert.AreEqual (pattern, BitConverter.ToString (e.SignaturePatterns[0]), "Encoder.SignaturePatterns[0]");
				if (pattern2 != null)
					Assert.AreEqual (pattern2, BitConverter.ToString (e.SignaturePatterns[1]), "Encoder.SignaturePatterns[1]");
			}
			if (d != null) {
				Assert.AreEqual (FormatID, d.FormatID, "Decoder.FormatID");
				Assert.IsTrue (d.CodecName.IndexOf (CodecName)>=0,
					"Decoder.CodecName contains "+CodecName);
				Assert.AreEqual (DllName, d.DllName, "Decoder.DllName");
				Assert.IsTrue (extRegex.IsMatch (d.FilenameExtension),
					"Decoder.FilenameExtension is a right list with "+FilenameExtension);
				Assert.AreEqual (Flags, d.Flags, "Decoder.Flags");
				Assert.IsTrue (d.FormatDescription.IndexOf (FormatDescription)>=0,
					"Decoder.FormatDescription contains "+FormatDescription);
				Assert.IsTrue (d.MimeType.IndexOf (MimeType)>=0,
					"Decoder.MimeType contains "+MimeType);

				Assert.AreEqual (signatureLength, d.SignatureMasks.Length, "Decoder.SignatureMasks.Length");
				for (int i = 0; i < signatureLength; i++) {
					Assert.AreEqual (mask, BitConverter.ToString (d.SignatureMasks[i]), String.Format ("Decoder.SignatureMasks[{0}]", i));
				}
				Assert.AreEqual (signatureLength, d.SignaturePatterns.Length, "Decoder.SignaturePatterns.Length");
				Assert.AreEqual (pattern, BitConverter.ToString (d.SignaturePatterns[0]), "Decoder.SignaturePatterns[0]");
				if (pattern2 != null)
					Assert.AreEqual (pattern2, BitConverter.ToString (d.SignaturePatterns[1]), "Decoder.SignaturePatterns[1]");
			}
		}
        private void CheckDecoderAndEncoder(string clsid, ImageFormat format, string CodecName, string DllName,
                                            string FilenameExtension, ImageCodecFlags Flags, string FormatDescription,
                                            string MimeType, int Version, int signatureLength, string mask, string pattern, string pattern2)
        {
            ImageCodecInfo encoder = GetEncoder(clsid);
            ImageCodecInfo decoder = GetDecoder(clsid);

            if (encoder != null)
            {
                CheckImageCodecInfo(format, CodecName, DllName, FilenameExtension, Flags, FormatDescription, MimeType, signatureLength, mask, pattern, pattern2, encoder);
            }
            if (decoder != null)
            {
                CheckImageCodecInfo(format, CodecName, DllName, FilenameExtension, Flags, FormatDescription, MimeType, signatureLength, mask, pattern, pattern2, decoder);
            }
        }
Esempio n. 3
0
        static void Check(ImageCodecInfo e, ImageCodecInfo d, Guid FormatID, string CodecName, string DllName,
                          string FilenameExtension, ImageCodecFlags Flags, string FormatDescription,
                          string MimeType, int Version, int signatureLength, string mask, string pattern, string pattern2)
        {
            Regex extRegex = new Regex(@"^(\*\.\w+(;(\*\.\w+))*;)?" +
                                       Regex.Escape(FilenameExtension) + @"(;\*\.\w+(;(\*\.\w+))*)?$",
                                       RegexOptions.IgnoreCase | RegexOptions.Singleline);

            if (e != null)
            {
                Assert.AreEqual(FormatID, e.FormatID, "Encoder.FormatID");
                Assert.IsTrue(e.CodecName.IndexOf(CodecName) >= 0,
                              "Encoder.CodecName contains " + CodecName);
                Assert.AreEqual(DllName, e.DllName, "Encoder.DllName");
                Assert.IsTrue(extRegex.IsMatch(e.FilenameExtension),
                              "Encoder.FilenameExtension is a right list with " + FilenameExtension);
                Assert.AreEqual(Flags, e.Flags, "Encoder.Flags");
                Assert.IsTrue(e.FormatDescription.IndexOf(FormatDescription) >= 0,
                              "Encoder.FormatDescription contains " + FormatDescription);
                Assert.IsTrue(e.MimeType.IndexOf(MimeType) >= 0,
                              "Encoder.MimeType contains " + MimeType);

                Assert.AreEqual(signatureLength, e.SignatureMasks.Length, "Encoder.SignatureMasks.Length");
                for (int i = 0; i < signatureLength; i++)
                {
                    Assert.AreEqual(mask, BitConverter.ToString(e.SignatureMasks[i]), String.Format("Encoder.SignatureMasks[{0}]", i));
                }
                Assert.AreEqual(signatureLength, e.SignaturePatterns.Length, "Encoder.SignaturePatterns.Length");
                Assert.AreEqual(pattern, BitConverter.ToString(e.SignaturePatterns[0]), "Encoder.SignaturePatterns[0]");
                if (pattern2 != null)
                {
                    Assert.AreEqual(pattern2, BitConverter.ToString(e.SignaturePatterns[1]), "Encoder.SignaturePatterns[1]");
                }
            }
            if (d != null)
            {
                Assert.AreEqual(FormatID, d.FormatID, "Decoder.FormatID");
                Assert.IsTrue(d.CodecName.IndexOf(CodecName) >= 0,
                              "Decoder.CodecName contains " + CodecName);
                Assert.AreEqual(DllName, d.DllName, "Decoder.DllName");
                Assert.IsTrue(extRegex.IsMatch(d.FilenameExtension),
                              "Decoder.FilenameExtension is a right list with " + FilenameExtension);
                Assert.AreEqual(Flags, d.Flags, "Decoder.Flags");
                Assert.IsTrue(d.FormatDescription.IndexOf(FormatDescription) >= 0,
                              "Decoder.FormatDescription contains " + FormatDescription);
                Assert.IsTrue(d.MimeType.IndexOf(MimeType) >= 0,
                              "Decoder.MimeType contains " + MimeType);

                Assert.AreEqual(signatureLength, d.SignatureMasks.Length, "Decoder.SignatureMasks.Length");
                for (int i = 0; i < signatureLength; i++)
                {
                    Assert.AreEqual(mask, BitConverter.ToString(d.SignatureMasks[i]), String.Format("Decoder.SignatureMasks[{0}]", i));
                }
                Assert.AreEqual(signatureLength, d.SignaturePatterns.Length, "Decoder.SignaturePatterns.Length");
                Assert.AreEqual(pattern, BitConverter.ToString(d.SignaturePatterns[0]), "Decoder.SignaturePatterns[0]");
                if (pattern2 != null)
                {
                    Assert.AreEqual(pattern2, BitConverter.ToString(d.SignaturePatterns[1]), "Decoder.SignaturePatterns[1]");
                }
            }
        }
        private void CheckImageCodecInfo(ImageFormat format, string CodecName, string DllName, string FilenameExtension, ImageCodecFlags Flags, string FormatDescription, string MimeType, int signatureLength, string mask, string pattern, string pattern2, ImageCodecInfo codecInfo)
        {
            Regex extRegex = new Regex(@"^(\*\.\w+(;(\*\.\w+))*;)?" +
                                       Regex.Escape(FilenameExtension) + @"(;\*\.\w+(;(\*\.\w+))*)?$",
                                       RegexOptions.IgnoreCase | RegexOptions.Singleline);

            Assert.Equal(format.Guid, codecInfo.FormatID);
            Assert.Contains(CodecName, codecInfo.CodecName);
            Assert.Equal(DllName, codecInfo.DllName);
            Assert.Matches(extRegex, codecInfo.FilenameExtension);
            Assert.Equal(Flags, codecInfo.Flags);
            Assert.Contains(FormatDescription, codecInfo.FormatDescription);
            Assert.Contains(MimeType, codecInfo.MimeType);
            Assert.Equal(signatureLength, codecInfo.SignatureMasks.Length);

            for (int i = 0; i < signatureLength; i++)
            {
                Assert.Equal(mask, BitConverter.ToString(codecInfo.SignatureMasks[i]));
            }

            Assert.Equal(signatureLength, codecInfo.SignaturePatterns.Length);
            Assert.Equal(pattern, BitConverter.ToString(codecInfo.SignaturePatterns[0]));
            if (pattern2 != null)
            {
                Assert.Equal(pattern2, BitConverter.ToString(codecInfo.SignaturePatterns[1]));
            }
        }
 public void CheckDecoderAndEncoder_ReturnsExpecetd(string clsid, ImageFormat format, string codecName, string dllName,
                                                    string fileNameExtension, ImageCodecFlags flags, string formatDescription,
                                                    string mimeType, int version, int signatureLength, string mask, string pattern, string pattern2)
 {
     CheckDecoderAndEncoder(clsid, format, codecName, dllName, fileNameExtension, flags, formatDescription, mimeType, version, signatureLength, mask, pattern, pattern2);
 }