Calabash doesn't work with google-sign in

We're working in an android app which uses Google sign-in. We did some test with calabash in the past without problems. After we updated to the new version of google sign in we have some issues.
Basically the problem is that calabash doesn't see the system dialog (for example the select account popup). So we cannot access to the app and do the different tests.

I will appreciate your help to solve this.!

Posts

  • Kent.GreenKent.Green USXamarin Team Xamurai

    A few questions might help us diagnose the issue further:

    1. What version of Google sign-in where you working with before you started seeing the issue, and what version are you using now?
    2. Did the old version of Google sign-in also have a popup that was handled previously by Calabash?
    3. Are you using the latest versions of the Calabash gems? Are you using the latest Test Cloud Gems, and if not does updating to the latest help?

    Calabash Android: https://rubygems.org/gems/calabash-android
    Calabash Cucumber: https://rubygems.org/gems/calabash-cucumber/
    Xamarin Test Cloud: https://rubygems.org/gems/xamarin-test-cloud
    Maintaining Gems using Bundler: https://developer.xamarin.com/guides/testcloud/calabash/configuring/osx/maintaining-gems-with-bundler/

  • jsmirnoffjsmirnoff ARMember ✭✭

    1) We used the Xamarin.Auth component to do the sign-in. As you know, google changed the way the allow to use auth login. We didn´t know if xamarin.auth would change the logic in the time that google asked to do it. So we used the android sdk to implement the sign-in. We followed the example code of xamarin (https://developer.xamarin.com/samples/monodroid/google-services/SigninQuickstart/)
    2) The previous version used a browser to handle the login stuff. So we didn't have any issue to access the different components.
    3) Yes, I thought that I had some issue with calabash so I updated all the stuff that you told me.

    I think that the android sdk use system popups and calabash "doesn't see them". I don't know if there is a way to fix it. I hope that we don't have to use again Xamarin.Auth because the login is working fine and it will be a rework.

    Thanks for you help Kent!

  • Kent.GreenKent.Green USXamarin Team Xamurai

    According to my tests with https://developer.xamarin.com/samples/monodroid/google-services/SigninQuickstart/; Calabash does not seem to be able to interact with the login screen that is displayed; as you observed it appears to be "invisible" to Calabash.

    This is probably because the screen is acting like a system popup, which Calabash is unable to directly interact with. Based on your description of your old method of handling it, it sounds like the key difference was the login was in a browser; which is queryable by Calabash unlike the system popups.

    A possible workaround for this issue is that you can use backdoors in Calabash in order to login to your app and/or populate other types of data: https://developer.xamarin.com/guides/testcloud/calabash/working-with/backdoors/

    The advantage of this approach is that if it works you should be able to test your app while only changing the test setup, rather than the underlying app (as it's not really optimal to change your workflow just to make a test pass.) However a disadvantage is that you may not be able to as easily test the normal login process.

  • jsmirnoffjsmirnoff ARMember ✭✭

    Thanks for your response. I would like to try backdoors but for me is not so clear the strategy for implement it. I'm using Google Auth and is not so easy to do a by pass for testing scenarios.

    Do you have a good document to recommend?

  • jsmirnoffjsmirnoff ARMember ✭✭

    Kent finally we found a way to use backdoor logic to run the tests. Thanks for your time!

  • Kent.GreenKent.Green USXamarin Team Xamurai

    Glad to hear you figured it out!

    If you have any suggestions for improving the backdoors guide based on what worked or what was tricky for you; you can submit that feedback by clicking on the I love it! or I have a problem buttons at the top of the guide. This will also open up a textbox to describe your observations in more detail:

Sign In or Register to comment.