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"); } }
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"); }
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"); }
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")); }
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")); }
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")); }
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"); } }
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")); }
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")); }