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