Unit test for bug #821.
[mono.git] / mcs / class / Managed.Windows.Forms / Test / System.Windows.Forms / MenuTest.cs
index 20aa946a3c745ed1874837679d1f96f3804160c7..23503bce9a46b7a89fb5b21e18258f2e2f5211f4 100644 (file)
@@ -15,9 +15,8 @@ using NUnit.Framework;
 
 namespace MonoTests.System.Windows.Forms
 {
-       [TestFixture]
-       [Ignore ("This test has to be completly reviewed")]
-       public class MenuTest
+       [TestFixture]   
+       public class MenuTest : TestHelper
        {
                [Test]
                public void MenuPropertyTest ()
@@ -25,13 +24,18 @@ namespace MonoTests.System.Windows.Forms
                        Menu mymenu = new MainMenu ();
                        Assert.AreEqual ("System.IntPtr", mymenu.Handle.GetType().FullName, "#1");
                        Assert.AreEqual (false, mymenu.IsParent, "#2");
-                       Assert.AreEqual (null, mymenu.MdiListItem, "#3");
+                       // TODO: MDI is not completed  yet
+                       //Assert.AreEqual (null, mymenu.MdiListItem, "#3");
                        Assert.AreEqual (0, mymenu.MenuItems.Count,"#4");
                        mymenu.MenuItems.Add ("newmenu1");
                        mymenu.MenuItems.Add ("newmenu2");
                        Assert.AreEqual (2, mymenu.MenuItems.Count,"#5");
                        MainMenu mymainmenu = new MainMenu ();
                        Assert.AreEqual (RightToLeft.Inherit, mymainmenu.RightToLeft,"#6");
+                       
+#if NET_2_0
+                       Assert.IsNull (mymenu.Tag);
+#endif
                }
 
                [Test]
@@ -43,22 +47,7 @@ namespace MonoTests.System.Windows.Forms
                        mymainmenu.MenuItems.Add (mymenuitem);
                        Assert.AreEqual (mymainmenu, mymenuitem.GetMainMenu (), "#7");
                }       
-
-               [Test]
-               public void MergeMenuTest ()
-               {
-                       MainMenu mymainmenu1 = new MainMenu ();
-                       MainMenu mymainmenu2 = new MainMenu ();
-                       MenuItem mymenuitem1 = new MenuItem ();
-                       MenuItem mymenuitem2 = new MenuItem ();
-                       mymenuitem1.Text = "A";
-                       mymenuitem2.Text = "B";
-                       mymainmenu1.MenuItems.Add (mymenuitem1);
-                       mymainmenu2.MenuItems.Add (mymenuitem2);
-                       mymainmenu1.MergeMenu (mymainmenu2);
-                       Assert.AreEqual (2, mymainmenu1.MenuItems.Count, "#8");
-               }
-
+               
                [Test]
                public void CloneMenuTest ()
                {
@@ -73,10 +62,20 @@ namespace MonoTests.System.Windows.Forms
                        Assert.AreEqual ("item1", mymainmenu2.MenuItems[0].Text, "#9");
                }
 
+               [Test]
+               public void CloneWindowMenuTest ()
+               {
+                               MenuItem menuitem1 = new MenuItem ();
+                               menuitem1.MdiList = true;
+                               MenuItem menuitem2 = menuitem1.CloneMenu ();
+                               Assert.IsTrue (menuitem2.MdiList, "#1");
+               }
+
                [Test]
                public void GetFormTest ()
                {
                        Form myform = new Form ();
+                       myform.ShowInTaskbar = false;
                        myform.Name = "New Form";
                        MainMenu mymainmenu1 = new MainMenu ();
                        MenuItem menuitem1 = new MenuItem ();
@@ -84,18 +83,45 @@ namespace MonoTests.System.Windows.Forms
                        mymainmenu1.MenuItems.Add (menuitem1);
                        myform.Menu = mymainmenu1;
                        Assert.AreEqual ("New Form", mymainmenu1.GetForm().Name, "#10");
+                       myform.Dispose ();
                }
                
                [Test]
-               public void GetContextMenuTest ()
+               public void MenuItemMerge ()
                {
-                       Form myform = new Form ();
-                       ContextMenu mycontextmenu = new ContextMenu ();
-                       myform.ContextMenu= mycontextmenu;
-                       MenuItem menuItem1 = new MenuItem ();
-                       menuItem1.Text = "1";
-                       mycontextmenu.MenuItems.Add (menuItem1);
-                       Assert.AreEqual (mycontextmenu, menuItem1.GetContextMenu (),"#11");
+                       MenuItem itemA2 = new MenuItem ("Exit");
+                       itemA2.MergeType = MenuMerge.MergeItems;
+                       itemA2.MergeOrder = 3;
+
+                       MenuItem itemA1 = new MenuItem ("File");
+                       itemA1.MenuItems.Add (itemA2);
+                       itemA1.MergeType = MenuMerge.MergeItems;
+
+                       MenuItem itemB2 = new MenuItem ("Open");
+                       itemB2.MergeOrder = 1;
+                       itemB2.MergeType = MenuMerge.Add;
+
+                       MenuItem itemB3 = new MenuItem ("Close");
+                       itemB3.MergeOrder = 2;
+                       itemB3.MergeType = MenuMerge.Add;
+
+                       MenuItem itemB1 = new MenuItem ("File");
+                       itemB1.MenuItems.Add (itemB2);
+                       itemB1.MenuItems.Add (itemB3);
+                       itemB1.MergeType = MenuMerge.MergeItems;
+
+                       MainMenu mainMenu1 = new MainMenu();
+                       mainMenu1.MenuItems.Add (itemA1);
+                       
+                       MainMenu mainMenu2 = new MainMenu();
+                       mainMenu2.MenuItems.Add (itemB1);
+                       
+                       mainMenu1.MergeMenu (mainMenu2);
+
+                       Assert.AreEqual ("File",  mainMenu1.MenuItems[0].Text,              "ItemMerge#1");
+                       Assert.AreEqual ("Open",  mainMenu1.MenuItems[0].MenuItems[0].Text, "ItemMerge#2");
+                       Assert.AreEqual ("Close", mainMenu1.MenuItems[0].MenuItems[1].Text, "ItemMerge#3");
+                       Assert.AreEqual ("Exit",  mainMenu1.MenuItems[0].MenuItems[2].Text, "ItemMerge#4");
                }
        }
 }