[java-idp-integration-tests] branch main updated: Update OP Conformance tests and add more logout tests

Tom Zeller tzeller at dragonacea.biz
Fri Jun 13 23:25:32 UTC 2025


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.


More information about the commits mailing list