This is an automated email from the git hooks/post-receive script.
tzeller pushed a commit to branch main
in repository java-idp-integration-tests.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-integration-tests.git;a=commit;h=c8ca4b86870e2626d92aa465b6c1b9e8f950ff7d
The following commit(s) were added to refs/heads/main by this push:
new c8ca4b8 Update OP Conformance tests and add more logout tests
c8ca4b8 is described below
commit c8ca4b86870e2626d92aa465b6c1b9e8f950ff7d
Author: Tom Zeller <tzeller at dragonacea.biz>
AuthorDate: Fri Jun 13 18:25:00 2025 -0500
Update OP Conformance tests and add more logout tests
---
.../idp/integration/tests/oidc/BaseOPTest.java | 14 +
.../tests/oidc/ConformanceSuiteContainer.java | 8 -
.../integration/tests/oidc/OPConformanceTest.java | 296 ++++-
.../conformance-suite/testop-config-logout.json | 1393 --------------------
src/test/oidc/conformance-suite/testop-config.json | 836 +++++++++++-
5 files changed, 1109 insertions(+), 1438 deletions(-)
diff --git a/src/test/java/net/shibboleth/idp/integration/tests/oidc/BaseOPTest.java b/src/test/java/net/shibboleth/idp/integration/tests/oidc/BaseOPTest.java
index d6f53d8..e0c2e9f 100644
--- a/src/test/java/net/shibboleth/idp/integration/tests/oidc/BaseOPTest.java
+++ b/src/test/java/net/shibboleth/idp/integration/tests/oidc/BaseOPTest.java
@@ -389,6 +389,20 @@ public abstract class BaseOPTest extends BaseTest {
}
+ /**
+ * Enabled targeted endpoint as JWT audience.
+ *
+ * @throws IOException
+ * if an error occurs
+ */
+ protected void enableTargetedEndpointAsJWTAudience() throws IOException {
+
+ final Path pathToOIDCProperties = pathToIdPHome.resolve(Paths.get("conf", "oidc.properties"));
+
+ assert pathToOIDCProperties.toFile().exists() : "Path to oidc.properties not found";
+
+ replaceFile(pathToOIDCProperties, "\\z", System.lineSeparator() + "idp.oauth2.jwtAuth.targetedEndpointAsJWTAudience=true");
+ }
/**
* Get /.well-known/openid-configuration and verify that the issuer is correct.
diff --git a/src/test/java/net/shibboleth/idp/integration/tests/oidc/ConformanceSuiteContainer.java b/src/test/java/net/shibboleth/idp/integration/tests/oidc/ConformanceSuiteContainer.java
index cb58eec..aaac3d6 100644
--- a/src/test/java/net/shibboleth/idp/integration/tests/oidc/ConformanceSuiteContainer.java
+++ b/src/test/java/net/shibboleth/idp/integration/tests/oidc/ConformanceSuiteContainer.java
@@ -237,14 +237,6 @@ public class ConformanceSuiteContainer extends AbstractIdentifiableInitializable
replaceFile(pathToTestOPConfigJSON, "teppo", "jdoe"); // username
replaceFile(pathToTestOPConfigJSON, "testaaja", "changeit"); // password
-
- final Path pathToTestOPConfigLogoutJSON = pathToConformanceSuite.resolve("testop-config-logout.json");
-
- replaceFile(pathToTestOPConfigLogoutJSON, "testop.funet.fi", opHost + ":" + opPort);
-
- replaceFile(pathToTestOPConfigLogoutJSON, "teppo", "jdoe"); // username
-
- replaceFile(pathToTestOPConfigLogoutJSON, "testaaja", "changeit"); // password
}
/**
diff --git a/src/test/java/net/shibboleth/idp/integration/tests/oidc/OPConformanceTest.java b/src/test/java/net/shibboleth/idp/integration/tests/oidc/OPConformanceTest.java
index 6352847..f89982a 100644
--- a/src/test/java/net/shibboleth/idp/integration/tests/oidc/OPConformanceTest.java
+++ b/src/test/java/net/shibboleth/idp/integration/tests/oidc/OPConformanceTest.java
@@ -142,33 +142,13 @@ public class OPConformanceTest extends BaseOPTest {
final Path pathToLogoutVm = Paths.get("views", "logout.vm");
- final String oldText1 = "<meta http-equiv=\"refresh\" content=\"10;url=\\$flowExecutionUrl&_eventId=local\">\n";
+ final String toComment = " \\#if \\(\\$promptForSP\\)\n" + //
+ " <meta http-equiv=\"refresh\" content=\"10;url=\\$flowExecutionUrl&_eventId=propagate\">\n" + //
+ " \\#elseif \\(\\$promptForIdP\\)\n" + //
+ " <meta http-equiv=\"refresh\" content=\"10;url=\\$flowExecutionUrl&_eventId=local\">\n" + //
+ " \\#end";
- final String newText1 = "<!-- begin added for OIDC RP-initiated logout -->\n" + //
- " #elseif (\\$postLogoutRedirectUri)\n" + //
- " <meta http-equiv=\"refresh\" content=\"10;url=\\$flowExecutionUrl&_eventId=proceed\">\n" + //
- "<!-- end added for OIDC RP-initiated logout -->\n\n";
-
- replaceIdPHomeFile(pathToLogoutVm, oldText1, oldText1 + "\n" + newText1);
-
- final String oldText2 = "<p><strong>#springMessageText\\(\"idp.logout.complete\", \"The logout operation is complete, and no other services appear to have been accessed during this session.\"\\)</strong></p>\n";
-
- final String newText2 = "<!-- begin added for OIDC RP-initiated logout -->\n" + //
- " #if (\\$postLogoutRedirectUri)\n" + //
- " <p>Text here to explain the link back to RP</p>\n" + //
- " <a href=\"\\$flowExecutionUrl&_eventId=proceed\">Link text</a>\n" + //
- " #else\n" + //
- "<!-- end added for OIDC RP-initiated logout -->\n\n";
-
- replaceIdPHomeFile(pathToLogoutVm, oldText2, oldText2 + "\n" + newText2);
-
- final String oldText3 = " <!-- Complete the flow by adding a hidden iframe. -->\n" + //
- " <iframe style=\"display:none\" src=\"\\$flowExecutionUrl&_eventId=proceed\"></iframe>\n";
-
- final String newText3 = " #end\n";
-
- replaceIdPHomeFile(pathToLogoutVm, oldText3, oldText3 + "\n" + newText3);
-
+ replaceIdPHomeFile(pathToLogoutVm, toComment, "<!--\n" + toComment + "\n-->\n");
}
/**
@@ -225,6 +205,8 @@ public class OPConformanceTest extends BaseOPTest {
enableDynamicClientRegistration();
+ enableTargetedEndpointAsJWTAudience();
+
setUpLogoutView();
setUpLogoutPropagateView();
@@ -535,18 +517,274 @@ public class OPConformanceTest extends BaseOPTest {
// logout tests
- @Test(enabled = false)
+ @Test
@IdPV5OrLater
@LinuxOnly
@OPConformance
- public void testBackchannelRpInitiatedLogoutCertificationProfileAuthorization() throws Exception {
+ public void testBackchannelRpInitiatedLogoutCertificationProfileAuthorizationCode() throws Exception {
final String description = "Backchannel RP initiated logout certification profile authorization test";
final String testPlan = //
"scripts/run-test-plan.py --verbose " + //
"'oidcc-backchannel-rp-initiated-logout-certification-test-plan[response_type=code][client_registration=dynamic_client]' " + //
- "testop-config-logout.json";
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testBackchannelRpInitiatedLogoutCertificationProfileAuthorizationIdToken() throws Exception {
+
+ final String description = "Backchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-backchannel-rp-initiated-logout-certification-test-plan[response_type=id_token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testBackchannelRpInitiatedLogoutCertificationProfileAuthorizationIdTokenToken() throws Exception {
+
+ final String description = "Backchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-backchannel-rp-initiated-logout-certification-test-plan[response_type=id_token token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testBackchannelRpInitiatedLogoutCertificationProfileAuthorizationCodeIdToken() throws Exception {
+
+ final String description = "Backchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-backchannel-rp-initiated-logout-certification-test-plan[response_type=code id_token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testBackchannelRpInitiatedLogoutCertificationProfileAuthorizationCodeToken() throws Exception {
+
+ final String description = "Backchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-backchannel-rp-initiated-logout-certification-test-plan[response_type=code token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testBackchannelRpInitiatedLogoutCertificationProfileAuthorizationCodeIdTokenToken() throws Exception {
+
+ final String description = "Backchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-backchannel-rp-initiated-logout-certification-test-plan[response_type=code id_token token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testFrontchannelRpInitiatedLogoutCertificationProfileAuthorizationCode() throws Exception {
+
+ final String description = "Frontchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-frontchannel-rp-initiated-logout-certification-test-plan[response_type=code][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testFrontchannelRpInitiatedLogoutCertificationProfileAuthorizationIdToken() throws Exception {
+
+ final String description = "Frontchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-frontchannel-rp-initiated-logout-certification-test-plan[response_type=id_token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testFrontchannelRpInitiatedLogoutCertificationProfileAuthorizationIdTokenToken() throws Exception {
+
+ final String description = "Frontchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-frontchannel-rp-initiated-logout-certification-test-plan[response_type=id_token token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testFrontchannelRpInitiatedLogoutCertificationProfileAuthorizationCodeIdToken() throws Exception {
+
+ final String description = "Frontchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-frontchannel-rp-initiated-logout-certification-test-plan[response_type=code id_token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testFrontchannelRpInitiatedLogoutCertificationProfileAuthorizationCodeToken() throws Exception {
+
+ final String description = "Frontchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-frontchannel-rp-initiated-logout-certification-test-plan[response_type=code token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testFrontchannelRpInitiatedLogoutCertificationProfileAuthorizationCodeIdTokenToken() throws Exception {
+
+ final String description = "Frontchannel RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-frontchannel-rp-initiated-logout-certification-test-plan[response_type=code id_token token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testRpInitiatedLogoutCertificationProfileAuthorizationCode() throws Exception {
+
+ final String description = "RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-rp-initiated-logout-certification-test-plan[response_type=code][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testRpInitiatedLogoutCertificationProfileAuthorizationIdToken() throws Exception {
+
+ final String description = "RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-rp-initiated-logout-certification-test-plan[response_type=code id_token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testRpInitiatedLogoutCertificationProfileAuthorizationIdTokenToken() throws Exception {
+
+ final String description = "RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-rp-initiated-logout-certification-test-plan[response_type=id_token token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testRpInitiatedLogoutCertificationProfileAuthorizationCodeIdToken() throws Exception {
+
+ final String description = "RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-rp-initiated-logout-certification-test-plan[response_type=code id_token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
+
+ conformanceSuite.runTest(description, testPlan);
+ }
+
+ @Test
+ @IdPV5OrLater
+ @LinuxOnly
+ @OPConformance
+ public void testRpInitiatedLogoutCertificationProfileAuthorizationCodeToken() throws Exception {
+
+ final String description = "RP initiated logout certification profile authorization test";
+
+ final String testPlan = //
+ "scripts/run-test-plan.py --verbose " + //
+ "'oidcc-rp-initiated-logout-certification-test-plan[response_type=code token][client_registration=dynamic_client]' " + //
+ "testop-config.json";
conformanceSuite.runTest(description, testPlan);
}
diff --git a/src/test/oidc/conformance-suite/testop-config-logout.json b/src/test/oidc/conformance-suite/testop-config-logout.json
deleted file mode 100644
index 84801f6..0000000
--- a/src/test/oidc/conformance-suite/testop-config-logout.json
+++ /dev/null
@@ -1,1393 +0,0 @@
-{
- "description": "oidc-provider OIDC",
- "server": {
- "discoveryUrl": "https://testop.funet.fi/.well-known/openid-configuration"
- },
- "client": {
- "client_name": "first-openid-client"
- },
- "client2": {
- "client_name": "second-openid-client"
- },
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- }
- ],
- "override": {
- "oidcc-prompt-login": {
- "browser": [
- {
- "comment": "updates placeholder during the second authorization",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "Forgot your password",
- "update-image-placeholder-optional"
- ],
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-max-age-1": {
- "browser": [
- {
- "comment": "updates placeholder during the second authorization",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "Forgot your password",
- "update-image-placeholder-optional"
- ],
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-response-type-missing": {
- "browser": [
- {
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect redirect uri mismatch error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "UnableToDecode",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-ensure-request-without-nonce-fails": {
- "browser": [
- {
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect redirect uri mismatch error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "UnableToDecode",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-ensure-registered-redirect-uri": {
- "browser": [
- {
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect redirect uri mismatch error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "InvalidRedirectionURI",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-ensure-redirect-uri-in-authorization-request": {
- "browser": [
- {
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect redirect uri mismatch error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "UnableToDecode",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-redirect-uri-query-added": {
- "browser": [
- {
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect redirect uri mismatch error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "InvalidRedirectionURI",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-redirect-uri-query-mismatch": {
- "browser": [
- {
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect redirect uri mismatch error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "InvalidRedirectionURI",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-registration-logo-uri": {
- "browser": [
- {
- "comment": "expect a login page with logo",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect a login page with logo",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "Forgot your password",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-registration-policy-uri": {
- "browser": [
- {
- "comment": "expect a login page with policy document link",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect a login page with policy document link",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "Forgot your password",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-registration-tos-uri": {
- "browser": [
- {
- "comment": "expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "Forgot your password",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-rp-initiated-logout-bad-post-logout-redirect-uri": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "InvalidRedirectionURI",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
-
- ]
- },
- "oidcc-rp-initiated-logout-modified-id-token-hint": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "InvalidMessageContext",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
-
- ]
- },
- "oidcc-rp-initiated-logout-no-id-token-hint": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 15,
- "Attempting to log out of the following services",
- "update-image-placeholder"
- ]
- ]
- }
-
- ]
- }
-
- ]
- },
- "oidcc-rp-initiated-logout-no-params": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 15,
- "Attempting to log out of the following services",
- "update-image-placeholder"
- ]
- ]
- }
-
- ]
- }
-
- ]
- },
- "oidcc-rp-initiated-logout-no-post-logout-redirect-uri": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect the logout page",
- "match": "https://testop.funet.fi/idp/profile*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 15,
- "The logout operation is complete",
- "update-image-placeholder"
- ]
- ]
- }
-
- ]
- }
-
- ]
- },
- "oidcc-rp-initiated-logout-only-state": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 15,
- "Attempting to log out of the following services",
- "update-image-placeholder"
- ]
- ]
- }
-
- ]
- }
-
- ]
- },
- "oidcc-rp-initiated-logout-bad-id-token-hint": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete",
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect a login page with TOS document link",
- "match": "https://testop.funet.fi/idp/profile/*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 15,
- "Unsupported Request",
- "update-image-placeholder"
- ]
- ]
- }
-
- ]
- }
-
- ]
- },
- "oidcc-rp-initiated-logout": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete 1",
- "optional": true,
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Verify Complete 4",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "optional" : true,
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 18,
- "Attempting to log out of the following services",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-frontchannel-rp-initiated-logout": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete 1",
- "optional": true,
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Verify Complete 4",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "optional" : true,
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 18,
- "Attempting to log out of the following services",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-backchannel-rp-initiated-logout": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete 1",
- "optional": true,
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Verify Complete 4",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "optional" : true,
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 18,
- "Attempting to log out of the following services",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-rp-initiated-logout-query-added-to-post-logout-redirect-uri": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete 1",
- "optional": true,
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Expect redirect uri mismatch error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 10,
- "InvalidRedirectionURI",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- },
- "oidcc-rp-initiated-logout-no-state": {
- "browser": [
- {
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "tasks": [
- {
- "task": "Login",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "text",
- "name",
- "j_username",
- "teppo",
- "optional"
- ],
- [
- "text",
- "name",
- "j_password",
- "testaaja",
- "optional"
- ],
- [
- "click",
- "name",
- "_eventId_proceed"
- ]
- ]
- },
- {
- "task": "Consent",
- "optional": true,
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
- "commands": [
- [
- "click",
- "class",
- "login-submit"
- ]
- ]
- },
- {
- "task": "Verify Complete 1",
- "optional": true,
- "match": "*/test/*/callback*",
- "commands": [
- [
- "wait",
- "id",
- "submission_complete",
- 10
- ]
- ]
- }
- ]
- },
- {
- "comment": "expect an error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "tasks": [
- {
- "task": "Verify Complete 4",
- "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
- "optional" : true,
- "commands": [
- [
- "wait",
- "xpath",
- "//*",
- 18,
- "Attempting to log out of the following services",
- "update-image-placeholder"
- ]
- ]
- }
- ]
- }
- ]
- }
- }
-}
-
diff --git a/src/test/oidc/conformance-suite/testop-config.json b/src/test/oidc/conformance-suite/testop-config.json
index 494ed00..b1dbab6 100644
--- a/src/test/oidc/conformance-suite/testop-config.json
+++ b/src/test/oidc/conformance-suite/testop-config.json
@@ -53,7 +53,7 @@
},
{
"task": "Verify Complete",
- "match": "*/test/*/callback*",
+ "match": "*/test/*",
"commands": [
[
"wait",
@@ -121,7 +121,7 @@
},
{
"task": "Verify Complete",
- "match": "*/test/*/callback*",
+ "match": "*/test/*",
"commands": [
[
"wait",
@@ -475,10 +475,31 @@
]
}
]
+ },
+ {
+ "comment": "expect an error page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Expect a login page with TOS document link",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "commands": [
+ [
+ "wait",
+ "xpath",
+ "//*",
+ 10,
+ "InvalidRedirectionURI",
+ "update-image-placeholder"
+ ]
+ ]
+ }
+ ]
}
+
]
},
- "oidcc-rp-initiated-logout-query-added-to-post-logout-redirect-uri": {
+ "oidcc-rp-initiated-logout-modified-id-token-hint": {
"browser": [
{
"match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
@@ -536,23 +557,822 @@
]
},
{
- "comment": "expect an immediate error page",
- "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "comment": "expect an error page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
"tasks": [
{
- "task": "Expect error page",
- "match": "https://oidcc-provider:3000/session/end*",
+ "task": "Expect a login page with TOS document link",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
"commands": [
[
"wait",
"xpath",
"//*",
10,
- "post_logout_redirect_uri not registered",
+ "InvalidMessageContext",
+ "update-image-placeholder"
+ ]
+ ]
+ }
+ ]
+ }
+
+ ]
+ },
+ "oidcc-rp-initiated-logout-no-id-token-hint": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete",
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect the logout confirmation page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Expect the logout prompt",
+ "match": "https://testop.funet.fi/idp/profile/*",
+ "commands": [
+ [
+ "wait",
+ "xpath",
+ "//*",
+ 15,
+ "End your SSO session and attempt logout of services accessed",
+ "update-image-placeholder"
+ ]
+ ]
+ }
+
+ ]
+ }
+
+ ]
+ },
+ "oidcc-rp-initiated-logout-no-params": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete",
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect the logout confirmation page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Expect the logout prompt",
+ "match": "https://testop.funet.fi/idp/profile/*",
+ "commands": [
+ [
+ "wait",
+ "xpath",
+ "//*",
+ 15,
+ "End your SSO session and attempt logout of services accessed",
+ "update-image-placeholder"
+ ]
+ ]
+ }
+
+ ]
+ }
+ ]
+ },
+ "oidcc-rp-initiated-logout-no-post-logout-redirect-uri": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete",
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect an error page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Expect the logout page",
+ "match": "https://testop.funet.fi/idp/profile*",
+ "commands": [
+ [
+ "wait",
+ "xpath",
+ "//*",
+ 15,
+ "The logout operation is complete",
"update-image-placeholder"
]
]
}
+
+ ]
+ }
+
+ ]
+ },
+ "oidcc-rp-initiated-logout-only-state": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete",
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect the logout confirmation page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Expect the logout prompt",
+ "match": "https://testop.funet.fi/idp/profile/*",
+ "commands": [
+ [
+ "wait",
+ "xpath",
+ "//*",
+ 15,
+ "End your SSO session and attempt logout of services accessed",
+ "update-image-placeholder"
+ ]
+ ]
+ }
+
+ ]
+ }
+ ]
+ },
+ "oidcc-rp-initiated-logout-bad-id-token-hint": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete",
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect an error page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Expect a login page with TOS document link",
+ "match": "https://testop.funet.fi/idp/profile/*",
+ "commands": [
+ [
+ "wait",
+ "xpath",
+ "//*",
+ 15,
+ "Unsupported Request",
+ "update-image-placeholder"
+ ]
+ ]
+ }
+
+ ]
+ }
+
+ ]
+ },
+ "oidcc-rp-initiated-logout": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete 1",
+ "optional": true,
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect the logout complete page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Verify Complete 1",
+ "optional": true,
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "oidcc-frontchannel-rp-initiated-logout": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete 1",
+ "optional": true,
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "click logout propagate",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Propagate",
+ "optional": false,
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "commands": [
+ [
+ "click",
+ "id",
+ "logout_propagate"
+ ]
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "oidcc-backchannel-rp-initiated-logout": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete 1",
+ "optional": true,
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "click logout propagate",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Propagate",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "commands": [
+ [
+ "click",
+ "id",
+ "logout_propagate"
+ ]
+ ]
+ }
+ ]
+ }
+
+ ]
+ },
+ "oidcc-rp-initiated-logout-query-added-to-post-logout-redirect-uri": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete 1",
+ "optional": true,
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect an immediate error page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Expect redirect uri mismatch error page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "commands": [
+ [
+ "wait",
+ "xpath",
+ "//*",
+ 10,
+ "InvalidRedirectionURI",
+ "update-image-placeholder"
+ ]
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "oidcc-rp-initiated-logout-no-state": {
+ "browser": [
+ {
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "tasks": [
+ {
+ "task": "Login",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "text",
+ "name",
+ "j_username",
+ "teppo",
+ "optional"
+ ],
+ [
+ "text",
+ "name",
+ "j_password",
+ "testaaja",
+ "optional"
+ ],
+ [
+ "click",
+ "name",
+ "_eventId_proceed"
+ ]
+ ]
+ },
+ {
+ "task": "Consent",
+ "optional": true,
+ "match": "https://testop.funet.fi/idp/profile/oidc/authorize*",
+ "commands": [
+ [
+ "click",
+ "class",
+ "login-submit"
+ ]
+ ]
+ },
+ {
+ "task": "Verify Complete 1",
+ "optional": true,
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
+ ]
+ },
+ {
+ "comment": "expect the logout complete page",
+ "match": "https://testop.funet.fi/idp/profile/oidc/end-session*",
+ "tasks": [
+ {
+ "task": "Verify Complete 1",
+ "optional": true,
+ "match": "*/test/*/callback*",
+ "commands": [
+ [
+ "wait",
+ "id",
+ "submission_complete",
+ 10
+ ]
+ ]
+ }
]
}
]
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.