public void ImportSketchFromDxf()
        {
            string path = Path.GetFullPath(Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\Data\UITests\SourceData\ImportSketch.dxf"));

            TestDataGenerator.GenerateSketch(MainWindow);

            MainWindow.Ribbon.SelectGroup("Sketch");
            MainWindow.Ribbon.ClickButton("SketchExchange");
            var menu = new ContextMenuAdaptor(MainWindow);

            menu.ClickMenuItem("ImportFromFile");

            var fileDlg = new FileDialogAdaptor(MainWindow);

            fileDlg.SelectFileType("*.dxf");
            fileDlg.Load(path);
            Assert.IsFalse(FileDialogAdaptor.IsDialogOpen(MainWindow));

            var dlg = new WindowAdaptor(MainWindow, "ExchangerSettings");

            Assert.IsNotNull(dlg);
            dlg.ClickButton("Ok");
            Assert.IsFalse(WindowAdaptor.IsWindowOpen(MainWindow, "ExchangerSettings"));

            Assert.AreEqual(5, Pipe.GetValue <int>("$Sketch.Segments.Count"));
        }
        public void ExportSketchToSvg()
        {
            var path = Path.Combine(FileDialogAdaptor.GetTempPath(), "sketch.svg");

            TestDataGenerator.GenerateSketch(MainWindow);

            // Do Export
            MainWindow.Ribbon.SelectGroup("Sketch");
            MainWindow.Ribbon.ClickButton("SketchExchange");
            var menu = new ContextMenuAdaptor(MainWindow);

            menu.ClickMenuItem("ExportAllToFile");

            var fileDlg = new FileDialogAdaptor(MainWindow);

            fileDlg.SelectFileType("*.svg");
            fileDlg.Save(path, checkFile: false);
            Assert.IsFalse(FileDialogAdaptor.IsDialogOpen(MainWindow));

            var dlg = new WindowAdaptor(MainWindow, "ExchangerSettings");

            Assert.IsNotNull(dlg);
            dlg.ClickButton("Ok");
            Assert.IsFalse(WindowAdaptor.IsWindowOpen(MainWindow, "ExchangerSettings"));

            FileDialogAdaptor.CheckFileExists(path);
        }
예제 #3
0
        public void ConvertSegment()
        {
            MainWindow.Ribbon.SelectGroup("Model");
            MainWindow.Ribbon.ClickButton("CreateSketch");
            MainWindow.Ribbon.SelectGroup("Sketch");

            MainWindow.Ribbon.ClickButton("ConvertSegment");
            var menu = new ContextMenuAdaptor(MainWindow);

            Assert.IsFalse(menu.IsMenuItemEnabled("ConvertSegmentToBezier"));

            MainWindow.Ribbon.ClickButton("CreateLineSegment");
            MainWindow.Viewport.ClickRelative(0.4, 0.5);
            MainWindow.Viewport.ClickRelative(0.6, 0.5);

            // Enabled? Then click!
            MainWindow.Ribbon.ClickButton("ConvertSegment");
            menu = new ContextMenuAdaptor(MainWindow);
            Assert.IsTrue(menu.IsMenuItemEnabled("ConvertSegmentToBezier"));
            menu.ClickMenuItem("ConvertSegmentToBezier");

            Assert.AreEqual(4, Pipe.GetValue <int>("$Sketch.Points.Count"));
            MainWindow.Ribbon.ClickButton("ConvertSegment");
            menu = new ContextMenuAdaptor(MainWindow);
            Assert.IsFalse(menu.IsMenuItemEnabled("ConvertSegmentToBezier"));
        }
예제 #4
0
        public void RubberbandMode()
        {
            MainWindow.Ribbon.SelectTab("Edit");
            MainWindow.Ribbon.ClickButton("RubberbandMode");
            var menu = new ContextMenuAdaptor(MainWindow);

            menu.ClickMenuItem("RubberbandModeRectangle");
            Assert.AreEqual("Rectangle", Pipe.GetValue("$Context.EditorState.RubberbandSelectionMode"));

            MainWindow.Ribbon.ClickButton("RubberbandMode");
            menu = new ContextMenuAdaptor(MainWindow);
            menu.ClickMenuItem("RubberbandModeFreehand");
            Assert.AreEqual("Freehand", Pipe.GetValue("$Context.EditorState.RubberbandSelectionMode"));

            var boolState = Pipe.GetValue <bool>("$Context.EditorState.RubberbandIncludeTouched");

            MainWindow.Ribbon.ClickButton("RubberbandMode");
            menu = new ContextMenuAdaptor(MainWindow);
            menu.ClickMenuItem("RubberbandIncludeTouched");
            Assert.AreEqual(!boolState, Pipe.GetValue <bool>("$Context.EditorState.RubberbandIncludeTouched"));
            MainWindow.Ribbon.ClickButton("RubberbandMode");
            menu = new ContextMenuAdaptor(MainWindow);
            menu.ClickMenuItem("RubberbandIncludeTouched");
            Assert.AreEqual(boolState, Pipe.GetValue <bool>("$Context.EditorState.RubberbandIncludeTouched"));
        }
예제 #5
0
        public void EscapeClosesContextMenu()
        {
            MainWindow.Ribbon.SelectTab("Model");
            MainWindow.Ribbon.ClickButton("CreateSphere");
            Assume.That(MainWindow.Ribbon.IsButtonChecked("CreateSphere"));
            MainWindow.Viewport.ClickRelative(0.5, 0.5);

            MainWindow.Viewport.ClickRelative(0.4, 0.4, MouseButton.Right);
            Assert.IsTrue(ContextMenuAdaptor.IsContextMenuOpen(MainWindow, "ViewportContextMenu"));

            Pipe.TypeKey(VirtualKeyShort.ESCAPE);
            Thread.Sleep(1000); // Allow fadeout
            Assert.IsFalse(ContextMenuAdaptor.IsContextMenuOpen(MainWindow, "ViewportContextMenu"));
            Assert.That(MainWindow.Ribbon.IsButtonChecked("CreateSphere"));

            // Select button prior to ESC
            MainWindow.Viewport.ClickRelative(0.4, 0.4, MouseButton.Right);
            var menu = new ContextMenuAdaptor(MainWindow, "ViewportContextMenu");

            menu.ClickButton("SnappingEnabled");
            Pipe.TypeKey(VirtualKeyShort.ESCAPE);
            Thread.Sleep(1000); // Allow fadeout
            Assert.IsFalse(ContextMenuAdaptor.IsContextMenuOpen(MainWindow, "ViewportContextMenu"));
            Assert.That(MainWindow.Ribbon.IsButtonChecked("CreateSphere"));
        }
예제 #6
0
        public void DynamicContextMenuItems()
        {
            TestDataGenerator.GenerateBox(MainWindow);

            MainWindow.Viewport.ClickRelative(0.4, 0.4, MouseButton.Right);
            Assert.IsTrue(ContextMenuAdaptor.IsContextMenuOpen(MainWindow, "ViewportContextMenu"));
            var menu = new ContextMenuAdaptor(MainWindow, "ViewportContextMenu");

            menu.ClickMenuItem("Transform Entity");

            MainWindow.Ribbon.SelectTab("Edit");
            Assert.IsTrue(MainWindow.Ribbon.IsButtonChecked("TransformShape"));
        }
        public void GridType()
        {
            MainWindow.Ribbon.SelectGroup("Edit");
            MainWindow.Ribbon.OpenSplitButtonMenu("ShowGrid");
            var menu = new ContextMenuAdaptor(MainWindow);

            menu.ClickMenuItem("CircGrid");
            Assert.AreEqual("Circular", Pipe.GetValue("$Context.WorkspaceController.Workspace.GridType"));

            MainWindow.Ribbon.OpenSplitButtonMenu("ShowGrid");
            menu = new ContextMenuAdaptor(MainWindow);
            menu.ClickMenuItem("RectGrid");
            Assert.AreEqual("Rectangular", Pipe.GetValue("$Context.WorkspaceController.Workspace.GridType"));
        }
        public void ScriptAddToMru()
        {
            MainWindow.Ribbon.SelectGroup("Toolbox");
            MainWindow.Ribbon.ClickButton("RunScript");
            var fileDlg = new FileDialogAdaptor(MainWindow);

            Assert.That(fileDlg.Title, Is.EqualTo("Open Script..."));
            fileDlg.Load(Path.Combine(TestContext.CurrentContext.TestDirectory, @"..\..\Data\UnitTests\SourceData\Scripts\CreateBoxBody.csx"));
            Assert.AreEqual(1, Pipe.GetValue <int>("$Context.Document.ChildCount"));

            MainWindow.Ribbon.OpenSplitButtonMenu("RunScript");
            Assert.IsTrue(ContextMenuAdaptor.IsContextMenuOpen(MainWindow));
            var context = new ContextMenuAdaptor(MainWindow);

            context.ClickMenuItem("CreateBoxBody");
            Assert.AreEqual(2, Pipe.GetValue <int>("$Context.Document.ChildCount"));
        }
        public void ImportSketchCancelFileDlg()
        {
            TestDataGenerator.GenerateSketch(MainWindow);

            MainWindow.Ribbon.SelectGroup("Sketch");
            MainWindow.Ribbon.ClickButton("SketchExchange");
            var menu = new ContextMenuAdaptor(MainWindow);

            menu.ClickMenuItem("ImportFromFile");

            var fileDlg = new FileDialogAdaptor(MainWindow);

            fileDlg.Cancel();
            Assert.IsFalse(FileDialogAdaptor.IsDialogOpen(MainWindow));
            Assert.IsFalse(WindowAdaptor.IsWindowOpen(MainWindow, "ExchangerSettings"));

            Assert.AreEqual(4, Pipe.GetValue <int>("$Sketch.Segments.Count"));
        }
예제 #10
0
        public void CreateSketchOnFace()
        {
            TestDataGenerator.GenerateBox(MainWindow);

            MainWindow.Ribbon.SelectGroup("Model");
            MainWindow.Ribbon.OpenSplitButtonMenu("CreateSketch");
            var contextMenu = new ContextMenuAdaptor(MainWindow);

            contextMenu.ClickMenuItem("CreateSketchInteractive");

            // Button lit
            Assert.IsTrue(MainWindow.Ribbon.IsButtonChecked("CreateSketch"));

            // CreateSketchTool running
            Assert.AreEqual("CreateSketchTool", Pipe.GetValue <string>("$Context.EditorState.ActiveTool"));

            // Select
            MainWindow.Viewport.ClickRelative(0.5, 0.5);

            // Button unlit
            MainWindow.Ribbon.SelectGroup("Model");
            Assert.IsFalse(MainWindow.Ribbon.IsButtonChecked("CreateSketch"));

            // Body and shape created
            var bodyPanel = MainWindow.PropertyView.FindPanelByClass("BodyPropertyPanel");

            Assert.NotNull(bodyPanel);
            Assert.AreEqual("Sketch_1", bodyPanel.GetValue <string>("BodyName"));

            // All panels shown
            var sketchPanel = MainWindow.PropertyView.FindPanelByClass("SketchPropertyPanel");

            Assert.That(sketchPanel, Is.Not.Null);
            sketchPanel = MainWindow.PropertyView.FindPanelByClass("SketchPointsPropertyPanel");
            Assert.That(sketchPanel, Is.Not.Null);
            sketchPanel = MainWindow.PropertyView.FindPanelByClass("SketchSegmentsPropertyPanel");
            Assert.That(sketchPanel, Is.Not.Null);
            sketchPanel = MainWindow.PropertyView.FindPanelByClass("SketchConstraintsPropertyPanel");
            Assert.That(sketchPanel, Is.Not.Null);

            // SketchEditTool running
            Assert.AreEqual("SketchEditorTool", Pipe.GetValue <string>("$Context.EditorState.ActiveTool"));
        }
예제 #11
0
        public void SelectColorFromRibbon()
        {
            MainWindow.Ribbon.SelectGroup("Edit");
            MainWindow.Ribbon.ClickButton("ActiveLayerVisual");
            Assert.IsTrue(ContextMenuAdaptor.IsContextMenuOpen(MainWindow, "LayerVisualPanel"));
            var visualPanel = new ContextMenuAdaptor(MainWindow, "LayerVisualPanel");

            visualPanel.ExpandComboBox("ColorPicker");
            Assert.IsTrue(ContextMenuAdaptor.IsContextMenuOpen(MainWindow, "ColorPickerPopup"));
            var colorPicker = new ContextMenuAdaptor(MainWindow, "ColorPickerPopup");
            var colors      = colorPicker.GetListBoxItems("ColorList").ToList();

            Assert.Less(10, colors.Count());
            colorPicker.SelectListBoxItem("ColorList", 10);
            var color      = new Color(colors[10].Split(',')[2]);
            var layerValue = Pipe.GetValue("$Context.Layers.ActiveLayer.Color");

            Assert.AreEqual(color.ToString(), layerValue);
        }
        public void ExportSketchCancelFileDlg()
        {
            var path = Path.Combine(FileDialogAdaptor.GetTempPath(), "sketch.svg");

            System.IO.File.Delete(path);
            TestDataGenerator.GenerateSketch(MainWindow);

            // Do Export
            MainWindow.Ribbon.SelectGroup("Sketch");
            MainWindow.Ribbon.ClickButton("SketchExchange");
            var menu = new ContextMenuAdaptor(MainWindow);

            menu.ClickMenuItem("ExportAllToFile");

            var fileDlg = new FileDialogAdaptor(MainWindow);

            fileDlg.Cancel();
            Assert.IsFalse(FileDialogAdaptor.IsDialogOpen(MainWindow));
            Assert.IsFalse(WindowAdaptor.IsWindowOpen(MainWindow, "ExchangerSettings"));

            Assert.IsFalse(System.IO.File.Exists(path));
        }
예제 #13
0
        public void CreateSketchOnPlane()
        {
            // Start tool
            MainWindow.Ribbon.SelectTab("Model");
            MainWindow.Ribbon.ClickButton("CreateDatumPlane");

            // Select as WorkingPlane
            MainWindow.Viewport.ClickRelative(0.5, 0.5, MouseButton.Right, false);
            Assume.That(ContextMenuAdaptor.IsContextMenuOpen(MainWindow, "ViewportContextMenu"));
            var contextMenu = new ContextMenuAdaptor(MainWindow, "ViewportContextMenu");

            contextMenu.ClickMenuItem("Set as Working Plane");

            // Create sketch on new plane
            MainWindow.Ribbon.ClickButton("CreateSketch");
            Assert.AreEqual("SketchEditorTool", Pipe.GetValue <string>("$Context.EditorState.ActiveTool"));

            // Exit sketch editor
            Pipe.TypeKey(VirtualKeyShort.ESCAPE);
            Assert.AreEqual("", Pipe.GetValue <string>("$Context.EditorState.ActiveTool"));

            // Let it crash
            MainWindow.Viewport.ClickRelative(0.5, 0.5, MouseButton.Right, false);
        }