Author: jackson
Date: 2006-07-10 06:46:49 -0400 (Mon, 10 Jul 2006)
New Revision: 62388
Added:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/FocusTest.cs
Log:
Some simple focus unit tests.
Added:
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/FocusTest.cs
===================================================================
---
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/FocusTest.cs
2006-07-10 09:06:18 UTC (rev 62387)
+++
trunk/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/FocusTest.cs
2006-07-10 10:46:49 UTC (rev 62388)
@@ -0,0 +1,123 @@
+//
+// Copyright (c) 2006 Novell, Inc.
+//
+// Authors:
+// Jackson Harper ([EMAIL PROTECTED])
+//
+
+using System;
+using System.Windows.Forms;
+
+using NUnit.Framework;
+
+namespace MonoTests.System.Windows.Forms {
+
+ [TestFixture]
+ public class FocusTest {
+
+ public class ControlPoker : Button {
+
+ public void _Select (bool directed, bool forward)
+ {
+ Select (directed, forward);
+ }
+ }
+
+ private ControlPoker [] flat_controls;
+
+ [SetUp]
+ protected virtual void SetUp ()
+ {
+ flat_controls = null;
+
+ flat_controls = new ControlPoker [] {
+ new ControlPoker (), new ControlPoker (), new
ControlPoker ()
+ };
+ }
+
+ [Test]
+ public void ControlSelectNextFlatTest ()
+ {
+ Form form = new Form ();
+
+ form.Controls.AddRange (flat_controls);
+ form.Show ();
+
+ Assert.IsTrue (flat_controls [0].Focused, "sanity-1");
+ Assert.AreEqual (flat_controls [0], form.ActiveControl,
"sanity-2");
+
+ form.SelectNextControl (flat_controls [0], true, false,
false, false);
+ Assert.IsFalse (flat_controls [0].Focused, "A1");
+ Assert.IsTrue (flat_controls [1].Focused, "A2");
+ Assert.IsFalse (flat_controls [2].Focused, "A3");
+ Assert.AreEqual (flat_controls [1], form.ActiveControl,
"A4");
+
+ form.SelectNextControl (flat_controls [1], true, false,
false, false);
+ Assert.IsFalse (flat_controls [0].Focused, "A5");
+ Assert.IsFalse (flat_controls [1].Focused, "A6");
+ Assert.IsTrue (flat_controls [2].Focused, "A7");
+ Assert.AreEqual (flat_controls [2], form.ActiveControl,
"A8");
+
+ // Can't select anymore because we aren't wrapping
+ form.SelectNextControl (flat_controls [2], true, false,
false, false);
+ Assert.IsFalse (flat_controls [0].Focused, "A9");
+ Assert.IsFalse (flat_controls [1].Focused, "A10");
+ Assert.IsTrue (flat_controls [2].Focused, "A11");
+ Assert.AreEqual (flat_controls [2], form.ActiveControl,
"A12");
+
+ form.SelectNextControl (flat_controls [2], true, false,
false, true);
+ Assert.IsTrue (flat_controls [0].Focused, "A13");
+ Assert.IsFalse (flat_controls [1].Focused, "A14");
+ Assert.IsFalse (flat_controls [2].Focused, "A15");
+ Assert.AreEqual (flat_controls [0], form.ActiveControl,
"A16");
+ }
+
+ [Test]
+ public void SelectNextControlNullTest ()
+ {
+ Form form = new Form ();
+
+ form.Show ();
+ form.Controls.AddRange (flat_controls);
+
+ form.SelectNextControl (null, true, false, false,
false);
+ Assert.IsTrue (flat_controls [0].Focused, "A1");
+ Assert.IsFalse (flat_controls [1].Focused, "A2");
+ Assert.IsFalse (flat_controls [2].Focused, "A3");
+ Assert.AreEqual (flat_controls [0], form.ActiveControl,
"A4");
+
+ form.SelectNextControl (null, true, false, false,
false);
+ Assert.IsTrue (flat_controls [0].Focused, "A5");
+ Assert.IsFalse (flat_controls [1].Focused, "A6");
+ Assert.IsFalse (flat_controls [2].Focused, "A7");
+ Assert.AreEqual (flat_controls [0], form.ActiveControl,
"A8");
+ }
+
+ [Test]
+ public void SelectControlTest ()
+ {
+ Form form = new Form ();
+
+ form.Show ();
+ form.Controls.AddRange (flat_controls);
+
+ flat_controls [0]._Select (false, false);
+ Assert.AreEqual (flat_controls [0], form.ActiveControl,
"A1");
+
+ flat_controls [0]._Select (true, false);
+ Assert.AreEqual (flat_controls [0], form.ActiveControl,
"A2");
+
+ flat_controls [0]._Select (true, true);
+ Assert.AreEqual (flat_controls [0], form.ActiveControl,
"A3");
+ }
+
+ [Test]
+ public void GetNextControl ()
+ {
+
+ }
+
+ }
+
+}
+
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches