diff options
author | Richard van der Hoff <richard@matrix.org> | 2021-02-03 21:05:52 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2021-02-03 21:05:52 +0000 |
commit | 03e762ac9120c92895f9e5bd3121456567e53aef (patch) | |
tree | a8878d7f50dbc1033f2357258ec0c752ca6c2368 /tests | |
parent | Merge remote-tracking branch 'origin/release-v1.27.0' into fosdem-2021 (diff) | |
parent | Merge remote-tracking branch 'origin/release-v1.27.0' into social_login_hotfixes (diff) | |
download | synapse-fosdem-2021.tar.xz |
Merge branch 'social_login_hotfixes' into fosdem-2021 github/fosdem-2021 fosdem-2021
Diffstat (limited to 'tests')
-rw-r--r-- | tests/rest/client/v1/test_login.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/tests/rest/client/v1/test_login.py b/tests/rest/client/v1/test_login.py index 66dfdaffbc..ceb4ad2366 100644 --- a/tests/rest/client/v1/test_login.py +++ b/tests/rest/client/v1/test_login.py @@ -15,7 +15,7 @@ import time import urllib.parse -from typing import Any, Dict, Union +from typing import Any, Dict, List, Union from urllib.parse import urlencode from mock import Mock @@ -493,13 +493,21 @@ class MultiSSOTestCase(unittest.HomeserverTestCase): self.assertEqual(channel.code, 200, channel.result) # parse the form to check it has fields assumed elsewhere in this class + html = channel.result["body"].decode("utf-8") p = TestHtmlParser() - p.feed(channel.result["body"].decode("utf-8")) + p.feed(html) p.close() - self.assertCountEqual(p.radios["idp"], ["cas", "oidc", "oidc-idp1", "saml"]) + # there should be a link for each href + returned_idps = [] # type: List[str] + for link in p.links: + path, query = link.split("?", 1) + self.assertEqual(path, "pick_idp") + params = urllib.parse.parse_qs(query) + self.assertEqual(params["redirectUrl"], [TEST_CLIENT_REDIRECT_URL]) + returned_idps.append(params["idp"][0]) - self.assertEqual(p.hiddens["redirectUrl"], TEST_CLIENT_REDIRECT_URL) + self.assertCountEqual(returned_idps, ["cas", "oidc", "oidc-idp1", "saml"]) def test_multi_sso_redirect_to_cas(self): """If CAS is chosen, should redirect to the CAS server""" |