Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManish Sinha <manish.sinha@xamarin.com>2015-07-24 18:09:15 +0300
committerManish Sinha <manish.sinha@xamarin.com>2015-07-24 23:07:52 +0300
commit0e8c6072df5f15b20b3c36911a0a214dd4334175 (patch)
tree12f8f7b4b684d41b89742bb5238efbf9c98e1d7d /main/tests/UserInterfaceTests/DialogTests
parent7115b8963ac774beda184032fe41841cc6d7563f (diff)
[UITests] When the NuGet package is updated, the Local Copy flag should be preserved
Also some fixes to StashManage
Diffstat (limited to 'main/tests/UserInterfaceTests/DialogTests')
-rw-r--r--main/tests/UserInterfaceTests/DialogTests/NuGetDialogTests.cs77
1 files changed, 75 insertions, 2 deletions
diff --git a/main/tests/UserInterfaceTests/DialogTests/NuGetDialogTests.cs b/main/tests/UserInterfaceTests/DialogTests/NuGetDialogTests.cs
index 79769714f7..0e0f82e5aa 100644
--- a/main/tests/UserInterfaceTests/DialogTests/NuGetDialogTests.cs
+++ b/main/tests/UserInterfaceTests/DialogTests/NuGetDialogTests.cs
@@ -25,6 +25,10 @@
// THE SOFTWARE.
using NUnit.Framework;
+using MonoDevelop.Ide.Commands;
+using MonoDevelop.Core;
+using System.IO;
+using System.Xml;
namespace UserInterfaceTests
{
@@ -56,7 +60,7 @@ namespace UserInterfaceTests
Session.WaitForElement (c => c.Window ().Marked ("MonoDevelop.Ide.Gui.DefaultWorkbench").Property ("TabControl.CurrentTab.Text", "readme.txt"));
}
- [Test, Category ("NuGetUpgrade")]
+ [Test]
public void TestReadmeTxtUpgradeOpens ()
{
CreateProject ();
@@ -66,7 +70,7 @@ namespace UserInterfaceTests
IsPreRelease = true
}, TakeScreenShot);
Session.WaitForElement (c => c.Window ().Marked ("MonoDevelop.Ide.Gui.DefaultWorkbench").Property ("TabControl.CurrentTab.Text", "readme.txt"));
- Session.ExecuteCommand (MonoDevelop.Ide.Commands.FileCommands.CloseFile);
+ Session.ExecuteCommand (FileCommands.CloseFile);
Session.WaitForElement (IdeQuery.TextArea);
NuGetController.UpdatePackage (new NuGetPackageOptions {
PackageName = "RestSharp",
@@ -76,6 +80,75 @@ namespace UserInterfaceTests
Session.WaitForElement (c => c.Window ().Marked ("MonoDevelop.Ide.Gui.DefaultWorkbench").Property ("TabControl.CurrentTab.Text", "readme.txt"));
}
+ [Test, Description ("When a NuGet package is updated, the 'Local Copy' value should be preserved")]
+ public void TestLocalCopyPreservedUpdate ()
+ {
+ var templateOptions = new TemplateSelectionOptions {
+ CategoryRoot = OtherCategoryRoot,
+ Category = ".NET",
+ TemplateKindRoot = GeneralKindRoot,
+ TemplateKind = "Console Project"
+ };
+ var projectDetails = new ProjectDetails (templateOptions);
+ CreateProject (templateOptions, projectDetails);
+ NuGetController.AddPackage (new NuGetPackageOptions {
+ PackageName = "CommandLineParser",
+ Version = "1.9.7",
+ IsPreRelease = false
+ }, TakeScreenShot);
+
+ string solutionFolder = GetSolutionDirectory ();
+ string solutionPath = Path.Combine (solutionFolder, projectDetails.SolutionName+".sln");
+ var projectPath = Path.Combine (solutionFolder, projectDetails.ProjectName, projectDetails.ProjectName + ".csproj");
+ Assert.IsTrue (File.Exists (projectPath));
+
+ TakeScreenShot ("About-To-Close-Solution");
+ Session.ExecuteCommand (FileCommands.CloseWorkspace);
+ TakeScreenShot ("Closed-Solution");
+
+ AddOrCheckLocalCopy (projectPath, true);
+
+ Session.GlobalInvoke ("MonoDevelop.Ide.IdeApp.Workspace.OpenWorkspaceItem", new FilePath (solutionPath), true);
+ TakeScreenShot ("Solution-Opened");
+ Ide.WaitForPackageUpdate ();
+ TakeScreenShot ("Solution-Ready");
+ Session.WaitForElement (IdeQuery.TextArea);
+
+ NuGetController.UpdateAllNuGetPackages (TakeScreenShot);
+
+ AddOrCheckLocalCopy (projectPath, false);
+ }
+
+ void AddOrCheckLocalCopy (string projectPath, bool addLocalCopy)
+ {
+ using (var stream = new FileStream (projectPath, FileMode.Open, FileAccess.ReadWrite)) {
+ var xmlDoc = new XmlDocument();
+ xmlDoc.Load(stream);
+ var ns = "http://schemas.microsoft.com/developer/msbuild/2003";
+ XmlNamespaceManager xnManager = new XmlNamespaceManager(xmlDoc.NameTable);
+ xnManager.AddNamespace("ui", ns);
+ XmlNode root = xmlDoc.DocumentElement;
+ var uitest = root.SelectSingleNode ("//ui:Reference[@Include=\"CommandLine\"]", xnManager);
+ Assert.IsNotNull (uitest, "Cannot find CommandLine package reference in file: "+projectPath);
+ var privateUITestNode = uitest.SelectSingleNode ("./ui:Private", xnManager);
+
+ if (addLocalCopy) {
+ Assert.IsNull (privateUITestNode, uitest.InnerXml, "CommandLine package is already set to 'No Local Copy'");
+ var privateNode = xmlDoc.CreateElement ("Private", ns);
+ privateNode.InnerText = "False";
+ uitest.AppendChild (privateNode);
+ stream.SetLength (0);
+ xmlDoc.Save (stream);
+ stream.Flush ();
+ } else {
+ Assert.IsNotNull (privateUITestNode, "Cannot find CommandLine package with 'No Local Copy' set");
+ Assert.AreEqual (privateUITestNode.InnerText, "False");
+ }
+ stream.Close ();
+ }
+ }
+
+
ProjectDetails CreateProject (TemplateSelectionOptions templateOptions = null, ProjectDetails projectDetails = null)
{
templateOptions = templateOptions ?? new TemplateSelectionOptions {