Improve domain enrollment and desktop personalization
This commit is contained in:
@@ -56,6 +56,58 @@ public sealed class SguProfileParserTests
|
||||
Assert.Null(SguProfileParser.ParseAdministrative(html, "999999"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParsesOnlyTheSupportedProfessorPayrollHeaderFields()
|
||||
{
|
||||
const string html = """
|
||||
<div id="ctl00_contenedor_decEncabezado_pnlSinPoP">
|
||||
<span id="ctl00_contenedor_decEncabezado_lblNombre">
|
||||
013473 - ALEJANDRO LARA VILLARREAL
|
||||
</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblIndicadorValue">
|
||||
SINDICALIZADO QUINCENAL (ACTIVO)
|
||||
</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblCorreo">
|
||||
alejandro.lara@lasallistas.org.mx
|
||||
</span>
|
||||
<img id="ctl00_contenedor_decEncabezado_imgFoto"
|
||||
src="../admonPersonal/ashx/Fotografia.ashx?id=013473&tp=2" />
|
||||
<span id="ctl00_contenedor_decEncabezado_lblPuesto">DOCENTE</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblDependencia"></span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblJefeNombre">NO EXTRAER</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblJefePuesto">NO EXTRAER</span>
|
||||
</div>
|
||||
""";
|
||||
|
||||
InstitutionalProfile? profile = SguProfileParser.ParseProfessorPayroll(html, "013473");
|
||||
|
||||
Assert.NotNull(profile);
|
||||
Assert.Equal("013473", profile.EmployeeNumber);
|
||||
Assert.Equal("Alejandro Lara Villarreal", profile.DisplayName);
|
||||
Assert.Equal("alejandro.lara@lasallistas.org.mx", profile.Email);
|
||||
Assert.Equal("Sindicalizado quincenal (activo)", profile.EmployeeType);
|
||||
Assert.Equal("Docente", profile.JobTitle);
|
||||
Assert.Null(profile.Department);
|
||||
Assert.Null(profile.GivenName);
|
||||
Assert.Null(profile.Surname);
|
||||
Assert.Null(profile.StreetAddress);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void RejectsProfessorPayrollMetadataForADifferentEmployeeNumber()
|
||||
{
|
||||
const string html = """
|
||||
<span id="ctl00_contenedor_decEncabezado_lblNombre">
|
||||
013473 - PERSONA INCORRECTA
|
||||
</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblCorreo">
|
||||
incorrecta@lasallistas.org.mx
|
||||
</span>
|
||||
""";
|
||||
|
||||
Assert.Null(SguProfileParser.ParseProfessorPayroll(html, "123456"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParsesStructuredAdministrativeNameWithoutReadingOtherPersonalData()
|
||||
{
|
||||
|
||||
@@ -209,6 +209,15 @@ public sealed class NtlmCredentialValidatorTests
|
||||
"""
|
||||
<span id="ctl00_lblNombreUsuario">MARÍA DEL CARMEN</span>
|
||||
"""),
|
||||
Response(
|
||||
HttpStatusCode.OK,
|
||||
"""
|
||||
<span id="ctl00_contenedor_decEncabezado_lblNombre">123456 - MARÍA DEL CARMEN</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblCorreo">docente@lasallistas.org.mx</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblIndicadorValue">SINDICALIZADO QUINCENAL (ACTIVO)</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblPuesto">DOCENTE</span>
|
||||
<span id="ctl00_contenedor_decEncabezado_lblDependencia"></span>
|
||||
"""),
|
||||
Response(
|
||||
HttpStatusCode.OK,
|
||||
"""
|
||||
@@ -244,6 +253,11 @@ public sealed class NtlmCredentialValidatorTests
|
||||
Assert.Equal("María del Carmen de la Fuente O'Connor", result.Profile.DisplayName);
|
||||
Assert.Equal("María del Carmen", result.Profile.GivenName);
|
||||
Assert.Equal("de la Fuente O'Connor", result.Profile.Surname);
|
||||
Assert.Equal("123456", result.Profile.EmployeeNumber);
|
||||
Assert.Equal("docente@lasallistas.org.mx", result.Profile.Email);
|
||||
Assert.Equal("Sindicalizado quincenal (activo)", result.Profile.EmployeeType);
|
||||
Assert.Equal("Docente", result.Profile.JobTitle);
|
||||
Assert.Null(result.Profile.Department);
|
||||
Assert.Equal("Calle del Sol 15\r\nFlorida", result.Profile.StreetAddress);
|
||||
Assert.Equal("Álvaro Obregón", result.Profile.City);
|
||||
Assert.Equal("Ciudad de México", result.Profile.State);
|
||||
@@ -253,6 +267,7 @@ public sealed class NtlmCredentialValidatorTests
|
||||
"/psulsa/",
|
||||
"/psulsa/",
|
||||
"/psulsa/menu.aspx",
|
||||
"/psulsa/gadmon/nomina/consultanomina.aspx",
|
||||
"/psulsa/gadmon/capitalhumano/datos/personales.aspx",
|
||||
"/psulsa/gadmon/capitalhumano/datos/ubicacion.aspx"
|
||||
],
|
||||
@@ -270,6 +285,7 @@ public sealed class NtlmCredentialValidatorTests
|
||||
"""
|
||||
<span id="ctl00_lblNombreUsuario">MIGUEL DE CERVANTES</span>
|
||||
"""),
|
||||
Response(HttpStatusCode.NotFound),
|
||||
Response(HttpStatusCode.OK, "<html><body>Unrecognized layout</body></html>"),
|
||||
Response(HttpStatusCode.NotFound));
|
||||
NtlmCredentialValidator validator = CreateValidator(handler);
|
||||
@@ -283,7 +299,10 @@ public sealed class NtlmCredentialValidatorTests
|
||||
Assert.NotNull(result.Profile);
|
||||
Assert.Equal("Miguel de Cervantes", result.Profile.DisplayName);
|
||||
Assert.Null(result.Profile.StreetAddress);
|
||||
Assert.Equal(5, handler.RequestPaths.Count);
|
||||
Assert.Equal(6, handler.RequestPaths.Count);
|
||||
Assert.Equal(
|
||||
"/psulsa/gadmon/nomina/consultanomina.aspx",
|
||||
handler.RequestPaths[3]);
|
||||
}
|
||||
|
||||
private static NtlmCredentialValidator CreateValidator(SequenceHandler handler)
|
||||
@@ -298,6 +317,7 @@ public sealed class NtlmCredentialValidatorTests
|
||||
AdministrativePersonalProfilePath = "/psulsa/gadmon/capitalhumano/datos/personales.aspx",
|
||||
AdministrativeLocationProfilePath = "/psulsa/gadmon/capitalhumano/datos/ubicacion.aspx",
|
||||
StudentProfilePath = "/psulsa/alumnos/consultainformacionalumnos/consultainformacion.aspx",
|
||||
ProfessorPayrollProfilePath = "/psulsa/gadmon/nomina/consultanomina.aspx",
|
||||
AllowedRedirectHosts = ["sgu.example"],
|
||||
TimeoutSeconds = 5,
|
||||
ProfileTimeoutSeconds = 5
|
||||
|
||||
Reference in New Issue
Block a user