diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln b/src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln index a97d67c977..26144ff509 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln +++ b/src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -# SharpDevelop 4.2.0.8564-beta +# SharpDevelop 4.3.0.8820-alpha Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc", "Project\AspNet.Mvc.csproj", "{D781721F-C2A7-4E95-B76F-247170AC3B13}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc.Tests", "Test\AspNet.Mvc.Tests.csproj", "{0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}" @@ -136,5 +136,9 @@ Global {0162E499-42D0-409B-AA25-EED21F75336B}.Release|x86.ActiveCfg = Release|Any CPU {0162E499-42D0-409B-AA25-EED21F75336B}.Release|Any CPU.Build.0 = Release|Any CPU {0162E499-42D0-409B-AA25-EED21F75336B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.Build.0 = Debug|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.ActiveCfg = Debug|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.Build.0 = Release|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.ActiveCfg = Release|x86 EndGlobalSection EndGlobal diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressProcessStartInfo.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressProcessStartInfo.cs index fcadb807c7..305abca13c 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressProcessStartInfo.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressProcessStartInfo.cs @@ -15,7 +15,15 @@ namespace ICSharpCode.AspNet.Mvc static string GetSiteArgument(WebProject project) { - return String.Format("/site:{0}", project.Name); + return String.Format("/site:{0}", GetSiteName(project)); + } + + static string GetSiteName(WebProject project) + { + if (project.Name.Contains(" ")) { + return String.Format("\"{0}\"", project.Name); + } + return project.Name; } } } diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj b/src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj index 9e1e9ea594..e4487ba0af 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj @@ -130,6 +130,7 @@ + diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IISExpressProcessStartInfoTests.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IISExpressProcessStartInfoTests.cs new file mode 100644 index 0000000000..ce17100944 --- /dev/null +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IISExpressProcessStartInfoTests.cs @@ -0,0 +1,51 @@ +// 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 System.Diagnostics; +using AspNet.Mvc.Tests.Helpers; +using ICSharpCode.AspNet.Mvc; +using NUnit.Framework; + +namespace AspNet.Mvc.Tests +{ + [TestFixture] + public class IISExpressProcessStartInfoTests + { + WebProject project; + TestableProject testableProject; + ProcessStartInfo processStartInfo; + + void CreateWebProject(string name) + { + string fileName = @"d:\projects\MyProject\MyProject.csproj"; + testableProject = TestableProject.CreateProject(fileName, name); + project = new WebProject(testableProject); + } + + void CreateProcessStartInfo() + { + processStartInfo = IISExpressProcessStartInfo.Create(project); + } + + [Test] + public void Create_ProjectNameHasNoSpaces_ProcessInfoHasSiteArgument() + { + CreateWebProject("MyProject"); + + CreateProcessStartInfo(); + + Assert.AreEqual("/site:MyProject", processStartInfo.Arguments); + } + + [Test] + public void Create_ProjectNameHasSpaces_ProcessInfoHasSiteArgumentWithProjectNameInQuotes() + { + CreateWebProject("My Project"); + + CreateProcessStartInfo(); + + Assert.AreEqual("/site:\"My Project\"", processStartInfo.Arguments); + } + } +}