Tests: Add more tests to PageCommon.

This commit is contained in:
2023-05-30 02:18:18 +02:00
parent b8ab4766d4
commit bde23a865b
2 changed files with 64 additions and 1 deletions

View 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;
}
}

View File

@@ -1,3 +1,4 @@
using VAR.WebFormsCore.Code;
using VAR.WebFormsCore.Pages; using VAR.WebFormsCore.Pages;
using VAR.WebFormsCore.Tests.Fakes; using VAR.WebFormsCore.Tests.Fakes;
using Xunit; using Xunit;
@@ -39,13 +40,31 @@ public class PageCommonTests
[Fact] [Fact]
public void ProcessRequest__TestEmptyFormNotAuthenticated__RedirectToFrmLogin() public void ProcessRequest__TestEmptyFormNotAuthenticated__RedirectToFrmLogin()
{ {
string loginHandler = "FrmLogin";
(GlobalConfig.Get() as FakeGlobalConfig)?.FakeSetLoginHandler(loginHandler);
FakeWebContext fakeWebContext = new(); FakeWebContext fakeWebContext = new();
TestEmptyForm testEmptyForm = new(mustBeAuthenticated: true); TestEmptyForm testEmptyForm = new(mustBeAuthenticated: true);
testEmptyForm.ProcessRequest(fakeWebContext); testEmptyForm.ProcessRequest(fakeWebContext);
Assert.Equal(302, fakeWebContext.ResponseStatusCode); 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 #endregion ProcessRequest TestForm