using System.Drawing;
using System.Reflection;
using System.Windows.Forms;
-
+using System.ComponentModel;
using NUnit.Framework;
+using CategoryAttribute = NUnit.Framework.CategoryAttribute;
namespace MonoTests.System.Windows.Forms
{
TearDown ();
}
+ [TestFixture]
+ public class CloseTest
+ {
+ class ChildForm : Form
+ {
+ public ChildForm ()
+ {
+ Closed += new EventHandler (ChildForm_Closed);
+ Closing += new CancelEventHandler (ChildForm_Closing);
+#if NET_2_0
+ FormClosed += new FormClosedEventHandler (ChildForm_FormClosed);
+ FormClosing += new FormClosingEventHandler (ChildForm_FormClosing);
+#endif
+ }
+#if NET_2_0
+ void ChildForm_FormClosing (object sender, FormClosingEventArgs e)
+ {
+ Assert.IsNotNull (MdiParent, "ChildForm_FormClosing");
+ }
+
+ void ChildForm_FormClosed (object sender, FormClosedEventArgs e)
+ {
+ Assert.IsNotNull (MdiParent, "ChildForm_FormClosed");
+ }
+#endif
+ void ChildForm_Closing (object sender, CancelEventArgs e)
+ {
+ Assert.IsNotNull (MdiParent, "ChildForm_Closing");
+ }
+
+ void ChildForm_Closed (object sender, EventArgs e)
+ {
+ Assert.IsNotNull (MdiParent, "ChildForm_Closed");
+ }
+
+ protected override void OnClosed (EventArgs e)
+ {
+ Assert.IsNotNull (MdiParent, "OnClosed 1");
+ base.OnClosed (e);
+ Assert.IsNotNull (MdiParent, "OnClosed 2");
+ }
+
+ protected override void OnClosing (CancelEventArgs e)
+ {
+ Assert.IsNotNull (MdiParent, "OnClosing 1");
+ base.OnClosing (e);
+ Assert.IsNotNull (MdiParent, "OnClosing 2");
+ }
+
+ }
+ [Test]
+ public void Test () {
+ using (Form main = new Form ()) {
+ main.IsMdiContainer = true;
+ main.ShowInTaskbar = false;
+ main.Visible = true;
+
+ ChildForm child = new ChildForm ();
+ EventLogger log = new EventLogger (child);
+ child.MdiParent = main;
+ child.Visible = true;
+ child.Close ();
+
+ Assert.AreEqual (1, log.CountEvents ("Closed"), "#01");
+ Assert.AreEqual (1, log.CountEvents ("Closing"), "#02");
+ Assert.IsNull (child.MdiParent, "#03");
+ Assert.AreEqual (0, main.MdiChildren.Length, "#04");
+ Assert.AreEqual (false, child.IsMdiChild, "#05");
+ }
+ }
+ }
+ [Test]
+ [Category ("NotWorking")]
+ public void StartLocationTest ()
+ {
+ SetUp (false, false);
+
+ child1.MdiParent = main;
+ child2.MdiParent = main;
+
+ child1.Visible = true;
+ child2.Visible = true;
+
+ main.Show ();
+
+ Assert.AreEqual ("{X=0,Y=0}", child1.Location.ToString (), "#1");
+ Assert.AreEqual (true, "{X=0,Y=0}" != child2.Location.ToString (), "#2");
+
+ TearDown ();
+ }
+
+ /* These tests are all failing on WinXP with XP Theme.
+ * offset seems to be 22,22 normally, and 22,29 with XP theme.
+ * Find a way to test this reliably.
+ * /
[Category("NotWorking")]
[Test]
public void StartLocationTest1 ()
TearDown ();
}
-
+*/
[Test]
public void StartSizeTest1 ()
{