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

144 lines
5.3 KiB
C#

// Copyright (c) Microsoft Corporation. All rights reserved. See License.txt in the project root for license information.
using System;
using System.Web.Helpers.Test;
using Xunit;
using Assert = Microsoft.TestCommon.AssertEx;
namespace Microsoft.Web.Helpers.Test
{
public class GravatarTest
{
[Fact]
public void GetUrlDefaults()
{
string url = Gravatar.GetUrl("foo@bar.com");
Assert.Equal("http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80", url);
}
[Fact]
public void RenderEncodesDefaultImageUrl()
{
string render = Gravatar.GetHtml("foo@bar.com", defaultImage: "http://example.com/images/example.jpg").ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80&amp;d=http%3a%2f%2fexample.com%2fimages%2fexample.jpg\" alt=\"gravatar\" />",
render);
}
[Fact]
public void RenderLowerCasesEmail()
{
string render = Gravatar.GetHtml("FOO@BAR.COM").ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80\" alt=\"gravatar\" />",
render);
}
[Fact]
public void RendersValidXhtml()
{
XhtmlAssert.Validate1_1(Gravatar.GetHtml("foo@bar.com"));
}
[Fact]
public void RenderThrowsWhenEmailIsEmpty()
{
Assert.ThrowsArgumentNullOrEmptyString(() => { Gravatar.GetHtml(String.Empty); }, "email");
}
[Fact]
public void RenderThrowsWhenEmailIsNull()
{
Assert.ThrowsArgumentNullOrEmptyString(() => { Gravatar.GetHtml(null); }, "email");
}
[Fact]
public void RenderThrowsWhenImageSizeIsLessThanZero()
{
Assert.ThrowsArgument(() => { Gravatar.GetHtml("foo@bar.com", imageSize: -1); }, "imageSize", "The Gravatar image size must be between 1 and 512 pixels.");
}
[Fact]
public void RenderThrowsWhenImageSizeIsZero()
{
Assert.ThrowsArgument(() => { Gravatar.GetHtml("foo@bar.com", imageSize: 0); }, "imageSize", "The Gravatar image size must be between 1 and 512 pixels.");
}
[Fact]
public void RenderThrowsWhenImageSizeIsGreaterThan512()
{
Assert.ThrowsArgument(() => { Gravatar.GetHtml("foo@bar.com", imageSize: 513); }, "imageSize", "The Gravatar image size must be between 1 and 512 pixels.");
}
[Fact]
public void RenderTrimsEmail()
{
string render = Gravatar.GetHtml(" \t foo@bar.com\t\r\n").ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80\" alt=\"gravatar\" />",
render);
}
[Fact]
public void RenderUsesDefaultImage()
{
string render = Gravatar.GetHtml("foo@bar.com", defaultImage: "wavatar").ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80&amp;d=wavatar\" alt=\"gravatar\" />",
render);
}
[Fact]
public void RenderUsesImageSize()
{
string render = Gravatar.GetHtml("foo@bar.com", imageSize: 512).ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=512\" alt=\"gravatar\" />",
render);
}
[Fact]
public void RenderUsesRating()
{
string render = Gravatar.GetHtml("foo@bar.com", rating: GravatarRating.G).ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80&amp;r=g\" alt=\"gravatar\" />",
render);
}
[Fact]
public void RenderWithAttributes()
{
string render = Gravatar.GetHtml("foo@bar.com",
attributes: new { id = "gravatar", alT = "<b>foo@bar.com</b>", srC = "ignored" }).ToString();
// beware of attributes ordering in tests
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80\" alT=\"&lt;b>foo@bar.com&lt;/b>\" id=\"gravatar\" />",
render);
}
[Fact]
public void RenderWithDefaults()
{
string render = Gravatar.GetHtml("foo@bar.com").ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8?s=80\" alt=\"gravatar\" />",
render);
}
[Fact]
public void RenderWithExtension()
{
string render = Gravatar.GetHtml("foo@bar.com", imageExtension: ".png").ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8.png?s=80\" alt=\"gravatar\" />",
render);
render = Gravatar.GetHtml("foo@bar.com", imageExtension: "xyz").ToString();
Assert.Equal(
"<img src=\"http://www.gravatar.com/avatar/f3ada405ce890b6f8204094deb12d8a8.xyz?s=80\" alt=\"gravatar\" />",
render);
}
}
}