2b83bbfa3039ccfc771cedab32cbb14289dee94c
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / TreeViewTest.cs
1 using System;
2 using System.Collections;
3 using System.Drawing;
4 using System.Windows.Forms;
5
6 using NUnit.Framework;
7
8 namespace MonoTests.System.Windows.Forms
9 {
10         [TestFixture]
11         public class TreeViewTest
12         {
13                 [Test]
14                 public void DefaultCtor ()
15                 {
16                         TreeView tv = new TreeView ();
17                         Assert.AreEqual (121, tv.Width, "#1");
18                         Assert.AreEqual (97, tv.Height, "#2");
19
20                         Assert.IsTrue (tv.Scrollable, "#3");
21                         Assert.AreEqual (tv.SelectedNode, null, "#4");
22                 }
23
24                 [Test]
25                 public void SimpleShowTest ()
26                 {
27                         Form f = new Form ();
28                         f.ShowInTaskbar = false;
29                         TreeView tv = new TreeView ();
30                         //tv.BorderStyle = BorderStyle.FixedSingle;
31                         tv.Location = new Point (20, 20);
32                         //tv.Text = "adssssss";
33
34                         f.Controls.Add (tv);
35                         f.Show ();
36                         f.Dispose ();
37                 }
38
39                 [Test]
40                 public void NodesCopyToTest ()
41                 {
42                         TreeView tv = new TreeView();
43                         TreeNode one = new TreeNode ("one");
44                         TreeNode two = new TreeNode ("two");
45                         TreeNode three = new TreeNode ("three");
46
47                         tv.Nodes.Add (one);
48                         tv.Nodes.Add (two);
49                         tv.Nodes.Add (three);
50
51                         ArrayList al = new ArrayList (tv.Nodes);
52
53                         Assert.AreEqual (al [0], tv.Nodes [0], "A1");
54                         Assert.AreEqual (al [1], tv.Nodes [1], "A2");
55                         Assert.AreEqual (al [2], tv.Nodes [2], "A3");
56                 }
57         }
58
59         [TestFixture]
60         public class BeforeSelectEvent
61         {
62                 int beforeSelect;
63                 TreeViewCancelEventArgs cancelEventArgs;
64                 bool cancel;
65
66                 public void TreeView_BeforeSelect (object sender, TreeViewCancelEventArgs e)
67                 {
68                         beforeSelect++;
69                         cancelEventArgs = e;
70                         if (cancel)
71                                 e.Cancel = true;
72                 }
73
74                 [SetUp]
75                 public void SetUp ()
76                 {
77                         beforeSelect = 0;
78                         cancelEventArgs = null;
79                         cancel = false;
80                 }
81
82                 [Test]
83                 [Category ("NotWorking")]
84                 public void CancelBeforeCreationOfHandle ()
85                 {
86                         TreeView tvw = new TreeView ();
87                         tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
88                         cancel = true;
89
90                         TreeNode nodeA = tvw.Nodes.Add ("A");
91                         Assert.AreEqual (0, beforeSelect, "#A1");
92                         tvw.SelectedNode = nodeA;
93                         Assert.AreEqual (0, beforeSelect, "#A2");
94                         Assert.IsNull (cancelEventArgs, "#A3");
95                         Assert.IsFalse (nodeA.IsSelected, "#A4");
96                         Assert.AreSame (nodeA, tvw.SelectedNode, "#A5");
97
98                         TreeNode nodeB = tvw.Nodes.Add ("B");
99                         Assert.AreEqual (0, beforeSelect, "#B1");
100                         tvw.SelectedNode = nodeB;
101                         Assert.AreEqual (0, beforeSelect, "#B2");
102                         Assert.IsNull (cancelEventArgs, "#B3");
103                         Assert.IsFalse (nodeB.IsSelected, "#B4");
104                         Assert.AreSame (nodeB, tvw.SelectedNode, "#B5");
105
106                         Form form = new Form ();
107                         form.ShowInTaskbar = false;
108                         form.Controls.Add (tvw);
109                         form.Show ();
110
111                         Assert.AreEqual (2, beforeSelect, "#C1");
112                         Assert.IsNotNull (cancelEventArgs, "#C2");
113                         Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#C3");
114                         Assert.AreSame (nodeA, cancelEventArgs.Node, "#C4");
115                         Assert.IsFalse (nodeA.IsSelected, "#C5");
116                         Assert.IsFalse (nodeB.IsSelected, "#C6");
117                         Assert.IsNull (tvw.SelectedNode, "#C7");
118                 }
119
120                 [Test]
121                 [Category ("NotWorking")]
122                 public void SelectBeforeCreationOfHandle ()
123                 {
124                         TreeView tvw = new TreeView ();
125                         tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
126
127                         TreeNode nodeA =  tvw.Nodes.Add ("A");
128                         Assert.AreEqual (0, beforeSelect, "#A1");
129                         tvw.SelectedNode = nodeA;
130                         Assert.AreEqual (0, beforeSelect, "#A2");
131                         Assert.IsNull (cancelEventArgs, "#A3");
132                         Assert.IsFalse (nodeA.IsSelected, "#A4");
133                         Assert.AreSame (nodeA, tvw.SelectedNode, "#A5");
134
135                         TreeNode nodeB = tvw.Nodes.Add ("B");
136                         Assert.AreEqual (0, beforeSelect, "#B1");
137                         tvw.SelectedNode = nodeB;
138                         Assert.AreEqual (0, beforeSelect, "#B2");
139                         Assert.IsNull (cancelEventArgs, "#B3");
140                         Assert.IsFalse (nodeB.IsSelected, "#B4");
141                         Assert.AreSame (nodeB, tvw.SelectedNode, "#B5");
142
143                         Form form = new Form ();
144                         form.ShowInTaskbar = false;
145                         form.Controls.Add (tvw);
146                         form.Show ();
147
148                         Assert.AreEqual (1, beforeSelect, "#C1");
149                         Assert.IsNotNull (cancelEventArgs, "#C2");
150                         Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#C3");
151                         Assert.AreSame (nodeB, cancelEventArgs.Node, "#C4");
152                         Assert.IsFalse (nodeA.IsSelected, "#C5");
153                         Assert.IsTrue (nodeB.IsSelected, "#C6");
154                         Assert.AreSame (nodeB, tvw.SelectedNode, "#C7");
155                 }
156
157                 [Test]
158                 [Category ("NotWorking")]
159                 public void CancelAfterCreationOfHandle ()
160                 {
161                         TreeView tvw = new TreeView ();
162                         tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
163                         cancel = true;
164
165                         Form form = new Form ();
166                         form.ShowInTaskbar = false;
167                         form.Controls.Add (tvw);
168                         form.Show ();
169
170                         TreeNode nodeA = tvw.Nodes.Add ("A");
171                         Assert.AreEqual (0, beforeSelect, "#A1");
172                         tvw.SelectedNode = nodeA;
173                         Assert.AreEqual (1, beforeSelect, "#A2");
174                         Assert.IsNotNull (cancelEventArgs, "#A3");
175                         Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#A4");
176                         Assert.AreSame (nodeA, cancelEventArgs.Node, "#A5");
177                         Assert.IsFalse (nodeA.IsSelected, "#A6");
178                         Assert.IsNull (tvw.SelectedNode, "#A7");
179
180                         TreeNode nodeB = tvw.Nodes.Add ("B");
181                         Assert.AreEqual (1, beforeSelect, "#B1");
182                         tvw.SelectedNode = nodeB;
183                         Assert.AreEqual (2, beforeSelect, "#B2");
184                         Assert.IsNotNull (cancelEventArgs, "#B3");
185                         Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#B4");
186                         Assert.AreSame (nodeB, cancelEventArgs.Node, "#B5");
187                         Assert.IsFalse (nodeB.IsSelected, "#B6");
188                         Assert.IsNull (tvw.SelectedNode, "#B7");
189                 }
190
191                 [Test]
192                 [Category ("NotWorking")]
193                 public void SelectAfterCreationOfHandle ()
194                 {
195                         TreeView tvw = new TreeView ();
196                         tvw.BeforeSelect += new TreeViewCancelEventHandler (TreeView_BeforeSelect);
197
198                         Form form = new Form ();
199                         form.ShowInTaskbar = false;
200                         form.Controls.Add (tvw);
201                         form.Show ();
202
203                         TreeNode nodeA = tvw.Nodes.Add ("A");
204                         Assert.AreEqual (0, beforeSelect, "#A1");
205                         tvw.SelectedNode = nodeA;
206                         Assert.AreEqual (1, beforeSelect, "#A2");
207                         Assert.IsNotNull (cancelEventArgs, "#A3");
208                         Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#A4");
209                         Assert.AreSame (nodeA, cancelEventArgs.Node, "#A5");
210                         Assert.IsTrue (nodeA.IsSelected, "#A6");
211                         Assert.AreSame (nodeA, tvw.SelectedNode, "#A7");
212
213                         TreeNode nodeB = tvw.Nodes.Add ("B");
214                         Assert.AreEqual (1, beforeSelect, "#B1");
215                         tvw.SelectedNode = nodeB;
216                         Assert.AreEqual (2, beforeSelect, "#B2");
217                         Assert.IsNotNull (cancelEventArgs, "#B3");
218                         Assert.AreEqual (TreeViewAction.Unknown, cancelEventArgs.Action, "#B4");
219                         Assert.AreSame (nodeB, cancelEventArgs.Node, "#B5");
220                         Assert.IsTrue (nodeB.IsSelected, "#B6");
221                         Assert.AreSame (nodeB, tvw.SelectedNode, "#B7");
222                 }
223         }
224 }