Browse Source

Fix invalid IIS Express command line arguments when a project name has a space character.

4.2
Matt Ward 13 years ago
parent
commit
a19fc84b42
  1. 6
      src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln
  2. 10
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressProcessStartInfo.cs
  3. 1
      src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj
  4. 51
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IISExpressProcessStartInfoTests.cs

6
src/AddIns/BackendBindings/AspNet.Mvc/AspNet.Mvc.sln

@ -1,7 +1,7 @@ @@ -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 @@ -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

10
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IISExpressProcessStartInfo.cs

@ -15,7 +15,15 @@ namespace ICSharpCode.AspNet.Mvc @@ -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;
}
}
}

1
src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj

@ -130,6 +130,7 @@ @@ -130,6 +130,7 @@
<Compile Include="Src\Folding\WebFormsHtmlReaderTests.cs" />
<Compile Include="Src\Folding\WebFormsLanguageBindingTests.cs" />
<Compile Include="Src\Folding\WebFormsMarkupCharacterReaderTests.cs" />
<Compile Include="Src\IISExpressProcessStartInfoTests.cs" />
<Compile Include="Src\IsMvcControllerFolderSelectedConditionEvaluatorTests.cs" />
<Compile Include="Src\IsMvcViewFolderSelectedConditionEvaluatorTests.cs" />
<Compile Include="Configuration\AssemblyInfo.cs" />

51
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IISExpressProcessStartInfoTests.cs

@ -0,0 +1,51 @@ @@ -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);
}
}
}
Loading…
Cancel
Save