Tests: Add more tests to PageCommon.
This commit is contained in:
44
VAR.WebFormsCore.Tests/Fakes/FakeGlobalConfig.cs
Normal file
44
VAR.WebFormsCore.Tests/Fakes/FakeGlobalConfig.cs
Normal file
@@ -0,0 +1,44 @@
|
||||
using VAR.WebFormsCore.Code;
|
||||
|
||||
namespace VAR.WebFormsCore.Tests.Fakes;
|
||||
|
||||
public class FakeGlobalConfig : IGlobalConfig
|
||||
{
|
||||
public string Title => string.Empty;
|
||||
|
||||
public string TitleSeparator => string.Empty;
|
||||
|
||||
public string Author => string.Empty;
|
||||
|
||||
public string Copyright => string.Empty;
|
||||
|
||||
public string DefaultHandler => string.Empty;
|
||||
|
||||
private string _loginHandler = string.Empty;
|
||||
|
||||
public void FakeSetLoginHandler(string loginHandler)
|
||||
{
|
||||
_loginHandler = loginHandler;
|
||||
}
|
||||
|
||||
public string LoginHandler => _loginHandler;
|
||||
|
||||
public List<string> AllowedExtensions { get; } = new();
|
||||
|
||||
private bool _authenticated;
|
||||
|
||||
public void FakeSetAuthenticated(bool authenticated)
|
||||
{
|
||||
_authenticated = authenticated;
|
||||
}
|
||||
|
||||
public bool IsUserAuthenticated(IWebContext context)
|
||||
{
|
||||
return _authenticated;
|
||||
}
|
||||
|
||||
public void UserDeauthenticate(IWebContext context)
|
||||
{
|
||||
_authenticated = false;
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
using VAR.WebFormsCore.Code;
|
||||
using VAR.WebFormsCore.Pages;
|
||||
using VAR.WebFormsCore.Tests.Fakes;
|
||||
using Xunit;
|
||||
@@ -39,13 +40,31 @@ public class PageCommonTests
|
||||
[Fact]
|
||||
public void ProcessRequest__TestEmptyFormNotAuthenticated__RedirectToFrmLogin()
|
||||
{
|
||||
string loginHandler = "FrmLogin";
|
||||
(GlobalConfig.Get() as FakeGlobalConfig)?.FakeSetLoginHandler(loginHandler);
|
||||
FakeWebContext fakeWebContext = new();
|
||||
TestEmptyForm testEmptyForm = new(mustBeAuthenticated: true);
|
||||
|
||||
testEmptyForm.ProcessRequest(fakeWebContext);
|
||||
|
||||
Assert.Equal(302, fakeWebContext.ResponseStatusCode);
|
||||
Assert.Equal(string.Empty, fakeWebContext.FakeResponseHeaders["location"]);
|
||||
Assert.Equal(loginHandler, fakeWebContext.FakeResponseHeaders["location"]);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ProcessRequest__TestEmptyFormPostClickLogout__RedirectToFrmLogin()
|
||||
{
|
||||
string loginHandler = "FrmLogin";
|
||||
(GlobalConfig.Get() as FakeGlobalConfig)?.FakeSetLoginHandler(loginHandler);
|
||||
(GlobalConfig.Get() as FakeGlobalConfig)?.FakeSetAuthenticated(true);
|
||||
FakeWebContext fakeWebContext = new(requestMethod: "POST");
|
||||
fakeWebContext.RequestForm.Add("ctl00_ctl02_btnLogout", "Logout");
|
||||
TestEmptyForm testEmptyForm = new(mustBeAuthenticated: true);
|
||||
|
||||
testEmptyForm.ProcessRequest(fakeWebContext);
|
||||
|
||||
Assert.Equal(302, fakeWebContext.ResponseStatusCode);
|
||||
Assert.Equal(loginHandler, fakeWebContext.FakeResponseHeaders["location"]);
|
||||
}
|
||||
|
||||
#endregion ProcessRequest TestForm
|
||||
|
||||
Reference in New Issue
Block a user