[keycloak-dev] Testing with mocking libraries?
Stian Thorgersen
sthorger at redhat.com
Fri Jun 8 02:01:56 EDT 2018
Looks like a temporary connection issue as it was failing before running
any tests. I've rescheduled the tests. Can you provide some details on what
we need to run the SocialLoginTest now?
On 7 June 2018 at 21:52, Steffen Kreutz <s.kreutz at yieldlab.de> wrote:
> Yes, this must be done inside the identity provider when Google sends the
> token because attackers might intercept the request and change the hd
> parameter.
>
> Unfortunately the integration tests failed randomly on Travis without
> showing any output. In my first run it were TESTS=server-group4 and
> TESTS=old and in the second TESTS=server-group1, TESTS=server-group2 and TESTS=server-group4.
> Could this be related to my changes?
>
> Best,
>
> Steffen
>
>
> Stian Thorgersen <sthorger at redhat.com> schrieb am Do., 7. Juni 2018,
> 21:20:
>
>>
>>
>> On 7 June 2018 at 10:11, Steffen Kreutz <s.kreutz at yieldlab.de> wrote:
>>
>>> I will remove the unit tests and mocking stuff from the PR and create
>>> integration tests.
>>>
>>
>> Great, thanks
>>
>>
>>>
>>> Would it be sufficient to test if logging in succeeds for an account
>>> with a valid domain and accordingly fails for an account with an invalid
>>> domain? Or should I somehow test if the token contains the hd param.
>>>
>>
>> Your code already checks if the hd param in the token matches the
>> requested hd though doesn't it? So testing valid/invalid domain seems
>> sufficient to me.
>>
>>
>>>
>>>
>>> > Am 06.06.2018 um 16:17 schrieb Marek Posolda <mposolda at redhat.com>:
>>> >
>>> > +1 for investigate. I hope the contributor can help us with clarifying
>>> > it and write the test?
>>> >
>>> > Maybe the test for this will need to be in separate class, so it's
>>> > possible to test it separately from the other Google IDP stuff, which
>>> > can be tested with free account. And the other contributors to Google
>>> > IDP, which don't have corporate account, won't be blocked.
>>> >
>>> > But I suppose that for our CI, we can test with "redhat.com" domain
>>> account?
>>> >
>>> > Marek
>>> >
>>> >
>>> > On 06/06/18 15:22, Stian Thorgersen wrote:
>>> >> I think we're in agreement here that the ideal is to do proper
>>> >> integration tests. Rather than open the doors for mocks (java based
>>> or
>>> >> http based) we should attempt to do it proper. For Google I'm not
>>> sure
>>> >> how realistic that is as the hd param probably requires an corporate
>>> >> account rather than a freebie account that we are using today for
>>> >> testing. We should investigate that first though.
>>> >>
>>> >> On 6 June 2018 at 10:03, Hynek Mlnarik <hmlnarik at redhat.com
>>> >> <mailto:hmlnarik at redhat.com>> wrote:
>>> >>
>>> >> To answer the original question whether to mock or not to mock, I
>>> >> wouldn't
>>> >> object allowing those in unit tests (which we have not that many
>>> >> though
>>> >> until now there's no need to them and I hope we can preserve this
>>> >> state).
>>> >> I'd rather not introduce those in integration tests because of
>>> >> maintenance
>>> >> costs.
>>> >>
>>> >> The biggest issue I see with mocks is that one needs to be extra
>>> >> careful to
>>> >> return exactly what's expected from the specification/counterparty.
>>> >> Since social
>>> >> providers can change without prior notice, our mocked IdPs might
>>> >> give us
>>> >> false impression that we're testing them. Furthermore, such mocks
>>> >> would be
>>> >> rather complex, and would require non-trivial maintenance. I'm
>>> >> hence biased
>>> >> against mock IdPs and prefer the tests with real IdPs as mentioned
>>> >> by Marek.
>>> >>
>>> >>
>>> >> On Mon, Jun 4, 2018 at 11:22 AM, Marek Posolda
>>> >> <mposolda at redhat.com <mailto:mposolda at redhat.com>> wrote:
>>> >>
>>> >>> Dne 1.6.2018 v 14:48 Bill Burke napsal(a):
>>> >>>> On Fri, Jun 1, 2018 at 5:18 AM, Marek Posolda
>>> >> <mposolda at redhat.com <mailto:mposolda at redhat.com>>
>>> >>> wrote:
>>> >>>>> For IDP, I am not sure how would Mocked IDP help? We already
>>> >> have lots
>>> >>> of
>>> >>>>> test coverage for Identity brokering for OIDC and SAML. The
>>> >> social
>>> >>> providers
>>> >>>>> usually implements OAuth/OIDC and there are just small
>>> >> differences
>>> >>> between
>>> >>>>> them. But those small differences and the fact that social
>>> >> providers
>>> >>> are out
>>> >>>>> of our control, is exactly the reason why we need to test
>>> >> with real
>>> >>>>> providers instead of mocks IMO.
>>> >>>>>
>>> >>>> IDP mocks are not a replacement for real testing. Just
>>> >> something that
>>> >>>> would run in public CI, that way at least there's something to
>>> >> catch
>>> >>>> issues like when/if brokering gets refactored again.
>>> >>> AFAIK the longer-term plan is to run social tests on every PR,
>>> >> to catch
>>> >>> regressions by testing with real social providers. So maybe it's
>>> >> better
>>> >>> to rather wait until we have that rather then introduce mocks now?
>>> >>>
>>> >>> Also anyone from community should be able to run social tests
>>> >> based on
>>> >>> our README. The important is, that someone could run it just for
>>> >> single
>>> >>> provider, which he is interested in (EG. Google for this PR) and
>>> >> is not
>>> >>> required to create the account+application in all social providers,
>>> >>> which we support. But I hope the social tests already support
>>> >> this now.
>>> >>>
>>> >>> Marek
>>> >>>>
>>> >>>> Bill
>>> >>>
>>> >>>
>>> >>> _______________________________________________
>>> >>> keycloak-dev mailing list
>>> >>> keycloak-dev at lists.jboss.org <mailto:keycloak-dev at lists.jboss.org>
>>> >>> https://lists.jboss.org/mailman/listinfo/keycloak-dev
>>> >> <https://lists.jboss.org/mailman/listinfo/keycloak-dev>
>>> >>>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >>
>>> >> --Hynek
>>> >> _______________________________________________
>>> >> keycloak-dev mailing list
>>> >> keycloak-dev at lists.jboss.org <mailto:keycloak-dev at lists.jboss.org>
>>> >> https://lists.jboss.org/mailman/listinfo/keycloak-dev
>>> >> <https://lists.jboss.org/mailman/listinfo/keycloak-dev>
>>> >>
>>> >>
>>> >
>>> > _______________________________________________
>>> > keycloak-dev mailing list
>>> > keycloak-dev at lists.jboss.org
>>> > https://lists.jboss.org/mailman/listinfo/keycloak-dev
>>>
>>>
>>> _______________________________________________
>>> keycloak-dev mailing list
>>> keycloak-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/keycloak-dev
>>>
>>
>>
More information about the keycloak-dev
mailing list