2 using System.Collections;
3 using System.ComponentModel;
4 using System.ComponentModel.Design.Serialization;
6 using System.Globalization;
7 using System.Security.Permissions;
11 namespace MonoTests.System.Drawing {
14 [SecurityPermission (SecurityAction.Deny, UnmanagedCode = true)]
15 public class ColorConverterFixture
19 ColorConverter colconv;
21 String colStrInvariant;
25 public void SetUp () {
26 col = Color.FromArgb (10, 20, 30);
27 colStr = string.Format ("10{0} 20{0} 30", CultureInfo.CurrentCulture.TextInfo.ListSeparator);
28 colStrInvariant = string.Format ("10{0} 20{0} 30", CultureInfo.InvariantCulture.TextInfo.ListSeparator);
30 colnamed = Color.ForestGreen;
31 colnamedStr = "ForestGreen";
33 colconv = (ColorConverter) TypeDescriptor.GetConverter (col);
37 public void CanConvertFrom () {
38 Assert.IsTrue (colconv.CanConvertFrom (typeof (String)), "CCF#1");
39 Assert.IsTrue (colconv.CanConvertFrom (null, typeof (String)), "CCF#1a");
40 Assert.IsFalse (colconv.CanConvertFrom (null, typeof (Rectangle)), "CCF#2");
41 Assert.IsFalse (colconv.CanConvertFrom (null, typeof (RectangleF)), "CCF#3");
42 Assert.IsFalse (colconv.CanConvertFrom (null, typeof (Point)), "CCF#4");
43 Assert.IsFalse (colconv.CanConvertFrom (null, typeof (PointF)), "CCF#5");
44 Assert.IsFalse (colconv.CanConvertFrom (null, typeof (Color)), "CCF#6");
45 Assert.IsFalse (colconv.CanConvertFrom (null, typeof (SizeF)), "CCF#7");
46 Assert.IsFalse (colconv.CanConvertFrom (null, typeof (Object)), "CCF#8");
47 Assert.IsFalse ( colconv.CanConvertFrom (null, typeof (int)), "CCF#9");
48 Assert.IsTrue (colconv.CanConvertFrom (null, typeof (InstanceDescriptor)), "CCF#10");
52 public void CanConvertTo () {
53 Assert.IsTrue (colconv.CanConvertTo (typeof (String)), "CCT#1");
54 Assert.IsTrue (colconv.CanConvertTo (null, typeof (String)), "CCT#1a");
55 Assert.IsFalse (colconv.CanConvertTo (null, typeof (Rectangle)), "CCT#2");
56 Assert.IsFalse (colconv.CanConvertTo (null, typeof (RectangleF)), "CCT#3");
57 Assert.IsFalse (colconv.CanConvertTo (null, typeof (Point)), "CCT#4");
58 Assert.IsFalse (colconv.CanConvertTo (null, typeof (PointF)), "CCT#5");
59 Assert.IsFalse (colconv.CanConvertTo (null, typeof (Color)), "CCT#6");
60 Assert.IsFalse (colconv.CanConvertTo (null, typeof (SizeF)), "CCT#7");
61 Assert.IsFalse (colconv.CanConvertTo (null, typeof (Object)), "CCT#8");
62 Assert.IsFalse (colconv.CanConvertTo (null, typeof (int)), "CCT#9");
63 Assert.IsTrue (colconv.CanConvertTo (typeof (InstanceDescriptor)), "CCT#10");
67 public void ConvertFrom ()
69 Color color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
71 Assert.AreEqual (35, color.A, "CF1#1");
72 Assert.AreEqual (25, color.R, "CF1#2");
73 Assert.AreEqual (10, color.G, "CF1#3");
74 Assert.AreEqual (68, color.B, "CF1#4");
76 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
78 Assert.AreEqual (0, color.A, "CF2#1");
79 Assert.AreEqual (25, color.R, "CF2#2");
80 Assert.AreEqual (10, color.G, "CF2#3");
81 Assert.AreEqual (68, color.B, "CF2#4");
83 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
85 Assert.AreEqual (255, color.A, "CF3#1");
86 Assert.AreEqual (25, color.R, "CF3#2");
87 Assert.AreEqual (10, color.G, "CF3#3");
88 Assert.AreEqual (68, color.B, "CF3#4");
90 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
92 Assert.AreEqual (255, color.A, "CF4#1");
93 Assert.AreEqual (25, color.R, "CF4#2");
94 Assert.AreEqual (10, color.G, "CF4#3");
95 Assert.AreEqual (68, color.B, "CF4#4");
97 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
99 Assert.AreEqual (0, color.A, "CF5#1");
100 Assert.AreEqual (1, color.R, "CF5#2");
101 Assert.AreEqual (178, color.G, "CF5#3");
102 Assert.AreEqual (7, color.B, "CF5#4");
104 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
106 Assert.AreEqual (0, color.A, "CF6#1");
107 Assert.AreEqual (0, color.R, "CF6#2");
108 Assert.AreEqual (0, color.G, "CF6#3");
109 Assert.AreEqual (10, color.B, "CF6#4");
111 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
113 Assert.AreEqual (0, color.A, "CF7#1");
114 Assert.AreEqual (0, color.R, "CF7#2");
115 Assert.AreEqual (0, color.G, "CF7#3");
116 Assert.AreEqual (0, color.B, "CF7#4");
118 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
120 Assert.AreEqual (255, color.A, "CF8#1");
121 Assert.AreEqual (17, color.R, "CF8#2");
122 Assert.AreEqual (34, color.G, "CF8#3");
123 Assert.AreEqual (51, color.B, "CF8#4");
125 color = (Color) colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
127 Assert.AreEqual (255, color.A, "CF9#1");
128 Assert.AreEqual (17, color.R, "CF9#2");
129 Assert.AreEqual (34, color.G, "CF9#3");
130 Assert.AreEqual (51, color.B, "CF9#4");
132 Assert.AreEqual (col, (Color) colconv.ConvertFrom (null,
133 CultureInfo.InvariantCulture, colStrInvariant), "CF#1");
134 Assert.AreEqual (colnamed, (Color) colconv.ConvertFrom (null,
135 CultureInfo.InvariantCulture, colnamedStr), "CF#2");
137 Assert.AreEqual (Color.Empty, colconv.ConvertFrom (string.Empty), "CF#3");
138 Assert.AreEqual (Color.Empty, colconv.ConvertFrom (" "), "CF#4");
139 Assert.AreEqual (Color.Red, colconv.ConvertFrom ("Red"), "CF#5");
140 Assert.AreEqual (Color.Red, colconv.ConvertFrom (" Red "), "CF#6");
145 [ExpectedException (typeof (ArgumentException))]
146 public void ConvertFrom_x1 ()
148 colconv.ConvertFrom (null, CultureInfo.InvariantCulture, "10, 20");
152 [ExpectedException (typeof (ArgumentException))]
153 public void ConvertFrom_x2 ()
155 colconv.ConvertFrom (null, CultureInfo.InvariantCulture, "-10, 20, 30");
159 [ExpectedException (typeof (ArgumentException))]
160 public void ConvertFrom_x3 ()
162 colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
167 [ExpectedException (typeof (Exception))]
168 public void ConvertFrom_x4 ()
170 colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
175 [ExpectedException (typeof (NotSupportedException))]
176 public void ConvertFrom_x5 ()
178 colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
183 [ExpectedException (typeof (NotSupportedException))]
184 public void ConvertFrom_x6 ()
186 colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
187 new PointF (10, 10));
191 [ExpectedException (typeof (NotSupportedException))]
192 public void ConvertFrom_x7 ()
194 colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
199 [ExpectedException (typeof (NotSupportedException))]
200 public void ConvertFrom_x8 ()
202 colconv.ConvertFrom (null, CultureInfo.InvariantCulture,
207 [ExpectedException (typeof (NotSupportedException))]
208 public void ConvertFrom_x9 ()
210 colconv.ConvertFrom (null, CultureInfo.InvariantCulture, 0x10);
214 public void ConvertTo ()
216 Assert.AreEqual (colStrInvariant, colconv.ConvertTo (null, CultureInfo.InvariantCulture,
217 Color.FromArgb (10, 20, 30), typeof (String)), "CT#1");
218 Assert.AreEqual (colStrInvariant, colconv.ConvertTo (null, CultureInfo.InvariantCulture,
219 Color.FromArgb (255, 10, 20, 30), typeof (String)), "CT#2");
220 Assert.AreEqual ("10, 20, 30, 40", colconv.ConvertTo (null, CultureInfo.InvariantCulture,
221 Color.FromArgb (10, 20, 30, 40), typeof (String)), "CT#3");
222 Assert.AreEqual (colnamedStr, colconv.ConvertTo (null, CultureInfo.InvariantCulture,
223 colnamed, typeof (String)), "CT#4");
225 Assert.AreEqual (string.Empty, colconv.ConvertTo (Color.Empty, typeof (string)), "CT#5");
226 Assert.AreEqual ("Red", colconv.ConvertTo (Color.Red, typeof (string)), "CT#6");
227 Assert.AreEqual (string.Empty, colconv.ConvertTo (null, typeof (string)), "CT#7");
228 Assert.AreEqual ("test", colconv.ConvertTo ("test", typeof (string)), "CT#8");
232 [ExpectedException (typeof (NotSupportedException))]
233 public void ConvertTo_x1 ()
235 colconv.ConvertTo (null, CultureInfo.InvariantCulture, col,
240 [ExpectedException (typeof (NotSupportedException))]
241 public void ConvertTo_x2 ()
243 colconv.ConvertTo (null, CultureInfo.InvariantCulture, col,
248 [ExpectedException (typeof (NotSupportedException))]
249 public void ConvertTo_x3 ()
251 colconv.ConvertTo (null, CultureInfo.InvariantCulture, col,
256 [ExpectedException (typeof (NotSupportedException))]
257 public void ConvertTo_x4 ()
259 colconv.ConvertTo (null, CultureInfo.InvariantCulture, col,
264 [ExpectedException (typeof (NotSupportedException))]
265 public void ConvertTo_x5 ()
267 colconv.ConvertTo (null, CultureInfo.InvariantCulture, col,
272 public void GetCreateInstanceSupported ()
274 Assert.IsTrue (!colconv.GetCreateInstanceSupported (), "GCIS#1");
275 Assert.IsTrue (!colconv.GetCreateInstanceSupported (null), "GCIS#2");
279 public void CreateInstance ()
281 Hashtable ht = new Hashtable ();
282 ht.Add ("R", 10); ht.Add ("G", 20); ht.Add ("B", 30);
284 Assert.AreEqual (null, colconv.CreateInstance (ht), "CI#1");
286 ht.Add ("Name", "ForestGreen");
288 Assert.AreEqual (null, colconv.CreateInstance (null, ht), "CI#2");
292 public void GetPropertiesSupported ()
294 Assert.IsTrue (!colconv.GetPropertiesSupported (), "GPS#1");
295 Assert.IsTrue (!colconv.GetPropertiesSupported (null), "GPS#2");
299 public void GetProperties ()
303 Assert.AreEqual (null, colconv.GetProperties (col), "GP1#1");
305 Assert.AreEqual (null, colconv.GetProperties (null, col, null), "GP2#1");
307 attrs = Attribute.GetCustomAttributes (typeof (Color), true);
308 Assert.AreEqual (null, colconv.GetProperties (null, col, attrs), "GP3#5");
312 public void ConvertFromInvariantString_string ()
314 Assert.AreEqual (col, colconv.ConvertFromInvariantString (colStrInvariant), "CFISS#1");
315 Assert.AreEqual (colnamed, colconv.ConvertFromInvariantString (colnamedStr), "CFISS#2");
319 [ExpectedException (typeof (ArgumentException))]
320 public void ConvertFromInvariantString_InvalidComponentCount ()
322 colconv.ConvertFromInvariantString ("1, 2, 3, 4, 5");
326 public void ConvertFromInvariantString_InvalidNumber ()
329 colconv.ConvertFromInvariantString ("hello");
331 } catch (Exception ex) {
332 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
333 Assert.IsNotNull (ex.InnerException, "#3");
334 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
339 public void ConvertFromString_string ()
341 Assert.AreEqual (col, colconv.ConvertFromString (colStr), "CFSS#1");
342 Assert.AreEqual (colnamed, colconv.ConvertFromString (colnamedStr), "CFSS#2");
346 [ExpectedException (typeof (ArgumentException))]
347 public void ConvertFromString_InvalidComponentCount ()
349 CultureInfo culture = CultureInfo.CurrentCulture;
350 colconv.ConvertFromString (string.Format (culture,
351 "1{0} 2{0} 3{0} 4{0} 5", culture.TextInfo.ListSeparator[0]));
355 public void ConvertFromString_InvalidNumber ()
358 colconv.ConvertFromString ("hello");
360 } catch (Exception ex) {
361 Assert.AreEqual (typeof (Exception), ex.GetType (), "#2");
362 Assert.IsNotNull (ex.InnerException, "#3");
363 Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#3");
368 public void ConvertToInvariantString_string () {
369 Assert.AreEqual (colStrInvariant, colconv.ConvertToInvariantString (col), "CFISS#1");
370 Assert.AreEqual (colnamedStr, colconv.ConvertToInvariantString (colnamed), "CFISS#2");
374 public void ConvertToString_string () {
375 Assert.AreEqual (colStr, colconv.ConvertToString (col), "CFISS#1");
376 Assert.AreEqual (colnamedStr, colconv.ConvertToString (colnamed), "CFISS#3");
380 public void GetStandardValuesSupported () {
381 Assert.IsTrue (colconv.GetStandardValuesSupported ());
385 public void GetStandardValues () {
386 Assert.AreEqual (167, colconv.GetStandardValues ().Count);
387 Assert.AreEqual (167, colconv.GetStandardValues (null).Count);
391 public void GetStandardValuesExclusive () {
392 Assert.AreEqual (false, colconv.GetStandardValuesExclusive ());