2 // PropertyGridTest.cs: Test cases for PropertyGrid.
5 // Gert Driesen (drieseng@users.sourceforge.net)
7 // (C) 2006 Novell, Inc. (http://www.novell.com)
11 using System.Windows.Forms;
13 using NUnit.Framework;
15 namespace MonoTests.System.Windows.Forms
18 public class PropertyGridTest
21 public void SelectedObject ()
23 PropertyGrid pg = new PropertyGrid ();
24 Button button1 = new Button ();
25 Assert.IsNull (pg.SelectedObject, "#A1");
26 Assert.IsNotNull (pg.SelectedObjects, "#A2");
27 Assert.AreEqual (0, pg.SelectedObjects.Length, "#A3");
28 pg.SelectedObject = button1;
29 Assert.IsNotNull (pg.SelectedObject, "#B1");
30 Assert.AreSame (button1, pg.SelectedObject, "#B2");
31 Assert.IsNotNull (pg.SelectedObjects, "#B3");
32 Assert.AreEqual (1, pg.SelectedObjects.Length, "#B4");
33 Assert.AreSame (button1, pg.SelectedObjects [0], "#B5");
34 Assert.IsNotNull (pg.SelectedGridItem, "#B6");
38 public void SelectedObject_Null ()
40 PropertyGrid pg = new PropertyGrid ();
41 Assert.IsNull (pg.SelectedObject, "#A1");
42 Assert.IsNotNull (pg.SelectedObjects, "#A2");
43 Assert.AreEqual (0, pg.SelectedObjects.Length, "#A3");
44 pg.SelectedObject = null;
45 Assert.IsNull (pg.SelectedObject, "#B1");
46 Assert.IsNotNull (pg.SelectedObjects, "#B2");
47 Assert.AreEqual (0, pg.SelectedObjects.Length, "#B3");
51 public void SelectedObjects_Multiple ()
53 Button button1 = new Button ();
54 Button button2 = new Button ();
56 PropertyGrid pg = new PropertyGrid ();
57 pg.SelectedObjects = new object [] { button1, button2 };
58 Assert.IsNotNull (pg.SelectedObjects, "#1");
59 Assert.AreEqual (2, pg.SelectedObjects.Length, "#2");
60 Assert.AreSame (button1, pg.SelectedObjects [0], "#3");
61 Assert.AreSame (button2, pg.SelectedObjects [1], "#4");
62 Assert.IsNotNull (pg.SelectedObject, "#5");
63 Assert.AreSame (button1, pg.SelectedObject, "#6");
67 public void SelectedObjects_Null ()
69 PropertyGrid pg = new PropertyGrid ();
70 Button button1 = new Button ();
71 pg.SelectedObjects = new object [] { button1 };
72 Assert.IsNotNull (pg.SelectedObjects, "#A1");
73 Assert.AreEqual (1, pg.SelectedObjects.Length, "#A2");
74 Assert.AreSame (button1, pg.SelectedObjects [0], "#A3");
75 Assert.AreSame (button1, pg.SelectedObject, "#A4");
76 pg.SelectedObjects = null;
77 Assert.IsNotNull (pg.SelectedObjects, "#B1");
78 Assert.AreEqual (0, pg.SelectedObjects.Length, "#B2");
79 Assert.IsNull (pg.SelectedObject, "#B3");
83 [ExpectedException (typeof (ArgumentException))]
84 public void SelectedObjects_Null_Item ()
86 PropertyGrid pg = new PropertyGrid ();
87 Button button1 = new Button ();
88 pg.SelectedObjects = new object [] { button1, null };
92 [Category ("NotWorking")]
93 public void PropertyGrid_MergedTest ()
95 PropertyGrid pg = new PropertyGrid ();
96 pg.SelectedObjects = new object[] { new Button (), new Label () };
98 Assert.IsNotNull (pg.SelectedGridItem, "1");
99 Assert.AreEqual ("Accessibility", pg.SelectedGridItem.Label, "2");
100 Assert.AreEqual (GridItemType.Category, pg.SelectedGridItem.GridItemType, "3");
104 [Category ("NotWorking")]
105 public void PropertyGrid_MergedRootTest ()
107 object[] selected_objects = new object[] { new Button (), new Label () };
108 PropertyGrid pg = new PropertyGrid ();
110 pg.SelectedObjects = selected_objects;
112 Assert.IsNotNull (pg.SelectedGridItem.Parent, "1");
113 Assert.AreEqual ("System.Object[]", pg.SelectedGridItem.Parent.Label, "2");
114 Assert.AreEqual (GridItemType.Root, pg.SelectedGridItem.Parent.GridItemType, "3");
116 Assert.AreEqual (selected_objects, pg.SelectedGridItem.Parent.Value, "4");
118 Assert.IsNull (pg.SelectedGridItem.Parent.Parent, "5");
121 class ArrayTest_object
124 public ArrayTest_object ()
127 for (int i = 0; i < array.Length; i ++)
128 array[i] = array.Length - i;
131 get { return array; }
136 public void PropertyGrid_ArrayTest ()
138 PropertyGrid pg = new PropertyGrid ();
140 pg.SelectedObject = new ArrayTest_object ();
143 Assert.AreEqual ("Array", pg.SelectedGridItem.Label, "1");
144 Assert.IsTrue (pg.SelectedGridItem.Value is Array, "2");
145 Assert.AreEqual (10, pg.SelectedGridItem.GridItems.Count, "3");
146 Assert.AreEqual (GridItemType.Property, pg.SelectedGridItem.GridItemType, "4");
150 public void PropertyGrid_ArrayParentTest ()
152 PropertyGrid pg = new PropertyGrid ();
154 pg.SelectedObject = new ArrayTest_object ();
157 Assert.IsNotNull (pg.SelectedGridItem.Parent, "1");
158 Assert.AreEqual ("Misc", pg.SelectedGridItem.Parent.Label, "2");
159 Assert.AreEqual (GridItemType.Category, pg.SelectedGridItem.Parent.GridItemType, "3");
160 Assert.AreEqual (1, pg.SelectedGridItem.Parent.GridItems.Count, "4");
164 public void PropertyGrid_ArrayRootTest ()
166 ArrayTest_object obj = new ArrayTest_object ();
167 PropertyGrid pg = new PropertyGrid ();
169 pg.SelectedObject = obj;
172 Assert.IsNotNull (pg.SelectedGridItem.Parent.Parent, "1");
173 Assert.AreEqual (typeof(ArrayTest_object).ToString(), pg.SelectedGridItem.Parent.Parent.Label, "2");
174 Assert.AreEqual (GridItemType.Root, pg.SelectedGridItem.Parent.Parent.GridItemType, "3");
175 Assert.AreEqual (1, pg.SelectedGridItem.Parent.Parent.GridItems.Count, "4");
176 Assert.AreEqual (obj, pg.SelectedGridItem.Parent.Parent.Value, "5");
178 Assert.IsNull (pg.SelectedGridItem.Parent.Parent.Parent, "6");
182 public void PropertyGrid_ArrayChildrenTest ()
184 PropertyGrid pg = new PropertyGrid ();
186 pg.SelectedObject = new ArrayTest_object ();
189 Assert.AreEqual ("[0]", pg.SelectedGridItem.GridItems[0].Label, "1");
190 Assert.AreEqual (GridItemType.Property, pg.SelectedGridItem.GridItems[0].GridItemType, "2");
191 Assert.AreEqual (10, pg.SelectedGridItem.GridItems[0].Value, "3");
192 Assert.AreEqual (0, pg.SelectedGridItem.GridItems[0].GridItems.Count, "4");
196 public void PropertyGrid_ItemSelectTest ()
198 PropertyGrid pg = new PropertyGrid ();
200 pg.SelectedObject = new ArrayTest_object ();
202 // the selected grid item is the "Array" property item.
203 GridItem array_item = pg.SelectedGridItem;
204 GridItem misc_item = array_item.Parent;
205 GridItem root_item = misc_item.Parent;
207 Assert.AreEqual (array_item, pg.SelectedGridItem, "1");
209 Assert.IsTrue (misc_item.Select (), "2");
210 Assert.AreEqual (misc_item, pg.SelectedGridItem, "3");
212 Assert.IsTrue (array_item.Select (), "4");
213 Assert.AreEqual (array_item, pg.SelectedGridItem, "5");
215 Assert.IsFalse (root_item.Select (), "6");
216 Assert.AreEqual (array_item, pg.SelectedGridItem, "7");