Browse Source

add some tests for contextmenu open without params

Andrey Kunchev 5 years ago
parent
commit
a01fb157e4
1 changed files with 49 additions and 0 deletions
  1. 49 0
      tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs

+ 49 - 0
tests/Avalonia.Controls.UnitTests/ContextMenuTests.cs

@@ -44,6 +44,55 @@ namespace Avalonia.Controls.UnitTests
             }
         }
 
+        [Fact]
+        public void Open_Should_Use_Default_Control()
+        {
+            using (Application())
+            {
+                var sut = new ContextMenu();
+                var target = new Panel
+                {
+                    ContextMenu = sut
+                };
+
+                var window = new Window { Content = target };
+                window.ApplyTemplate();
+                window.Presenter.ApplyTemplate();
+
+                bool opened = false;
+
+                sut.MenuOpened += (sender, args) =>
+                {
+                    opened = true;
+                };
+
+                sut.Open();
+
+                Assert.True(opened);
+            }
+        }
+
+        [Fact]
+        public void Open_Should_Raise_Exception_If_AlreadyDetached()
+        {
+            using (Application())
+            {
+                var sut = new ContextMenu();
+                var target = new Panel
+                {
+                    ContextMenu = sut
+                };
+
+                var window = new Window { Content = target };
+                window.ApplyTemplate();
+                window.Presenter.ApplyTemplate();
+
+                target.ContextMenu = null;
+
+               Assert.ThrowsAny<Exception>(()=> sut.Open());
+            }
+        }
+
         [Fact]
         public void Closing_Raises_Single_Closed_Event()
         {