//
//
-
using System;
-using System.Windows.Forms;
using System.Drawing;
using System.Reflection;
+using System.Windows.Forms;
+
using NUnit.Framework;
namespace MonoTests.System.Windows.Forms
{
MenuItem mi = new MenuItem ();
- Assert.AreEqual (false, mi.BarBreak, "DefaultValues#1");
- Assert.AreEqual (false, mi.Break, "DefaultValues#2");
- Assert.AreEqual (false, mi.Checked, "DefaultValues#3");
- Assert.AreEqual (false, mi.DefaultItem, "DefaultValues#4");
- Assert.AreEqual (true, mi.Enabled, "DefaultValues#5");
+ Assert.IsFalse (mi.BarBreak, "DefaultValues#1");
+ Assert.IsFalse (mi.Break, "DefaultValues#2");
+ Assert.IsFalse (mi.Checked, "DefaultValues#3");
+ Assert.IsFalse (mi.DefaultItem, "DefaultValues#4");
+ Assert.IsTrue (mi.Enabled, "DefaultValues#5");
Assert.AreEqual (-1, mi.Index, "DefaultValues#6");
- Assert.AreEqual (false, mi.IsParent, "DefaultValues#7");
-
- // TODO: MDI is not completed yet
- //Assert.AreEqual (, mi.MdiList, "DefaultValues#8");
+ Assert.IsFalse (mi.IsParent, "DefaultValues#7");
+ Assert.IsFalse (mi.MdiList, "DefaultValues#8");
Assert.AreEqual (0, mi.MergeOrder, "DefaultValues#9");
Assert.AreEqual (MenuMerge.Add, mi.MergeType, "DefaultValues#10");
Assert.AreEqual ('\0', mi.Mnemonic, "DefaultValues#11");
- Assert.AreEqual (false, mi.OwnerDraw, "DefaultValues#12");
- Assert.AreEqual (null, mi.Parent, "DefaultValues#13");
- Assert.AreEqual (false, mi.RadioCheck, "DefaultValues#14");
+ Assert.IsFalse (mi.OwnerDraw, "DefaultValues#12");
+ Assert.IsNull (mi.Parent, "DefaultValues#13");
+ Assert.IsFalse (mi.RadioCheck, "DefaultValues#14");
Assert.AreEqual (Shortcut.None, mi.Shortcut, "DefaultValues#15");
- Assert.AreEqual (true, mi.ShowShortcut, "DefaultValues#16");
+ Assert.IsTrue (mi.ShowShortcut, "DefaultValues#16");
Assert.AreEqual (string.Empty, mi.Text, "DefaultValues#17");
- Assert.AreEqual (true, mi.Visible, "DefaultValues#18");
+ Assert.IsTrue (mi.Visible, "DefaultValues#18");
}
[Test]
MenuItem subitem2 = new MenuItem ("SubItem2");
MenuItem subitem3 = new MenuItem ("SubItem3");
- {
- mi = new MenuItem ("Item1");
- Assert.AreEqual ("Item1", mi.Text, "Constructor#1");
- }
-
- {
- mi = new MenuItem ("Item2", new MenuItem [] {subitem1,
- subitem2, subitem3});
+ mi = new MenuItem ("Item1");
+ Assert.AreEqual ("Item1", mi.Text, "Constructor#1");
- Assert.AreEqual ("Item2", mi.Text, "Constructor#2");
- Assert.AreEqual (3, mi.MenuItems.Count, "Constructor#3");
+ mi = new MenuItem ("Item2", new MenuItem [] {subitem1,
+ subitem2, subitem3});
- Assert.AreEqual ("SubItem1", mi.MenuItems[0].Text, "Constructor#4");
- Assert.AreEqual (mi, mi.MenuItems[0].Parent, "Constructor#5");
+ Assert.AreEqual ("Item2", mi.Text, "Constructor#2");
+ Assert.AreEqual (3, mi.MenuItems.Count, "Constructor#3");
- Assert.AreEqual ("SubItem2", mi.MenuItems[1].Text, "Constructor#6");
- Assert.AreEqual (mi, mi.MenuItems[1].Parent, "Constructor#7");
+ Assert.AreEqual ("SubItem1", mi.MenuItems[0].Text, "Constructor#4");
+ Assert.AreEqual (mi, mi.MenuItems[0].Parent, "Constructor#5");
- Assert.AreEqual ("SubItem3", mi.MenuItems[2].Text, "Constructor#8");
- Assert.AreEqual (mi, mi.MenuItems[2].Parent, "Constructor#9");
- }
+ Assert.AreEqual ("SubItem2", mi.MenuItems[1].Text, "Constructor#6");
+ Assert.AreEqual (mi, mi.MenuItems[1].Parent, "Constructor#7");
+ Assert.AreEqual ("SubItem3", mi.MenuItems[2].Text, "Constructor#8");
+ Assert.AreEqual (mi, mi.MenuItems[2].Parent, "Constructor#9");
}
[Test]
Assert.AreEqual ("Compare... (6)", first_menu.MenuItems[12].Text, "ItemMerge#11");
}
+ [Test]
+ public void Text ()
+ {
+ MenuItem mi1 = new MenuItem ();
+ mi1.Text = "A1";
+ Assert.AreEqual ("A1", mi1.Text, "#1");
+
+ MenuItem mi2 = new MenuItem ();
+ mi2.Text = "A2a";
+ Assert.AreEqual ("A2a", mi2.Text, "#2");
+
+ mi1.MenuItems.Add (mi2);
+ mi2.Text = "A2b";
+ Assert.AreEqual ("A2b", mi2.Text, "#3");
+
+ MainMenu mainMenu = new MainMenu ();
+ mainMenu.MenuItems.Add (mi1);
+
+ mi1.Text = "B1";
+ Assert.AreEqual ("B1", mi1.Text, "#4");
+ mi2.Text = "B2";
+ Assert.AreEqual ("B2", mi2.Text, "#5");
+
+ Form form = new Form ();
+ form.ShowInTaskbar = false;
+ form.Menu = mainMenu;
+ form.Show ();
+
+ Assert.AreEqual ("B1", mi1.Text, "#6");
+ Assert.AreEqual ("B2", mi2.Text, "#7");
+ mi1.Text = "C1";
+ Assert.AreEqual ("C1", mi1.Text, "#8");
+ mi2.Text = "C2";
+ Assert.AreEqual ("C2", mi2.Text, "#9");
+ }
+
+ bool event_reached;
+ void event_test (object sender, EventArgs e)
+ {
+ event_reached = true;
+ }
+
+#if false
+ void test_drawevent (object sender, DrawItemEventArgs e)
+ {
+ event_reached = true;
+ }
+
+ void test_measureevent (object sender, MeasureItemEventArgs e)
+ {
+ event_reached = true;
+ }
+#endif
+
+ [Test]
+ public void CloneEventTest ()
+ {
+ MenuItem mi1, mi2;
+
+ event_reached = false;
+ mi1 = new MenuItem ();
+ mi1.Click += new EventHandler (event_test);
+ mi2 = mi1.CloneMenu ();
+ mi2.PerformClick ();
+ Assert.IsTrue (event_reached);
+
+ event_reached = false;
+ mi1 = new MenuItem ();
+ mi1.Select += new EventHandler (event_test);
+ mi2 = mi1.CloneMenu ();
+ mi2.PerformSelect ();
+ Assert.IsTrue (event_reached);
+
+#if no
+ // these three can't be tested because of the broken MenuItem.CloneMenu
+
+ event_reached = false;
+ mi1 = new MenuItem ();
+ mi1.Popup += new EventHandler (test_event);
+ mi2 = mi1.CloneMenu ();
+ mi2.PerformPopup ();
+ Assert.IsTrue (event_reached);
+
+ event_reached = false;
+ mi1 = new MenuItem ();
+ mi1.DrawItem += new DrawItemEventHandler (test_drawevent);
+ mi2 = mi1.CloneMenu ();
+ mi2.PerformDrawItem (new DrawItemEventArgs (null, null, Rectangle.Empty, 1, DrawItemState.None));
+ Assert.IsTrue (event_reached);
+
+ event_reached = false;
+ mi1 = new MenuItem ();
+ mi1.MeasureItem += new MeasureItemEventHandler (test_measureevent);
+ mi2 = mi1.CloneMenu ();
+ mi2.PerformMeasureItem (new MeasureItemEventArgs (null, 1));
+ Assert.IsTrue (event_reached);
+#endif
+ }
+
+ [Test]
+ public void OwnerDraw()
+ {
+ Form form = new Form();
+ form.Menu = new MainMenu();
+ form.Menu.MenuItems.Add(new NotOwnerDrawnMenuItem());
+ form.Show();
+ form.Close();
+ }
+
+ class NotOwnerDrawnMenuItem : MenuItem
+ {
+ public NotOwnerDrawnMenuItem()
+ {
+ Assert.IsFalse(OwnerDraw, "OwnerDraw");
+ }
+
+ protected override void OnMeasureItem(MeasureItemEventArgs e)
+ {
+ Assert.Fail("OnMeasureItem");
+ }
+
+ protected override void OnDrawItem(DrawItemEventArgs e)
+ {
+ Assert.Fail("OnDrawItem");
+ }
+ }
}
}