blob: 0f94efc6e7a9ab0094ddd0c41cd3f44ba95b779a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
using Moq;
using Xunit;
using Assert = Microsoft.TestCommon.AssertEx;
namespace System.Web.Mvc.Test
{
public class ValidateInputAttributeTest
{
[Fact]
public void EnableValidationProperty()
{
// Act
ValidateInputAttribute attrTrue = new ValidateInputAttribute(true);
ValidateInputAttribute attrFalse = new ValidateInputAttribute(false);
// Assert
Assert.True(attrTrue.EnableValidation);
Assert.False(attrFalse.EnableValidation);
}
[Fact]
public void OnAuthorizationSetsControllerValidateRequestToFalse()
{
// Arrange
Controller controller = new EmptyController() { ValidateRequest = true };
ValidateInputAttribute attr = new ValidateInputAttribute(enableValidation: false);
AuthorizationContext authContext = GetAuthorizationContext(controller);
// Act
attr.OnAuthorization(authContext);
// Assert
Assert.False(controller.ValidateRequest);
}
[Fact]
public void OnAuthorizationSetsControllerValidateRequestToTrue()
{
// Arrange
Controller controller = new EmptyController() { ValidateRequest = false };
ValidateInputAttribute attr = new ValidateInputAttribute(enableValidation: true);
AuthorizationContext authContext = GetAuthorizationContext(controller);
// Act
attr.OnAuthorization(authContext);
// Assert
Assert.True(controller.ValidateRequest);
}
[Fact]
public void OnAuthorizationThrowsIfFilterContextIsNull()
{
// Arrange
ValidateInputAttribute attr = new ValidateInputAttribute(true);
// Act & assert
Assert.ThrowsArgumentNull(
delegate { attr.OnAuthorization(null); }, "filterContext");
}
private static AuthorizationContext GetAuthorizationContext(ControllerBase controller)
{
Mock<AuthorizationContext> mockAuthContext = new Mock<AuthorizationContext>();
mockAuthContext.Setup(c => c.Controller).Returns(controller);
return mockAuthContext.Object;
}
private class EmptyController : Controller
{
}
}
}
|