예제 #1
0
        public void MouseWheelCenter()
        {
            using (var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName))
            {
                var window        = app.MainWindow;
                var renderSize    = window.FindTextBlock("Size");
                var contentMatrix = window.FindTextBlock("ContentMatrix");
                Mouse.Position = window.FindGroupBox("Zoombox").Bounds.Center();
                Assert.AreEqual("Identity", contentMatrix.Text);

                Mouse.Scroll(1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.05,0,0,1.05,-9.65000000000001,-6.20000000000002", contentMatrix.Text);

                Mouse.Scroll(1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.1025,0,0,1.1025,-19.7825,-12.71", contentMatrix.Text);

                Mouse.Scroll(-1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.05,0,0,1.05,-9.65,-6.20000000000003", contentMatrix.Text);

                Mouse.Scroll(-1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1,0,0,1,1.59872115546023E-14,-1.68753899743024E-14", contentMatrix.Text);
            }
        }
예제 #2
0
        public void PanFromUniform()
        {
            using (var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName))
            {
                var window        = app.MainWindow;
                var renderSize    = window.FindTextBlock("Size");
                var contentMatrix = window.FindTextBlock("ContentMatrix");
                var zoomBox       = window.FindGroupBox("Zoombox");
                window.FindButton("Uniform").Invoke();
                window.WaitUntilResponsive();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("0.6225,0,0,0.6225,99.625,-1.4210854715202E-14", contentMatrix.Text);

                Mouse.DragHorizontally(MouseButton.Left, zoomBox.Bounds.Center(), 50);
                window.WaitUntilResponsive();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("0.6225,0,0,0.6225,149.625,-1.4210854715202E-14", contentMatrix.Text);

                Mouse.DragHorizontally(MouseButton.Left, zoomBox.Bounds.Center(), -50);
                window.WaitUntilResponsive();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("0.6225,0,0,0.6225,99.625,-1.4210854715202E-14", contentMatrix.Text);

                Mouse.DragVertically(MouseButton.Left, zoomBox.Bounds.Center(), 50);
                window.WaitUntilResponsive();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("0.6225,0,0,0.6225,99.625,50", contentMatrix.Text);

                Mouse.DragVertically(MouseButton.Left, zoomBox.Bounds.Center(), -50);
                window.WaitUntilResponsive();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("0.6225,0,0,0.6225,99.625,-1.4210854715202E-14", contentMatrix.Text);
            }
        }
예제 #3
0
        public void MouseWheelBottomLeft()
        {
            using (var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName))
            {
                var window        = app.MainWindow;
                var renderSize    = window.FindTextBlock("Size");
                var contentMatrix = window.FindTextBlock("ContentMatrix");
                Mouse.Position = window.FindGroupBox("Zoombox").Bounds.BottomLeft + new Vector(1, -1);
                Assert.AreEqual("Identity", contentMatrix.Text);

                Mouse.Scroll(1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.05,0,0,1.05,0,-12.45", contentMatrix.Text);

                Mouse.Scroll(1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.1025,0,0,1.1025,0,-25.5225", contentMatrix.Text);

                Mouse.Scroll(-1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.05,0,0,1.05,0,-12.45", contentMatrix.Text);

                Mouse.Scroll(-1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1,0,0,1,0,2.8421709430404E-14", contentMatrix.Text);
            }
        }
예제 #4
0
        public void MouseWheelTopRight()
        {
            using (var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName))
            {
                var window        = app.MainWindow;
                var renderSize    = window.FindTextBlock("Size");
                var contentMatrix = window.FindTextBlock("ContentMatrix");
                Mouse.Position = window.FindGroupBox("Zoombox").Bounds.TopRight + new Vector(-1, 1);
                Assert.AreEqual("Identity", contentMatrix.Text);

                Mouse.Scroll(1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.05,0,0,1.05,-19.3,0", contentMatrix.Text);

                Mouse.Scroll(1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.1025,0,0,1.1025,-39.565,0", contentMatrix.Text);

                Mouse.Scroll(-1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1.05,0,0,1.05,-19.3,0", contentMatrix.Text);

                Mouse.Scroll(-1);
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("1,0,0,1,3.19744231092045E-14,0", contentMatrix.Text);
            }
        }
예제 #5
0
        public void PanFromUniform()
        {
            using var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName);
            var window        = app.MainWindow;
            var renderSize    = window.FindTextBlock("Size");
            var contentMatrix = window.FindTextBlock("ContentMatrix");
            var zoomBox       = window.FindGroupBox("Zoombox");

            window.FindButton("Uniform").Invoke();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("0.62,0,0,0.62,100,0", contentMatrix.Text);

            Mouse.DragHorizontally(MouseButton.Left, zoomBox.Bounds.Center(), 50);
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("0.62,0,0,0.62,150,0", contentMatrix.Text);

            Mouse.DragHorizontally(MouseButton.Left, zoomBox.Bounds.Center(), -50);
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("0.62,0,0,0.62,100,0", contentMatrix.Text);

            Mouse.DragVertically(MouseButton.Left, zoomBox.Bounds.Center(), 50);
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("0.62,0,0,0.62,100,50", contentMatrix.Text);

            Mouse.DragVertically(MouseButton.Left, zoomBox.Bounds.Center(), -50);
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("0.62,0,0,0.62,100,0", contentMatrix.Text);
        }
예제 #6
0
        public void SetUp()
        {
            using var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName);
            var window = app.MainWindow;

            window.FindButton("None").Invoke();
        }
예제 #7
0
        public void MouseWheelBottomRight()
        {
            using (var app = Application.AttachOrLaunch(Application.FindExe("Gu.Wpf.Geometry.Demo.exe"), "ZoomWindow"))
            {
                var window        = app.MainWindow;
                var renderSize    = window.FindTextBlock("Size");
                var contentMatrix = window.FindTextBlock("ContentMatrix");
                var image         = window.FindFirstDescendant(ControlType.Image);
                Assert.AreEqual("Identity", contentMatrix.Text);

                var topLeft = image.Bounds.TopLeft();
                var size    = Size.Parse(renderSize.Text);
                Mouse.Click(MouseButton.Left, new Point(topLeft.X + size.Width - 1, topLeft.Y + size.Height - 1));
                Mouse.Scroll(1);
                app.WaitWhileBusy();
                app.WaitWhileBusy();
                var matrix = Matrix.Parse(contentMatrix.Text);
                Assert.AreEqual(1.05, matrix.M11, 1E-3);
                Assert.AreEqual(1.05, matrix.M22, 1E-3);
                var expectedOffsetX = -0.05 * size.Width;
                Assert.AreEqual(expectedOffsetX, matrix.OffsetX, 1E-1);
                var expectedOffsetY = -0.05 * size.Height;
                Assert.AreEqual(expectedOffsetY, matrix.OffsetY, 1E-1);
            }
        }
예제 #8
0
        public static void ChangeScopeVisibility(Visibility notVisible)
        {
            using var app = Application.AttachOrLaunch(ExeFileName, WindowName);
            var window             = app.MainWindow;
            var scope              = window.FindGroupBox("Scope");
            var node               = window.FindGroupBox("Node");
            var visibilityComboBox = window.FindComboBox("ScopeVisibilityComboBox");

            Assert.AreEqual("HasError: False", scope.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.IsEmpty(scope.GetErrors());

            Assert.AreEqual("Children: 0", node.FindTextBlock("ChildCountTextBlock").Text);
            Assert.AreEqual("HasError: False", node.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.IsEmpty(node.GetErrors());
            Assert.AreEqual("Gu.Wpf.ValidationScope.ValidNode", node.FindTextBlock("NodeTypeTextBlock").Text);

            window.FindTextBox("TextBox").Text = "a";
            var expectedErrors = new[] { "Value 'a' could not be converted." };

            Assert.AreEqual("HasError: True", scope.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.AreEqual(expectedErrors, scope.GetErrors());

            Assert.AreEqual("Children: 1", node.FindTextBlock("ChildCountTextBlock").Text);
            Assert.AreEqual("HasError: True", node.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.AreEqual(expectedErrors, node.GetErrors());
            Assert.AreEqual("Gu.Wpf.ValidationScope.ScopeNode", node.FindTextBlock("NodeTypeTextBlock").Text);

            visibilityComboBox.Select(notVisible.ToString());
            Assert.AreEqual("HasError: False", scope.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.IsEmpty(scope.GetErrors());

            Assert.AreEqual("Children: 0", node.FindTextBlock("ChildCountTextBlock").Text);
            Assert.AreEqual("HasError: False", node.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.IsEmpty(node.GetErrors());
            Assert.AreEqual("Gu.Wpf.ValidationScope.ValidNode", node.FindTextBlock("NodeTypeTextBlock").Text);

            visibilityComboBox.Select("Visible");
            Assert.AreEqual("HasError: True", scope.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.AreEqual(expectedErrors, scope.GetErrors());

            Assert.AreEqual("Children: 1", node.FindTextBlock("ChildCountTextBlock").Text);
            Assert.AreEqual("HasError: True", node.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.AreEqual(expectedErrors, node.GetErrors());
            Assert.AreEqual("Gu.Wpf.ValidationScope.ScopeNode", node.FindTextBlock("NodeTypeTextBlock").Text);

            window.FindTextBox("TextBox").Text = "1";
            Assert.AreEqual("HasError: False", scope.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.IsEmpty(scope.GetErrors());

            Assert.AreEqual("Children: 0", node.FindTextBlock("ChildCountTextBlock").Text);
            Assert.AreEqual("HasError: False", node.FindTextBlock("HasErrorTextBlock").Text);
            CollectionAssert.IsEmpty(node.GetErrors());
            Assert.AreEqual("Gu.Wpf.ValidationScope.ValidNode", node.FindTextBlock("NodeTypeTextBlock").Text);
        }
예제 #9
0
 public void ZoomUniformToFill()
 {
     using (var app = Application.AttachOrLaunch(Application.FindExe("Gu.Wpf.Geometry.Demo.exe"), "ZoomWindow"))
     {
         var window        = app.MainWindow;
         var renderSize    = window.FindTextBlock("Size");
         var contentMatrix = window.FindTextBlock("ContentMatrix");
         window.FindButton("UniformToFill").Click();
         var size          = Size.Parse(renderSize.Text);
         var expectedScale = Math.Max(size.Width / 300, size.Height / 400);
         var matrix        = Matrix.Parse(contentMatrix.Text);
         Assert.AreEqual(expectedScale, matrix.M11, 1E-3);
         Assert.AreEqual(expectedScale, matrix.M22, 1E-3);
         var expectedOffsetX = size.Width < 300 ? (size.Width - (expectedScale * 300)) / 2 : 0;
         Assert.AreEqual(expectedOffsetX, matrix.OffsetX, 1E-3);
         var expectedOffsetY = size.Height < 400 ? (size.Height - (expectedScale * 400)) / 2 : 0;
         Assert.AreEqual(expectedOffsetY, matrix.OffsetY, 1E-3);
     }
 }
예제 #10
0
        public void Decrease()
        {
            using var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName);
            var window        = app.MainWindow;
            var renderSize    = window.FindTextBlock("Size");
            var contentMatrix = window.FindTextBlock("ContentMatrix");

            window.FindButton("Uniform").Invoke();
            var zoomButton = window.FindButton("Decrease");

            Assert.AreEqual(true, zoomButton.IsEnabled);
            zoomButton.Click();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("0.31,0,0,0.31,146.5,62", contentMatrix.Text);

            Assert.AreEqual(true, zoomButton.IsEnabled);
            zoomButton.Click();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("0.155,0,0,0.155,169.75,93", contentMatrix.Text);
        }
예제 #11
0
        public void Increase()
        {
            using var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName);
            var window        = app.MainWindow;
            var renderSize    = window.FindTextBlock("Size");
            var contentMatrix = window.FindTextBlock("ContentMatrix");

            window.FindButton("Uniform").Invoke();
            var zoomButton = window.FindButton("Increase");

            Assert.AreEqual(true, zoomButton.IsEnabled);
            zoomButton.Click();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("1.24,0,0,1.24,7,-124", contentMatrix.Text);

            Assert.AreEqual(true, zoomButton.IsEnabled);
            zoomButton.Click();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("2.48,0,0,2.48,-179,-372", contentMatrix.Text);
        }
예제 #12
0
        public void ZoomUniformToFill()
        {
            using var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName);
            var window        = app.MainWindow;
            var renderSize    = window.FindTextBlock("Size");
            var contentMatrix = window.FindTextBlock("ContentMatrix");
            var zoomButton    = window.FindButton("UniformToFill");

            Assert.AreEqual(true, zoomButton.IsEnabled);
            zoomButton.Click();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("1.28667,0,0,1.28667,0,-133.33333", contentMatrix.Text);

            window.FindButton("None").Click();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("Identity", contentMatrix.Text);

            Assert.AreEqual(true, zoomButton.IsEnabled);
            zoomButton.Click();
            Assert.AreEqual("386, 248", renderSize.Text);
            Assert.AreEqual("1.28667,0,0,1.28667,0,-133.33333", contentMatrix.Text);
        }
예제 #13
0
        public void MouseWheelTopLeft()
        {
            using (var app = Application.AttachOrLaunch(Application.FindExe("Gu.Wpf.Geometry.Demo.exe"), "ZoomWindow"))
            {
                var window = app.MainWindow;
                window.FindButton("None").Invoke();
                var contentMatrix = window.FindTextBlock("ContentMatrix");
                var image         = window.FindFirstDescendant(ControlType.Image);
                var topLeft       = image.Bounds.TopLeft();
                Mouse.Position = topLeft;
                Assert.AreEqual("Identity", contentMatrix.Text);

                Mouse.Scroll(1);
                app.WaitWhileBusy();
                app.WaitWhileBusy();
                var matrix = Matrix.Parse(contentMatrix.Text);
                Assert.AreEqual(1.05, matrix.M11, 1E-3);
                Assert.AreEqual(1.05, matrix.M22, 1E-3);
                Assert.AreEqual(0, matrix.OffsetX, 1E-2);
                Assert.AreEqual(0, matrix.OffsetY, 1E-2);
            }
        }
예제 #14
0
        public void ZoomUniform()
        {
            using (var app = Application.AttachOrLaunch("Gu.Wpf.Geometry.Demo.exe", WindowName))
            {
                var window        = app.MainWindow;
                var renderSize    = window.FindTextBlock("Size");
                var contentMatrix = window.FindTextBlock("ContentMatrix");

                var zoomButton = window.FindButton("Uniform");
                Assert.AreEqual(true, zoomButton.IsEnabled);
                zoomButton.Click();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("0.6225,0,0,0.6225,99.625,-1.4210854715202E-14", contentMatrix.Text);

                window.FindButton("None").Click();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("Identity", contentMatrix.Text);

                Assert.AreEqual(true, zoomButton.IsEnabled);
                zoomButton.Click();
                Assert.AreEqual("386, 249", renderSize.Text);
                Assert.AreEqual("0.6225,0,0,0.6225,99.625,-1.4210854715202E-14", contentMatrix.Text);
            }
        }