a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
144 lines
5.3 KiB
C#
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&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&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&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=\"<b>foo@bar.com</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);
|
|
}
|
|
}
|
|
}
|