PropertyGridTest.cs 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. //
  2. // PropertyGridTest.cs: Test cases for PropertyGrid.
  3. //
  4. // Author:
  5. // Gert Driesen ([email protected])
  6. //
  7. // (C) 2006 Novell, Inc. (http://www.novell.com)
  8. //
  9. using System;
  10. using System.Windows.Forms;
  11. using NUnit.Framework;
  12. namespace MonoTests.System.Windows.Forms
  13. {
  14. [TestFixture]
  15. public class PropertyGridTest
  16. {
  17. [Test]
  18. public void SelectedObject ()
  19. {
  20. PropertyGrid pg = new PropertyGrid ();
  21. Button button1 = new Button ();
  22. Assert.IsNull (pg.SelectedObject, "#A1");
  23. Assert.IsNotNull (pg.SelectedObjects, "#A2");
  24. Assert.AreEqual (0, pg.SelectedObjects.Length, "#A3");
  25. pg.SelectedObject = button1;
  26. Assert.IsNotNull (pg.SelectedObject, "#B1");
  27. Assert.AreSame (button1, pg.SelectedObject, "#B2");
  28. Assert.IsNotNull (pg.SelectedObjects, "#B3");
  29. Assert.AreEqual (1, pg.SelectedObjects.Length, "#B4");
  30. Assert.AreSame (button1, pg.SelectedObjects [0], "#B5");
  31. Assert.IsNotNull (pg.SelectedGridItem, "#B6");
  32. }
  33. [Test]
  34. public void SelectedObject_Null ()
  35. {
  36. PropertyGrid pg = new PropertyGrid ();
  37. Assert.IsNull (pg.SelectedObject, "#A1");
  38. Assert.IsNotNull (pg.SelectedObjects, "#A2");
  39. Assert.AreEqual (0, pg.SelectedObjects.Length, "#A3");
  40. pg.SelectedObject = null;
  41. Assert.IsNull (pg.SelectedObject, "#B1");
  42. Assert.IsNotNull (pg.SelectedObjects, "#B2");
  43. Assert.AreEqual (0, pg.SelectedObjects.Length, "#B3");
  44. }
  45. [Test] // bug #79615
  46. public void SelectedObjects_Multiple ()
  47. {
  48. Button button1 = new Button ();
  49. Button button2 = new Button ();
  50. PropertyGrid pg = new PropertyGrid ();
  51. pg.SelectedObjects = new object [] { button1, button2 };
  52. Assert.IsNotNull (pg.SelectedObjects, "#1");
  53. Assert.AreEqual (2, pg.SelectedObjects.Length, "#2");
  54. Assert.AreSame (button1, pg.SelectedObjects [0], "#3");
  55. Assert.AreSame (button2, pg.SelectedObjects [1], "#4");
  56. Assert.IsNotNull (pg.SelectedObject, "#5");
  57. Assert.AreSame (button1, pg.SelectedObject, "#6");
  58. }
  59. [Test]
  60. public void SelectedObjects_Null ()
  61. {
  62. PropertyGrid pg = new PropertyGrid ();
  63. Button button1 = new Button ();
  64. pg.SelectedObjects = new object [] { button1 };
  65. Assert.IsNotNull (pg.SelectedObjects, "#A1");
  66. Assert.AreEqual (1, pg.SelectedObjects.Length, "#A2");
  67. Assert.AreSame (button1, pg.SelectedObjects [0], "#A3");
  68. Assert.AreSame (button1, pg.SelectedObject, "#A4");
  69. pg.SelectedObjects = null;
  70. Assert.IsNotNull (pg.SelectedObjects, "#B1");
  71. Assert.AreEqual (0, pg.SelectedObjects.Length, "#B2");
  72. Assert.IsNull (pg.SelectedObject, "#B3");
  73. }
  74. [Test]
  75. [ExpectedException (typeof (ArgumentException))]
  76. public void SelectedObjects_Null_Item ()
  77. {
  78. PropertyGrid pg = new PropertyGrid ();
  79. Button button1 = new Button ();
  80. pg.SelectedObjects = new object [] { button1, null };
  81. }
  82. [Test]
  83. [Category ("NotWorking")]
  84. public void PropertyGrid_MergedTest ()
  85. {
  86. PropertyGrid pg = new PropertyGrid ();
  87. pg.SelectedObjects = new object[] { new Button (), new Label () };
  88. Assert.IsNotNull (pg.SelectedGridItem, "1");
  89. Assert.AreEqual ("Accessibility", pg.SelectedGridItem.Label, "2");
  90. Assert.AreEqual (GridItemType.Category, pg.SelectedGridItem.GridItemType, "3");
  91. }
  92. [Test]
  93. [Category ("NotWorking")]
  94. public void PropertyGrid_MergedRootTest ()
  95. {
  96. object[] selected_objects = new object[] { new Button (), new Label () };
  97. PropertyGrid pg = new PropertyGrid ();
  98. pg.SelectedObjects = selected_objects;
  99. Assert.IsNotNull (pg.SelectedGridItem.Parent, "1");
  100. Assert.AreEqual ("System.Object[]", pg.SelectedGridItem.Parent.Label, "2");
  101. Assert.AreEqual (GridItemType.Root, pg.SelectedGridItem.Parent.GridItemType, "3");
  102. Assert.AreEqual (selected_objects, pg.SelectedGridItem.Parent.Value, "4");
  103. Assert.IsNull (pg.SelectedGridItem.Parent.Parent, "5");
  104. }
  105. class ArrayTest_object
  106. {
  107. int[] array;
  108. public ArrayTest_object ()
  109. {
  110. array = new int[10];
  111. for (int i = 0; i < array.Length; i ++)
  112. array[i] = array.Length - i;
  113. }
  114. public int[] Array {
  115. get { return array; }
  116. }
  117. }
  118. [Test]
  119. public void PropertyGrid_ArrayTest ()
  120. {
  121. PropertyGrid pg = new PropertyGrid ();
  122. pg.SelectedObject = new ArrayTest_object ();
  123. // selected object
  124. Assert.AreEqual ("Array", pg.SelectedGridItem.Label, "1");
  125. Assert.IsTrue (pg.SelectedGridItem.Value is Array, "2");
  126. Assert.AreEqual (10, pg.SelectedGridItem.GridItems.Count, "3");
  127. Assert.AreEqual (GridItemType.Property, pg.SelectedGridItem.GridItemType, "4");
  128. }
  129. [Test]
  130. public void PropertyGrid_ArrayParentTest ()
  131. {
  132. PropertyGrid pg = new PropertyGrid ();
  133. pg.SelectedObject = new ArrayTest_object ();
  134. // parent
  135. Assert.IsNotNull (pg.SelectedGridItem.Parent, "1");
  136. Assert.AreEqual ("Misc", pg.SelectedGridItem.Parent.Label, "2");
  137. Assert.AreEqual (GridItemType.Category, pg.SelectedGridItem.Parent.GridItemType, "3");
  138. Assert.AreEqual (1, pg.SelectedGridItem.Parent.GridItems.Count, "4");
  139. }
  140. [Test]
  141. public void PropertyGrid_ArrayRootTest ()
  142. {
  143. ArrayTest_object obj = new ArrayTest_object ();
  144. PropertyGrid pg = new PropertyGrid ();
  145. pg.SelectedObject = obj;
  146. // grandparent
  147. Assert.IsNotNull (pg.SelectedGridItem.Parent.Parent, "1");
  148. Assert.AreEqual (typeof(ArrayTest_object).ToString(), pg.SelectedGridItem.Parent.Parent.Label, "2");
  149. Assert.AreEqual (GridItemType.Root, pg.SelectedGridItem.Parent.Parent.GridItemType, "3");
  150. Assert.AreEqual (1, pg.SelectedGridItem.Parent.Parent.GridItems.Count, "4");
  151. Assert.AreEqual (obj, pg.SelectedGridItem.Parent.Parent.Value, "5");
  152. Assert.IsNull (pg.SelectedGridItem.Parent.Parent.Parent, "6");
  153. }
  154. [Test]
  155. public void PropertyGrid_ArrayChildrenTest ()
  156. {
  157. PropertyGrid pg = new PropertyGrid ();
  158. pg.SelectedObject = new ArrayTest_object ();
  159. // children
  160. Assert.AreEqual ("[0]", pg.SelectedGridItem.GridItems[0].Label, "1");
  161. Assert.AreEqual (GridItemType.Property, pg.SelectedGridItem.GridItems[0].GridItemType, "2");
  162. Assert.AreEqual (10, pg.SelectedGridItem.GridItems[0].Value, "3");
  163. Assert.AreEqual (0, pg.SelectedGridItem.GridItems[0].GridItems.Count, "4");
  164. }
  165. [Test]
  166. public void PropertyGrid_ItemSelectTest ()
  167. {
  168. PropertyGrid pg = new PropertyGrid ();
  169. pg.SelectedObject = new ArrayTest_object ();
  170. // the selected grid item is the "Array" property item.
  171. GridItem array_item = pg.SelectedGridItem;
  172. GridItem misc_item = array_item.Parent;
  173. GridItem root_item = misc_item.Parent;
  174. Assert.AreEqual (array_item, pg.SelectedGridItem, "1");
  175. Assert.IsTrue (misc_item.Select (), "2");
  176. Assert.AreEqual (misc_item, pg.SelectedGridItem, "3");
  177. Assert.IsTrue (array_item.Select (), "4");
  178. Assert.AreEqual (array_item, pg.SelectedGridItem, "5");
  179. Assert.IsFalse (root_item.Select (), "6");
  180. Assert.AreEqual (array_item, pg.SelectedGridItem, "7");
  181. }
  182. }
  183. }