public void DragLeaveFolderTest() { using (var app = new PythonVisualStudioApp()) { app.OpenProject(@"TestData\DragDropTest.sln"); app.OpenSolutionExplorer(); var window = app.SolutionExplorerTreeView; var folder = window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder2", "SubFolder"); var project = window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest"); // click on SubItem.py var point = folder.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); // move to project and hover var projectPoint = project.GetClickablePoint(); Mouse.MoveTo(projectPoint); System.Threading.Thread.Sleep(500); // move back and release Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); Assert.IsNotNull(window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder2", "SubFolder")); } }
public void DragLeaveTest() { using (var app = new VisualStudioApp()) { app.OpenProject(@"TestData\NodejsProjectData\DragDropTest.sln"); app.OpenSolutionExplorer(); var window = app.SolutionExplorerTreeView; var item = window.WaitForItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder2", "SubItem.js"); var project = window.WaitForItem("Solution 'DragDropTest' (1 project)", "DragDropTest"); // click on SubItem.js var point = item.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); // move to project and hover var projectPoint = project.GetClickablePoint(); Mouse.MoveTo(projectPoint); // move back and release Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); Assert.AreNotEqual(null, window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder2", "SubItem.js")); } }
public void DragDropTest() { using (var app = new VisualStudioApp()) { app.OpenProject(@"TestData\DragDropRelocatedTest.sln"); app.OpenSolutionExplorer(); var window = app.SolutionExplorerTreeView; var folder = window.FindItem("Solution 'DragDropRelocatedTest' (1 project)", "DragDropTest", "TestFolder", "SubItem.py"); var point = folder.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); var projectItem = window.FindItem("Solution 'DragDropRelocatedTest' (1 project)", "DragDropTest"); point = projectItem.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); Assert.AreNotEqual(null, window.WaitForItem("Solution 'DragDropRelocatedTest' (1 project)", "DragDropTest", "SubItem.py")); app.Dte.Solution.Close(true); // Ensure file was moved and the path was updated correctly. var project = app.OpenProject(@"TestData\DragDropRelocatedTest.sln"); foreach (var item in project.ProjectItems.OfType <OAFileItem>()) { Assert.IsTrue(File.Exists((string)item.Properties.Item("FullPath").Value), (string)item.Properties.Item("FullPath").Value); } } }
public void DragLeaveFolderTest() { using (var app = new VisualStudioApp()) { app.OpenProject(@"TestData\NodejsProjectData\DragDropTest.sln"); using (new NodejsOptionHolder(NodejsPackage.Instance.GeneralOptionsPage, "ShowBrowserAndNodeLabels", false)) { var window = app.OpenSolutionExplorer(); var folder = window.WaitForItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder2", "SubFolder"); var project = window.WaitForItem("Solution 'DragDropTest' (1 project)", "DragDropTest"); // click on SubItem.js var point = folder.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); // move to project and hover var projectPoint = project.GetClickablePoint(); Mouse.MoveTo(projectPoint); // move back and release Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); Assert.AreNotEqual(null, window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder2", "SubFolder")); } } }
public void MultiSelectCopyAndPaste() { using (var app = new VisualStudioApp()) { app.OpenProject(@"TestData\NodejsProjectData\MultiSelectCopyAndPaste.sln"); using (new NodejsOptionHolder(NodejsPackage.Instance.GeneralOptionsPage, "ShowBrowserAndNodeLabels", false)) { var window = app.OpenSolutionExplorer(); var folderNode = window.WaitForItem("Solution 'MultiSelectCopyAndPaste' (1 project)", "MultiSelectCopyAndPaste", "server.js"); Mouse.MoveTo(folderNode.GetClickablePoint()); Mouse.Click(); Keyboard.Press(Key.LeftShift); Keyboard.PressAndRelease(Key.Down); Keyboard.PressAndRelease(Key.Down); Keyboard.Release(Key.LeftShift); Keyboard.ControlC(); var projectNode = window.WaitForItem("Solution 'MultiSelectCopyAndPaste' (1 project)", "MultiSelectCopyAndPaste"); AutomationWrapper.Select(projectNode); Keyboard.ControlV(); Assert.AreNotEqual(null, window.WaitForItem("Solution 'MultiSelectCopyAndPaste' (1 project)", "MultiSelectCopyAndPaste", "server - Copy.js")); Assert.AreNotEqual(null, window.WaitForItem("Solution 'MultiSelectCopyAndPaste' (1 project)", "MultiSelectCopyAndPaste", "server2 - Copy.js")); Assert.AreNotEqual(null, window.WaitForItem("Solution 'MultiSelectCopyAndPaste' (1 project)", "MultiSelectCopyAndPaste", "server3 - Copy.js")); } } }
// Currently Fails: https://pytools.codeplex.com/workitem/2609 public void MoveFolderWithItem() { using (var app = new VisualStudioApp()) { // close any projects before switching source control... app.Dte.Solution.Close(); app.SelectSourceControlProvider("Test Source Provider"); ExpectSourceControl(); foreach (var projectType in ProjectTypes) { var testDef = new ProjectDefinition("SourceControl", projectType, PropertyGroup( Property("SccProjectName", "HelloWorld"), Property("SccLocalPath", "LocalPath"), Property("SccAuxPath", "AuxPath"), Property("SccProvider", "TestProvider") ), ItemGroup( Folder("Fob"), Folder("Fob\\Oar"), Compile("Program"), Compile("Fob\\Oar\\Quox") ) ); using (var solution = testDef.Generate()) { TestSccProvider.DocumentEvents.Clear(); var project = app.OpenProject(solution.Filename); var window = app.OpenSolutionExplorer(); var folder = window.WaitForItem("Solution 'SourceControl' (1 project)", "SourceControl", "Fob", "Oar"); var point = folder.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); var destFolder = window.WaitForItem("Solution 'SourceControl' (1 project)", "SourceControl"); Mouse.MoveTo(destFolder.GetClickablePoint()); Mouse.Up(MouseButton.Left); window.AssertFileExists(Path.GetDirectoryName(solution.Filename), "Solution 'SourceControl' (1 project)", "SourceControl", "Oar", "Quox" + projectType.CodeExtension); var projectDir = Path.GetDirectoryName(project.FullName); AssertDocumentEvents(projectDir, OnQueryRenameFiles(projectType.Code("Fob\\Oar\\Quox"), projectType.Code("Oar\\Quox"), VSQUERYRENAMEFILEFLAGS_NoFlags), OnQueryRenameFiles("Fob\\Oar\\", "Oar", VSQUERYRENAMEFILEFLAGS_Directory), OnAfterRenameFiles(projectType.Code("Fob\\Oar\\Quox"), projectType.Code("Oar\\Quox"), VSRENAMEFILEFLAGS_NoFlags), OnAfterRenameFiles("Fob\\Oar\\", "Oar", VSRENAMEFILEFLAGS_Directory) ); } } } }
/// <summary> /// Selects the provided items with the mouse preparing for a drag and drop /// </summary> /// <param name="source"></param> private static void SelectItemsForDragAndDrop(AutomationElement[] source) { AutomationWrapper.Select(source.First()); for (int i = 1; i < source.Length; i++) { AutomationWrapper.AddToSelection(source[i]); } Mouse.MoveTo(source.Last().GetClickablePoint()); Mouse.Down(MouseButton.Left); }
public void DragDropFileToContainingFolderTest(PythonVisualStudioApp app) { var project = app.OpenProject(@"TestData\DragDropTest.sln"); var window = app.OpenSolutionExplorer(); Mouse.MoveTo(window.FindChildOfProject(project, "TestFolder", "SubItem2.py").Element.GetClickablePoint()); Mouse.Down(MouseButton.Left); Mouse.MoveTo(window.FindChildOfProject(project, "TestFolder").Element.GetClickablePoint()); Mouse.Up(MouseButton.Left); using (var dlg = AutomationDialog.WaitForDialog(app)) { } window.WaitForChildOfProject(project, "TestFolder", "SubItem2.py"); }
/// <summary> /// Moves one or more items in solution explorer to the destination using the mouse. /// </summary> private static void MoveByMouse(AutomationElement destination, params AutomationElement[] source) { SelectItemsForDragAndDrop(source); try { try { Keyboard.Press(Key.LeftShift); Mouse.MoveTo(destination.GetClickablePoint()); } finally { Mouse.Up(MouseButton.Left); } } finally { Keyboard.Release(Key.LeftShift); } }
public void DragDropTest(PythonVisualStudioApp app) { var project = app.OpenProject(@"TestData\DragDropTest.sln"); var window = app.OpenSolutionExplorer(); var folder = window.FindChildOfProject(project, "TestFolder", "SubItem.py"); var point = folder.Element.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); point = window.FindChildOfProject(project).Element.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); window.WaitForChildOfProject(project, "SubItem.py"); }
public void DragDropTest() { using (var app = new PythonVisualStudioApp()) { app.OpenProject(@"TestData\DragDropTest.sln"); var window = app.OpenSolutionExplorer(); var folder = window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder", "SubItem.py"); var point = folder.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); var project = window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest"); point = project.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); Assert.IsNotNull(window.WaitForItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "SubItem.py")); } }
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 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 project)", "DjangoApplication", "notinproject.py")); Assert.IsNotNull(window.WaitForItem("Solution 'DjangoApplication' (1 project)", "DjangoApplication", "Folder", "test.py")); }
public void DragDropFileToContainingFolderTest() { using (var app = new VisualStudioApp()) { app.OpenProject(@"TestData\NodejsProjectData\DragDropTest.sln"); app.OpenSolutionExplorer(); var window = app.SolutionExplorerTreeView; var folder = window.WaitForItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder", "SubItem2.js"); var point = folder.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); var project = window.FindItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder"); point = project.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); Assert.AreNotEqual(null, window.WaitForItem("Solution 'DragDropTest' (1 project)", "DragDropTest", "TestFolder", "SubItem2.js")); } }
public void DragLeaveFolderTest(PythonVisualStudioApp app) { var project = app.OpenProject(@"TestData\DragDropTest.sln"); var window = app.OpenSolutionExplorer(); // click on SubItem.py var point = window.FindChildOfProject(project, "TestFolder2", "SubFolder").Element.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); // move to project and hover Mouse.MoveTo(window.FindChildOfProject(project).Element.GetClickablePoint()); System.Threading.Thread.Sleep(500); // move back and release Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); window.WaitForChildOfProject(project, "TestFolder2", "SubFolder"); }
public void DjangoMultiSelectContextMenu(PythonVisualStudioApp app) { app.OpenProject(@"TestData\DjangoApplication.sln"); app.OpenSolutionExplorer(); var window = app.SolutionExplorerTreeView; var manageNode = window.FindItem("Solution 'DjangoApplication' (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 project)", "DjangoApplication", "manage.py")); }
public void DragDropRelocatedTest(VisualStudioApp app) { var sln = app.CopyProjectForTest(@"TestData\DragDropRelocatedTest.sln"); var slnDir = PathUtils.GetParent(sln); FileUtils.CopyDirectory(TestData.GetPath("TestData", "DragDropRelocatedTest"), Path.Combine(slnDir, "DragDropRelocatedTest")); app.OpenProject(sln); app.OpenSolutionExplorer(); var window = app.SolutionExplorerTreeView; var folder = window.FindItem("Solution 'DragDropRelocatedTest' (1 project)", "DragDropTest", "TestFolder", "SubItem.py"); var point = folder.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Down(MouseButton.Left); var projectItem = window.FindItem("Solution 'DragDropRelocatedTest' (1 project)", "DragDropTest"); point = projectItem.GetClickablePoint(); Mouse.MoveTo(point); Mouse.Up(MouseButton.Left); using (var dlg = AutomationDialog.WaitForDialog(app)) { dlg.OK(); } Assert.IsNotNull(window.WaitForItem("Solution 'DragDropRelocatedTest' (1 project)", "DragDropTest", "SubItem.py")); app.Dte.Solution.Close(true); // Ensure file was moved and the path was updated correctly. var project = app.OpenProject(sln); foreach (var item in project.ProjectItems.OfType <OAFileItem>()) { Assert.IsTrue(File.Exists((string)item.Properties.Item("FullPath").Value), (string)item.Properties.Item("FullPath").Value); } }
public void DragOntoThis(Key modifier, params ITreeNode[] source) { SelectItemsForDragAndDrop(source); try { try { if (modifier != Key.None) { Keyboard.Press(modifier); } var dest = Element; if (source.Length == 1 && source[0] == this) { // dragging onto ourself, the mouse needs to move var point = dest.GetClickablePoint(); Mouse.MoveTo(new Point(point.X + 1, point.Y + 1)); } else { Mouse.MoveTo(dest.GetClickablePoint()); } } finally { Mouse.Up(MouseButton.Left); } } finally { if (modifier != Key.None) { Keyboard.Release(modifier); } } }