2009-01-16 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / MenuItemTest.cs
index 122bf74c575063ddf9706223815fe08b2d73bce1..1c13a296e82f4c21c7212fc3704b6c17890cac22 100644 (file)
@@ -34,7 +34,7 @@ using NUnit.Framework;
 namespace MonoTests.System.Windows.Forms
 {
        [TestFixture]
-       public class MenuItemTest
+       public class MenuItemTest : TestHelper
        {
                [Test]
                public void MenuItemDefaultValues ()
@@ -215,6 +215,91 @@ namespace MonoTests.System.Windows.Forms
                }
 #endif
 
+               [Test]
+               public void CloneTest ()
+               {
+                       MenuItem mi1, mi2;
+                       
+                       mi1 = new MenuItem();
+                       mi1.BarBreak = true;
+                       mi1.Break = true;
+                       mi1.Checked = true;
+                       mi1.DefaultItem = true;
+                       mi1.Enabled = true;
+                       mi1.MergeOrder = 1;
+                       mi1.MergeType = MenuMerge.Replace;
+                       mi1.OwnerDraw = true;
+                       mi1.RadioCheck = true;
+                       mi1.Shortcut = Shortcut.Alt0;
+                       mi1.ShowShortcut = true;
+                       mi1.Text = "text1";
+                       mi1.Visible = true;
+#if NET_2_0
+                       mi1.Name = "name1";
+                       mi1.Tag = "tag1";
+#endif
+                       
+                       mi2 = mi1.CloneMenu();
+                       
+                       Assert.AreEqual(mi1.BarBreak, mi2.BarBreak, "BarBreak #1");
+                       Assert.AreEqual(mi1.Break, mi2.Break, "Break #1");
+                       Assert.AreEqual(mi1.Checked, mi2.Checked, "Checked #1");
+                       Assert.AreEqual(mi1.DefaultItem, mi2.DefaultItem, "DefaultItem #1");
+                       Assert.AreEqual(mi1.Enabled, mi2.Enabled, "Enabled #1");
+                       Assert.AreEqual(mi1.MergeOrder, mi2.MergeOrder, "MergeOrder #1");
+                       Assert.AreEqual(mi1.MergeType, mi2.MergeType, "MergeType #1");
+                       Assert.AreEqual(mi1.OwnerDraw, mi2.OwnerDraw, "OwnerDraw #1");
+                       Assert.AreEqual(mi1.RadioCheck, mi2.RadioCheck, "RadioCheck #1");
+                       Assert.AreEqual(mi1.Shortcut, mi2.Shortcut, "Shortcut #1");
+                       Assert.AreEqual(mi1.ShowShortcut, mi2.ShowShortcut, "ShowShortcut #1");
+                       Assert.AreEqual(mi1.Text, mi2.Text, "Text #1");
+                       Assert.AreEqual(mi1.Visible, mi2.Visible, "Visible #1");
+                       
+#if NET_2_0
+                       Assert.AreEqual(mi1.Name, mi2.Name, "Name #1");
+                       Assert.AreEqual(mi1.Tag, mi2.Tag, "Tag #1");
+#endif
+                       
+                       mi1.BarBreak = false;
+                       mi1.Break = false;
+                       mi1.Checked = false;
+                       mi1.DefaultItem = false;
+                       mi1.Enabled = false;
+                       mi1.MergeOrder = 0;
+                       mi1.MergeType = MenuMerge.Remove;
+                       mi1.OwnerDraw = false;
+                       mi1.RadioCheck = false;                 
+                       mi1.Shortcut = Shortcut.Alt1;
+                       mi1.ShowShortcut = false;
+                       mi1.Text = "text2";
+                       mi1.Visible = false;
+                       
+#if NET_2_0
+                       mi1.Name = "name2";
+                       mi1.Tag = "tag2";
+#endif
+                       
+                       mi2 = mi1.CloneMenu();
+                       
+                       Assert.AreEqual(mi1.BarBreak, mi2.BarBreak, "BarBreak #2");
+                       Assert.AreEqual(mi1.Break, mi2.Break, "Break #2");
+                       Assert.AreEqual(mi1.Checked, mi2.Checked, "Checked #2");
+                       Assert.AreEqual(mi1.DefaultItem, mi2.DefaultItem, "DefaultItem #2");
+                       Assert.AreEqual(mi1.Enabled, mi2.Enabled, "Enabled #2");
+                       Assert.AreEqual(mi1.MergeOrder, mi2.MergeOrder, "MergeOrder #2");
+                       Assert.AreEqual(mi1.MergeType, mi2.MergeType, "MergeType #2");
+                       Assert.AreEqual(mi1.OwnerDraw, mi2.OwnerDraw, "OwnerDraw #2");
+                       Assert.AreEqual(mi1.RadioCheck, mi2.RadioCheck, "RadioCheck #2");
+                       Assert.AreEqual(mi1.Shortcut, mi2.Shortcut, "Shortcut #2");
+                       Assert.AreEqual(mi1.ShowShortcut, mi2.ShowShortcut, "ShowShortcut #2");
+                       Assert.AreEqual(mi1.Text, mi2.Text, "Text #2");
+                       Assert.AreEqual(mi1.Visible, mi2.Visible, "Visible #2");
+#if NET_2_0
+                       Assert.AreEqual(mi1.Name, mi2.Name, "Name #2");
+                       Assert.AreEqual(mi1.Tag, mi2.Tag, "Tag #2");
+#endif
+               }
+       
                [Test]
                public void CloneEventTest ()
                {
@@ -287,5 +372,20 @@ namespace MonoTests.System.Windows.Forms
                                Assert.Fail("OnDrawItem");
                        }
                }
+               
+               [Test]
+               public void RemoveOnDispose ()
+               {
+                       MainMenu m = new MainMenu ();
+                       MenuItem mi = new MenuItem ("yo");
+                       
+                       m.MenuItems.Add (mi);
+                       
+                       Assert.AreEqual (1, m.MenuItems.Count, "A1");
+                       
+                       mi.Dispose ();
+
+                       Assert.AreEqual (0, m.MenuItems.Count, "A2");
+               }
        }
 }