Exemple #1
0
        public void CopyFolderInToSelf(PythonVisualStudioApp app)
        {
            app.OpenProject(@"TestData\HelloWorld2.sln", expectedProjects: 2);

            app.OpenSolutionExplorer();
            var window = app.SolutionExplorerTreeView;

            var folder = window.FindItem("Solution 'HelloWorld2' (2 of 2 projects)", "HelloWorld2", "TestFolder");

            AutomationWrapper.Select(folder);
            Keyboard.ControlC();

            try {
                // Remove the destination folder in case a previous test has
                // created it.
                Directory.Delete(TestData.GetPath(@"TestData\HelloWorld2\TestFolder - Copy"), true);
            } catch {
            }

            var subItem = window.FindItem("Solution 'HelloWorld2' (2 of 2 projects)", "HelloWorld2", "TestFolder", "SubItem.py");

            AutomationWrapper.Select(subItem);
            Keyboard.ControlV();

            var item = window.WaitForItem("Solution 'HelloWorld2' (2 of 2 projects)", "HelloWorld2", "TestFolder - Copy", "SubItem.py");

            if (item == null)
            {
                AutomationWrapper.DumpElement(window.Element);
                Assert.Fail("Did not find TestFolder - Copy");
            }
        }
Exemple #2
0
        public void AddNewFolderNested(PythonVisualStudioApp app)
        {
            var project = app.OpenProject(@"TestData\HelloWorld.sln");

            app.OpenSolutionExplorer().SelectProject(project);

            app.ExecuteCommand("Project.NewFolder");
            Keyboard.Type("FolderX");
            Keyboard.PressAndRelease(Key.Enter);

            var folderNode = app.OpenSolutionExplorer().WaitForChildOfProject(project, "FolderX");

            folderNode.Select();

            app.ExecuteCommand("Project.NewFolder");
            Keyboard.Type("FolderY");
            Keyboard.PressAndRelease(Key.Enter);

            var innerFolderNode = app.OpenSolutionExplorer().WaitForChildOfProject(project, "FolderX", "FolderY");

            innerFolderNode.Select();

            var newItem = project.ProjectItems.Item("FolderX").ProjectItems.Item("FolderY").ProjectItems.AddFromFile(
                TestData.GetPath(@"TestData\DebuggerProject\BreakpointTest.py")
                );

            app.OpenSolutionExplorer().WaitForChildOfProject(project, "FolderX", "FolderY", "BreakpointTest.py");
        }
Exemple #3
0
        public void AddNewFolder(PythonVisualStudioApp app)
        {
            var project = app.OpenProject(@"TestData\HelloWorld.sln");

            app.OpenSolutionExplorer().SelectProject(project);

            app.ExecuteCommand("Project.NewFolder");
            Keyboard.Type("MyNewFolder");
            Keyboard.PressAndRelease(Key.Enter);

            app.OpenSolutionExplorer().WaitForChildOfProject(project, "MyNewFolder");
        }
Exemple #4
0
        public void DjangoIncludeInProject(PythonVisualStudioApp app)
        {
            app.OpenProject(@"TestData\DjangoApplication.sln");

            app.OpenSolutionExplorer();
            var window = app.SolutionExplorerTreeView;

            app.Dte.ExecuteCommand("Project.ShowAllFiles"); // start showing all

            var folderNode = window.WaitForItem("Solution 'DjangoApplication' (1 of 1 project)", "DjangoApplication", "Folder");

            Mouse.MoveTo(folderNode.GetClickablePoint());
            Mouse.Click(MouseButton.Right);

            Keyboard.Type("j");                             // Exclude from Project
            app.Dte.ExecuteCommand("Project.ShowAllFiles"); // stop showing all

            Assert.IsNull(window.WaitForItemRemoved("Solution 'DjangoApplication' (1 of 1 project)", "DjangoApplication", "notinproject.py"));
            Assert.IsNotNull(window.WaitForItem("Solution 'DjangoApplication' (1 of 1 project)", "DjangoApplication", "Folder", "test.py"));
        }
Exemple #5
0
        public void DjangoMultiSelectContextMenu(PythonVisualStudioApp app)
        {
            app.OpenProject(@"TestData\DjangoApplication.sln");

            app.OpenSolutionExplorer();
            var window = app.SolutionExplorerTreeView;

            var manageNode = window.FindItem("Solution 'DjangoApplication' (1 of 1 project)", "DjangoApplication", "manage.py");

            Mouse.MoveTo(manageNode.GetClickablePoint());
            Mouse.Click(MouseButton.Left);

            Keyboard.Press(Key.LeftShift);
            Keyboard.PressAndRelease(Key.Down);
            Keyboard.Release(Key.LeftShift);

            Mouse.MoveTo(manageNode.GetClickablePoint());
            Mouse.Click(MouseButton.Right);

            Keyboard.Type("j"); // Exclude from Project
            Assert.IsNull(window.WaitForItemRemoved("Solution 'DjangoApplication' (1 of 1 project)", "DjangoApplication", "manage.py"));
        }
Exemple #6
0
        public void RenameItemsTest(PythonVisualStudioApp app)
        {
            var project = app.OpenProject(@"TestData\RenameItemsTestUI.sln");

            var window = app.OpenSolutionExplorer();

            // find Program.py, send copy & paste, verify copy of file is there
            var node = window.FindChildOfProject(project, "Program.py");

            // rename once, cancel renaming to existing file....
            node.Select();
            Keyboard.PressAndRelease(Key.F2);
            System.Threading.Thread.Sleep(100);
            Keyboard.PressAndRelease(Key.A, Key.LeftCtrl);

            Keyboard.Type("NewName.txt");
            System.Threading.Thread.Sleep(100);
            Keyboard.PressAndRelease(Key.Enter);

            IntPtr dialog = app.WaitForDialog();

            app.CheckMessageBox(MessageBoxButton.Cancel, "file name extension");

            // rename again, don't cancel...
            node.Select();
            Keyboard.PressAndRelease(Key.F2);
            System.Threading.Thread.Sleep(100);
            Keyboard.PressAndRelease(Key.A, Key.LeftCtrl);

            Keyboard.Type("NewName.txt");
            System.Threading.Thread.Sleep(100);
            Keyboard.PressAndRelease(Key.Enter);

            dialog = app.WaitForDialog();

            app.CheckMessageBox(MessageBoxButton.Yes, "file name extension");

            Assert.IsNotNull(window.WaitForChildOfProject(project, "NewName.txt"));
        }
Exemple #7
0
        public void MultiSelectCopyAndPaste(PythonVisualStudioApp app)
        {
            app.OpenProject(@"TestData\DebuggerProject.sln");

            app.OpenSolutionExplorer();
            var window = app.SolutionExplorerTreeView;

            var  files       = new[] { "BreakAllTest.py", "BreakpointTest.py", "BreakpointTest2.py" };
            bool anySelected = false;

            foreach (var f in files)
            {
                var node = window.FindItem("Solution 'DebuggerProject' (1 of 1 project)", "DebuggerProject", f);
                Assert.IsNotNull(node, f + " not found in DebuggerProject");
                if (anySelected)
                {
                    ((SelectionItemPattern)node.GetCurrentPattern(SelectionItemPattern.Pattern)).AddToSelection();
                }
                else
                {
                    node.Select();
                    anySelected = true;
                }
            }
            Keyboard.ControlC();

            var projectNode = window.FindItem("Solution 'DebuggerProject' (1 of 1 project)", "DebuggerProject");

            AutomationWrapper.Select(projectNode);
            Keyboard.ControlV();

            foreach (var f in files.Select(f => f.Remove(f.LastIndexOf('.')) + " - Copy" + f.Substring(f.LastIndexOf('.'))))
            {
                Assert.IsNotNull(
                    window.WaitForItem("Solution 'DebuggerProject' (1 of 1 project)", "DebuggerProject", f),
                    f + " not found after copying");
            }
        }
Exemple #8
0
        public void RenameProjectToExisting(PythonVisualStudioApp app)
        {
            var project = app.OpenProject(@"TestData\RenameProjectTestUI.sln");

            app.OpenSolutionExplorer();
            var window = app.SolutionExplorerTreeView;

            // find Program.py, send copy & paste, verify copy of file is there
            var projectNode = window.FindItem("Solution 'RenameProjectTestUI' (1 of 1 project)", "HelloWorld");

            // rename once, cancel renaming to existing file....
            AutomationWrapper.Select(projectNode);
            Keyboard.PressAndRelease(Key.F2);
            System.Threading.Thread.Sleep(100);

            Keyboard.Type("HelloWorldExisting");
            System.Threading.Thread.Sleep(100);
            Keyboard.PressAndRelease(Key.Enter);

            IntPtr dialog = app.WaitForDialog();

            app.CheckMessageBox("HelloWorldExisting.pyproj", "overwrite");

            // rename again, don't cancel...
            AutomationWrapper.Select(projectNode);
            Keyboard.PressAndRelease(Key.F2);
            System.Threading.Thread.Sleep(100);

            Keyboard.Type("HelloWorldExisting");
            System.Threading.Thread.Sleep(100);
            Keyboard.PressAndRelease(Key.Enter);

            dialog = app.WaitForDialog();

            app.CheckMessageBox(MessageBoxButton.Yes, "HelloWorldExisting.pyproj", "overwrite");

            Assert.IsNotNull(window.WaitForItem("Solution 'RenameProjectTestUI' (1 of 1 project)", "HelloWorldExisting"));
        }
Exemple #9
0
        public void CopyPasteFile(PythonVisualStudioApp app)
        {
            var project = app.OpenProject(@"TestData\HelloWorld.sln");

            app.OpenSolutionExplorer();
            var window = app.SolutionExplorerTreeView;

            // find Program.py, send copy & paste, verify copy of file is there
            var programPy = window.FindItem("Solution 'HelloWorld' (1 of 1 project)", "HelloWorld", "Program.py");

            AutomationWrapper.Select(programPy);

            Keyboard.ControlC();
            Keyboard.ControlV();

            Assert.IsNotNull(window.WaitForItem("Solution 'HelloWorld' (1 of 1 project)", "HelloWorld", "Program - Copy.py"));

            AutomationWrapper.Select(programPy);
            Keyboard.ControlC();
            Keyboard.ControlV();

            Assert.IsNotNull(window.WaitForItem("Solution 'HelloWorld' (1 of 1 project)", "HelloWorld", "Program - Copy (2).py"));
        }