X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Drawing%2FTest%2FSystem.Drawing.Imaging%2FTestImageCodecInfo.cs;h=9bcf3d5e1c3a3616edb031bcab95716aa835f4d5;hb=d49951ccf584ba637afb1dab7fff714478e3174d;hp=8fb7e582bfdb3c46155c6a78382186f2a3da72a0;hpb=08c8eaa6cd668fb552117ead1d3c6b5577deea24;p=mono.git diff --git a/mcs/class/System.Drawing/Test/System.Drawing.Imaging/TestImageCodecInfo.cs b/mcs/class/System.Drawing/Test/System.Drawing.Imaging/TestImageCodecInfo.cs index 8fb7e582bfd..9bcf3d5e1c3 100644 --- a/mcs/class/System.Drawing/Test/System.Drawing.Imaging/TestImageCodecInfo.cs +++ b/mcs/class/System.Drawing/Test/System.Drawing.Imaging/TestImageCodecInfo.cs @@ -2,14 +2,10 @@ // ImageCodecInfo class testing unit // // Author: -// -// Jordi Mas i Hernàndez (jordi@ximian.com) +// Jordi Mas i Hernàndez (jordi@ximian.com) // // (C) 2004 Ximian, Inc. http://www.ximian.com -// - -// -// Copyright (C) 2004 Novell, Inc (http://www.novell.com) +// Copyright (C) 2004-2006 Novell, Inc (http://www.novell.com) // // Permission is hereby granted, free of charge, to any person obtaining // a copy of this software and associated documentation files (the @@ -30,18 +26,21 @@ // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // + using System; using System.Drawing; using System.Drawing.Imaging; using NUnit.Framework; using System.Collections; +using System.Security.Permissions; +using System.Text.RegularExpressions; + +namespace MonoTests.System.Drawing.Imaging { -namespace MonoTests.System.Drawing -{ + [TestFixture] + [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)] + public class ImageCodecInfoTest { - [TestFixture] - public class TestImageCodecInfo - { Hashtable decoders; Hashtable encoders; @@ -57,35 +56,52 @@ namespace MonoTests.System.Drawing [TestFixtureSetUp] public void FixtureGetReady() { + ImageCodecInfo [] arrEnc = ImageCodecInfo.GetImageDecoders (); + ImageCodecInfo [] arrDec = ImageCodecInfo.GetImageEncoders (); decoders = new Hashtable (); encoders = new Hashtable (); - foreach (ImageCodecInfo decoder in ImageCodecInfo.GetImageDecoders()) + foreach (ImageCodecInfo decoder in arrDec) decoders[decoder.Clsid] = decoder; - foreach (ImageCodecInfo encoder in ImageCodecInfo.GetImageEncoders()) + foreach (ImageCodecInfo encoder in arrEnc) encoders[encoder.Clsid] = encoder; } static void Check (ImageCodecInfo e, ImageCodecInfo d, Guid FormatID, string CodecName, string DllName, string FilenameExtension, ImageCodecFlags Flags, string FormatDescription, - string MimeType/*, byte [][] SignatureMasks*/) + string MimeType, int Version) { - Assert.AreEqual (FormatID, e.FormatID, "Encoder.FormatID"); - Assert.AreEqual (CodecName, e.CodecName, "Encoder.CodecName"); - Assert.AreEqual (DllName, e.DllName, "Encoder.DllName"); - Assert.AreEqual (FilenameExtension, e.FilenameExtension, "Encoder.FilenameExtension"); - Assert.AreEqual (Flags, e.Flags, "Encoder.Flags"); - Assert.AreEqual (FormatDescription, e.FormatDescription, "Encoder.FormatDescription"); - Assert.AreEqual (MimeType, e.MimeType, "Encoder.MimeType"); + Regex extRegex = new Regex (@"^(\*\.\w+(;(\*\.\w+))*;)?"+ + Regex.Escape (FilenameExtension)+@"(;\*\.\w+(;(\*\.\w+))*)?$", + RegexOptions.IgnoreCase | RegexOptions.Singleline); - Assert.AreEqual (FormatID, d.FormatID, "Decoder.FormatID"); - Assert.AreEqual (CodecName, d.CodecName, "Decoder.CodecName"); - Assert.AreEqual (DllName, d.DllName, "Decoder.DllName"); - Assert.AreEqual (FilenameExtension, d.FilenameExtension, "Decoder.FilenameExtension"); - Assert.AreEqual (Flags, d.Flags, "Decoder.Flags"); - Assert.AreEqual (FormatDescription, d.FormatDescription, "Decoder.FormatDescription"); - Assert.AreEqual (MimeType, d.MimeType, "Decoder.MimeType"); + 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); + } + 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); + } /* if (SignatureMasks == null) { Assert.AreEqual (null, e.SignatureMasks, "Encoder.SignatureMasks"); @@ -108,46 +124,68 @@ namespace MonoTests.System.Drawing } } */ + } [Test] +#if TARGET_JVM + [Category ("NotWorking")] +#endif public void BMPCodec() { Guid g = new Guid ("557cf400-1a04-11d3-9a73-0000f81ef32e"); Check (GetEncoder (g), GetDecoder (g), ImageFormat.Bmp.Guid, - "Built-in BMP Codec", null, "*.BMP;*.DIB;*.RLE", + "BMP", null, "*.BMP", ImageCodecFlags.Builtin|ImageCodecFlags.Encoder|ImageCodecFlags.Decoder|ImageCodecFlags.SupportBitmap, - "BMP", "image/bmp"); + "BMP", "image/bmp", 1); } [Test] +#if TARGET_JVM + [Category ("NotWorking")] +#endif public void GifCodec() { Guid g = new Guid ("557cf402-1a04-11d3-9a73-0000f81ef32e"); Check (GetEncoder (g), GetDecoder (g), ImageFormat.Gif.Guid, - "Built-in GIF Codec", null, "*.GIF", + "GIF", null, "*.GIF", ImageCodecFlags.Builtin|ImageCodecFlags.Encoder|ImageCodecFlags.Decoder|ImageCodecFlags.SupportBitmap, - "GIF", "image/gif"); + "GIF", "image/gif", 1); } [Test] +#if TARGET_JVM + [Category ("NotWorking")] +#endif public void JpegCodec() { Guid g = new Guid ("557cf401-1a04-11d3-9a73-0000f81ef32e"); Check (GetEncoder (g), GetDecoder (g), ImageFormat.Jpeg.Guid, - "Built-in JPEG Codec", null, "*.JPG;*.JPEG;*.JPE;*.JFIF", + "JPEG", null, "*.JPG", ImageCodecFlags.Builtin|ImageCodecFlags.Encoder|ImageCodecFlags.Decoder|ImageCodecFlags.SupportBitmap, - "JPEG", "image/jpeg"); + "JPEG", "image/jpeg", 1); } [Test] +#if TARGET_JVM + [Category ("NotWorking")] +#endif public void PngCodec() { Guid g = new Guid ("557cf406-1a04-11d3-9a73-0000f81ef32e"); Check (GetEncoder (g), GetDecoder (g), ImageFormat.Png.Guid, - "Built-in PNG Codec", null, "*.PNG", + "PNG", null, "*.PNG", ImageCodecFlags.Builtin|ImageCodecFlags.Encoder|ImageCodecFlags.Decoder|ImageCodecFlags.SupportBitmap, - "PNG", "image/png"); + "PNG", "image/png", 1); } + [Test] + public void IconCodec() { + Guid g = new Guid ("557cf407-1a04-11d3-9a73-0000f81ef32e"); + Check (null, GetDecoder (g), ImageFormat.Bmp.Guid, + "ICO", null, "*.ICO", + ImageCodecFlags.Builtin|ImageCodecFlags.Encoder|ImageCodecFlags.SupportBitmap, + "ICO", "image/x-icon", 1); + } + } }