Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

141 lines
4.7 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
using System;
using System.Web.Mvc;
using Microsoft.Web.UnitTestUtil;
using Xunit;
using Assert = Microsoft.TestCommon.AssertEx;
namespace Microsoft.Web.Mvc.Test
{
public class CssExtensionsTests
{
[Fact]
public void CssWithoutFileThrowsArgumentNullException()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Assert
Assert.ThrowsArgumentNullOrEmpty(() => html.Css(null), "file");
}
[Fact]
public void CssWithRootedPathRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("~/Correct/Path.css");
// Assert
Assert.Equal("<link href=\"/$(SESSION)/Correct/Path.css\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithRelativePathRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("../../Correct/Path.css");
// Assert
Assert.Equal("<link href=\"../../Correct/Path.css\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithRelativeCurrentPathRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("/Correct/Path.css");
// Assert
Assert.Equal("<link href=\"/Correct/Path.css\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithContentRelativePathRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("Correct/Path.css");
// Assert
Assert.Equal("<link href=\"/$(SESSION)/Content/Correct/Path.css\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithNullMediaTypeRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("Correct/Path.css", null);
// Assert
Assert.Equal("<link href=\"/$(SESSION)/Content/Correct/Path.css\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithEmptyMediaTypeRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("Correct/Path.css", String.Empty);
// Assert
Assert.Equal("<link href=\"/$(SESSION)/Content/Correct/Path.css\" media=\"\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithMediaTypeRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("Correct/Path.css", "Print");
// Assert
Assert.Equal("<link href=\"/$(SESSION)/Content/Correct/Path.css\" media=\"Print\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithUrlRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("http://ajax.Correct.com/Path.js");
// Assert
Assert.Equal("<link href=\"http://ajax.Correct.com/Path.js\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
[Fact]
public void CssWithSecureUrlRendersProperElement()
{
// Arrange
HtmlHelper html = MvcHelper.GetHtmlHelperWithPath(new ViewDataDictionary());
// Act
MvcHtmlString result = html.Css("https://ajax.Correct.com/Path.js");
// Assert
Assert.Equal("<link href=\"https://ajax.Correct.com/Path.js\" rel=\"stylesheet\" type=\"text/css\" />", result.ToHtmlString());
}
}
}