public void MoveStartupFile() { using (var app = new VisualStudioApp()) { var project = app.OpenProject(@"TestData\NodejsProjectData\MoveStartupFile.sln"); using (new NodejsOptionHolder(NodejsPackage.Instance.GeneralOptionsPage, "ShowBrowserAndNodeLabels", false)) { var window = app.OpenSolutionExplorer(); // find server.js, send copy & paste, verify copy of file is there var server = window.WaitForItem("Solution 'MoveStartupFile' (1 project)", "HelloWorld", "server.js"); var folder = window.WaitForItem("Solution 'MoveStartupFile' (1 project)", "HelloWorld", "TestDir"); AutomationWrapper.Select(server); Keyboard.ControlX(); AutomationWrapper.Select(folder); Keyboard.ControlV(); Assert.AreNotEqual(null, window.WaitForItem("Solution 'MoveStartupFile' (1 project)", "HelloWorld", "TestDir", "server.js")); Assert.IsTrue(((string)project.Properties.Item("StartupFile").Value).EndsWith("TestDir\\server.js")); } } }
public void CrossProjectCutPaste() { using (var app = new VisualStudioApp()) { app.OpenProject(@"TestData\NodejsProjectData\HelloWorld2.sln", expectedProjects: 2); using (new NodejsOptionHolder(NodejsPackage.Instance.GeneralOptionsPage, "ShowBrowserAndNodeLabels", false)) { var window = app.OpenSolutionExplorer(); var folderNode = window.WaitForItem("Solution 'HelloWorld2' (2 projects)", "HelloWorld2", "TestFolder2"); AutomationWrapper.Select(folderNode); Keyboard.ControlX(); var projectNode = window.FindItem("Solution 'HelloWorld2' (2 projects)", "HelloWorld"); AutomationWrapper.Select(projectNode); Keyboard.ControlV(); Assert.AreNotEqual(null, window.WaitForItem("Solution 'HelloWorld2' (2 projects)", "HelloWorld", "TestFolder2")); Assert.AreEqual(null, window.WaitForItemRemoved("Solution 'HelloWorld2' (2 projects)", "HelloWorld2", "TestFolder2")); } } }
/// <summary> /// Moves one or more items in solution explorer using the keyboard to cut and paste. /// </summary> /// <param name="destination"></param> /// <param name="source"></param> private static void MoveByKeyboard(AutomationElement destination, params AutomationElement[] source) { AutomationWrapper.Select(source.First()); for (int i = 1; i < source.Length; i++) { AutomationWrapper.AddToSelection(source[i]); } Keyboard.ControlX(); AutomationWrapper.Select(destination); Keyboard.ControlV(); }
public void CutPaste() { using (var app = new VisualStudioApp()) { app.OpenProject(@"TestData\NodejsProjectData\HelloWorld2.sln", expectedProjects: 2); app.OpenSolutionExplorer(); var window = app.SolutionExplorerTreeView; var subItem = window.WaitForItem("Solution 'HelloWorld2' (2 projects)", "HelloWorld2", "TestFolder", "SubItem.js"); AutomationWrapper.Select(subItem); Keyboard.ControlX(); var projectNode = window.FindItem("Solution 'HelloWorld2' (2 projects)", "HelloWorld2"); AutomationWrapper.Select(projectNode); Keyboard.ControlV(); Assert.AreNotEqual(null, window.WaitForItem("Solution 'HelloWorld2' (2 projects)", "HelloWorld2", "SubItem.js")); Assert.AreEqual(null, window.WaitForItemRemoved("Solution 'HelloWorld2' (2 projects)", "HelloWorld2", "TestFolder", "SubItem.js")); } }
public void ControlX() { Keyboard.ControlX(); }