diff --git a/src/Microsoft.AspNet.Mvc.Core/Formatters/TextPlainFormatter.cs b/src/Microsoft.AspNet.Mvc.Core/Formatters/StringOutputFormatter.cs
similarity index 74%
rename from src/Microsoft.AspNet.Mvc.Core/Formatters/TextPlainFormatter.cs
rename to src/Microsoft.AspNet.Mvc.Core/Formatters/StringOutputFormatter.cs
index a2fecf414b..6df01729c3 100644
--- a/src/Microsoft.AspNet.Mvc.Core/Formatters/TextPlainFormatter.cs
+++ b/src/Microsoft.AspNet.Mvc.Core/Formatters/StringOutputFormatter.cs
@@ -1,8 +1,8 @@
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-using System.IO;
using System.Threading.Tasks;
+using Microsoft.AspNet.Http;
using Microsoft.Net.Http.Headers;
namespace Microsoft.AspNet.Mvc
@@ -10,9 +10,9 @@ namespace Microsoft.AspNet.Mvc
///
/// Always writes a string value to the response, regardless of requested content type.
///
- public class TextPlainFormatter : OutputFormatter
+ public class StringOutputFormatter : OutputFormatter
{
- public TextPlainFormatter()
+ public StringOutputFormatter()
{
SupportedEncodings.Add(Encodings.UTF8EncodingWithoutBOM);
SupportedEncodings.Add(Encodings.UTF16EncodingLittleEndian);
@@ -39,19 +39,14 @@ namespace Microsoft.AspNet.Mvc
public override async Task WriteResponseBodyAsync(OutputFormatterContext context)
{
var valueAsString = (string)context.Object;
- if (valueAsString == null)
+ if (string.IsNullOrEmpty(valueAsString))
{
- // if the value is null don't write anything.
return;
}
var response = context.ActionContext.HttpContext.Response;
- using (var delegatingStream = new DelegatingStream(response.Body))
- using (var writer = new StreamWriter(delegatingStream, context.SelectedEncoding, 1024, leaveOpen: true))
- {
- await writer.WriteAsync(valueAsString);
- }
+ await response.WriteAsync(valueAsString, context.SelectedEncoding);
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs b/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs
index ff0fb02ec9..4482412b15 100644
--- a/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs
+++ b/src/Microsoft.AspNet.Mvc/MvcOptionsSetup.cs
@@ -42,7 +42,7 @@ namespace Microsoft.AspNet.Mvc
// Set up default output formatters.
options.OutputFormatters.Add(new HttpNoContentOutputFormatter());
- options.OutputFormatters.Add(new TextPlainFormatter());
+ options.OutputFormatters.Add(new StringOutputFormatter());
options.OutputFormatters.Add(new JsonOutputFormatter());
// Set up default input formatters.
diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs
index bed768483f..f948290609 100644
--- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs
+++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtActionResultTests.cs
@@ -119,7 +119,7 @@ namespace Microsoft.AspNet.Mvc
{
return new List()
{
- new TextPlainFormatter(),
+ new StringOutputFormatter(),
new JsonOutputFormatter()
};
}
diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs
index 4345727611..d9b5a222c3 100644
--- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs
+++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedAtRouteResultTests.cs
@@ -128,7 +128,7 @@ namespace Microsoft.AspNet.Mvc
{
return new List()
{
- new TextPlainFormatter(),
+ new StringOutputFormatter(),
new JsonOutputFormatter()
};
}
diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs
index b70b8027eb..a6fa5c176b 100644
--- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs
+++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/CreatedResultTests.cs
@@ -86,7 +86,7 @@ namespace Microsoft.AspNet.Mvc
{
return new List()
{
- new TextPlainFormatter(),
+ new StringOutputFormatter(),
new JsonOutputFormatter()
};
}
diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs
index 13cdea35bb..bdcd2c1258 100644
--- a/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs
+++ b/test/Microsoft.AspNet.Mvc.Core.Test/ActionResults/ObjectResultTests.cs
@@ -490,7 +490,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults
var objectResult = new ObjectResult(new Person() { Name = "John" });
var outputFormatters = new IOutputFormatter[] {
new HttpNoContentOutputFormatter(),
- new TextPlainFormatter(),
+ new StringOutputFormatter(),
new JsonOutputFormatter(),
new XmlDataContractSerializerOutputFormatter(XmlSerializerOutputFormatter.GetDefaultXmlWriterSettings())
};
@@ -531,7 +531,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults
var objectResult = new ObjectResult(new Person() { Name = "John" });
var outputFormatters = new IOutputFormatter[] {
new HttpNoContentOutputFormatter(),
- new TextPlainFormatter(),
+ new StringOutputFormatter(),
new JsonOutputFormatter(),
new XmlDataContractSerializerOutputFormatter(XmlSerializerOutputFormatter.GetDefaultXmlWriterSettings())
};
@@ -566,7 +566,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults
objectResult.ContentTypes.Add(MediaTypeHeaderValue.Parse("application/json"));
var outputFormatters = new IOutputFormatter[] {
new HttpNoContentOutputFormatter(),
- new TextPlainFormatter(),
+ new StringOutputFormatter(),
new JsonOutputFormatter(),
new XmlDataContractSerializerOutputFormatter(XmlSerializerOutputFormatter.GetDefaultXmlWriterSettings())
};
@@ -592,7 +592,7 @@ namespace Microsoft.AspNet.Mvc.Core.Test.ActionResults
string requestAcceptCharsetHeader = "",
bool respectBrowserAcceptHeader = false)
{
- var formatters = new IOutputFormatter[] { new TextPlainFormatter(), new JsonOutputFormatter() };
+ var formatters = new IOutputFormatter[] { new StringOutputFormatter(), new JsonOutputFormatter() };
return CreateMockActionContext(
formatters,
diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/TextPlainFormatterTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/StringOutputFormatterTests.cs
similarity index 96%
rename from test/Microsoft.AspNet.Mvc.Core.Test/Formatters/TextPlainFormatterTests.cs
rename to test/Microsoft.AspNet.Mvc.Core.Test/Formatters/StringOutputFormatterTests.cs
index 6b6de7931d..7771678b1e 100644
--- a/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/TextPlainFormatterTests.cs
+++ b/test/Microsoft.AspNet.Mvc.Core.Test/Formatters/StringOutputFormatterTests.cs
@@ -32,7 +32,7 @@ namespace Microsoft.AspNet.Mvc
public void CanWriteResult_ReturnsTrueForStringTypes(object value, bool useDeclaredTypeAsString, bool expectedCanWriteResult)
{
// Arrange
- var formatter = new TextPlainFormatter();
+ var formatter = new StringOutputFormatter();
var typeToUse = useDeclaredTypeAsString ? typeof(string) : typeof(object);
var formatterContext = new OutputFormatterContext()
{
@@ -59,7 +59,7 @@ namespace Microsoft.AspNet.Mvc
var mockHttpContext = new Mock();
mockHttpContext.Setup(o => o.Response).Returns(response.Object);
- var formatter = new TextPlainFormatter();
+ var formatter = new StringOutputFormatter();
var formatterContext = new OutputFormatterContext()
{
Object = null,
diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs
index 6161e3e626..ffa3a3f69f 100644
--- a/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs
+++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/OutputFormatterTest.cs
@@ -22,7 +22,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests
[InlineData("ReturnTaskOfObject_StringValue")]
[InlineData("ReturnString")]
[InlineData("ReturnObject_StringValue")]
- public async Task TextPlainFormatter_ForStringValues_GetsSelectedReturnsTextPlainContentType(string actionName)
+ public async Task StringOutputFormatter_ForStringValues_GetsSelectedReturnsTextPlainContentType(string actionName)
{
// Arrange
var server = TestServer.Create(_provider, _app);
diff --git a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs
index 3309451c3e..3d9ceb29e7 100644
--- a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs
+++ b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorPageTest.cs
@@ -17,7 +17,9 @@ namespace Microsoft.AspNet.Mvc.Razor
{
public class RazorPageTest
{
+#pragma warning disable 1998
private readonly RenderAsyncDelegate _nullRenderAsyncDelegate = async writer => { };
+#pragma warning restore 1998
[Fact]
public async Task WritingScopesRedirectContentWrittenToViewContextWriter()
diff --git a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs
index 7ce232622f..b107db2f8d 100644
--- a/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs
+++ b/test/Microsoft.AspNet.Mvc.Razor.Test/RazorViewTest.cs
@@ -16,7 +16,10 @@ namespace Microsoft.AspNet.Mvc.Razor
public class RazorViewTest
{
private const string LayoutPath = "~/Shared/_Layout.cshtml";
+
+#pragma warning disable 1998
private readonly RenderAsyncDelegate _nullRenderAsyncDelegate = async writer => { };
+#pragma warning restore 1998
[Fact]
public async Task RenderAsync_AsPartial_DoesNotBufferOutput()
diff --git a/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs b/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs
index d946be0beb..7e22edeb35 100644
--- a/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs
+++ b/test/Microsoft.AspNet.Mvc.Test/MvcOptionSetupTest.cs
@@ -85,7 +85,7 @@ namespace Microsoft.AspNet.Mvc
// Assert
Assert.Equal(3, mvcOptions.OutputFormatters.Count);
Assert.IsType(mvcOptions.OutputFormatters[0].Instance);
- Assert.IsType(mvcOptions.OutputFormatters[1].Instance);
+ Assert.IsType(mvcOptions.OutputFormatters[1].Instance);
Assert.IsType(mvcOptions.OutputFormatters[2].Instance);
}