diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ItemOperations.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ItemOperations.cs index 5473460309..04a781d2d8 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ItemOperations.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ItemOperations.cs @@ -18,5 +18,10 @@ namespace ICSharpCode.PackageManagement.EnvDTE { fileService.OpenFile(fileName); } + + public void Navigate(string url) + { + fileService.OpenFile(url); + } } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs index b8e6707ba2..f2bd86fe84 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/Project.cs @@ -10,6 +10,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE public class Project { IPackageManagementProjectService projectService; + IPackageManagementFileService fileService; + DTE dte; public Project(MSBuildBasedProject project) : this( @@ -26,6 +28,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE { this.MSBuildProject = project; this.projectService = projectService; + this.fileService = fileService; Object = new ProjectObject(this); Properties = new Properties(this); @@ -40,6 +43,15 @@ namespace ICSharpCode.PackageManagement.EnvDTE public Properties Properties { get; private set; } public ProjectItems ProjectItems { get; private set; } + public DTE DTE { + get { + if (dte == null) { + dte = new DTE(projectService, fileService); + } + return dte; + } + } + internal MSBuildBasedProject MSBuildProject { get; private set; } internal void Save() diff --git a/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj b/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj index 78d6e4c7b0..ae8d6ee0a0 100644 --- a/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj +++ b/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj @@ -71,6 +71,7 @@ + diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/DTETests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/DTETests.cs index 764d7e50d0..f2dcb3e06d 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/DTETests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/DTETests.cs @@ -47,17 +47,5 @@ namespace PackageManagement.Tests.EnvDTE Assert.IsNull(solution); } - - [Test] - public void ItemOperationsOpenFile_FileNamePassed_OpensFileInSharpDevelop() - { - CreateDTE(); - string expectedFileName = @"d:\temp\readme.txt"; - dte.ItemOperations.OpenFile(expectedFileName); - - string actualFileName = fakeFileService.FileNamePassedToOpenFile; - - Assert.AreEqual(expectedFileName, actualFileName); - } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ItemOperationsTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ItemOperationsTests.cs new file mode 100644 index 0000000000..ab8d37718b --- /dev/null +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ItemOperationsTests.cs @@ -0,0 +1,52 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using ICSharpCode.PackageManagement.Design; +using ICSharpCode.PackageManagement.EnvDTE; +using NUnit.Framework; +using PackageManagement.Tests.Helpers; + +namespace PackageManagement.Tests.EnvDTE +{ + [TestFixture] + public class ItemOperationsTests + { + DTE dte; + FakePackageManagementProjectService fakeProjectService; + FakeFileService fakeFileService; + ItemOperations itemOperations; + + void CreateItemOperations() + { + fakeProjectService = new FakePackageManagementProjectService(); + fakeFileService = new FakeFileService(null); + dte = new DTE(fakeProjectService, fakeFileService); + itemOperations = dte.ItemOperations; + } + + [Test] + public void OpenFile_FileNamePassed_OpensFileInSharpDevelop() + { + CreateItemOperations(); + string expectedFileName = @"d:\temp\readme.txt"; + itemOperations.OpenFile(expectedFileName); + + string actualFileName = fakeFileService.FileNamePassedToOpenFile; + + Assert.AreEqual(expectedFileName, actualFileName); + } + + [Test] + public void Navigate_UrlPassed_OpensUrlInSharpDevelop() + { + CreateItemOperations(); + string expectedUrl = "http://sharpdevelop.com"; + itemOperations.Navigate(expectedUrl); + + string url = fakeFileService.FileNamePassedToOpenFile; + + Assert.AreEqual(expectedUrl, url); + } + } +}