-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Robolectric Support #226
Comments
Can you enable verbose logging in ion? That will give me more info |
Verbose logging below. I substituted https://google.com for our internal host in the logfiles but the original calls were done on our internal host. It looks like Ion is trying to do the actual network access rather than use the mock from Robolectric. Also, I realized that our API URL has an auto-redirect to an https:// url so it actually was hitting an SSL endpoint (which does have a properly signed key). Thanks for your help
|
"Peer not trusted by any of the system trust managers." and "peer not authenticated" are your concern. |
I am not familiar with Roboelectric. Are you using a wildcard cert by chance? I saw something similar the other day in my own usage. I'm guessing you are using a wildcard cert on your server, and the default strict name verifier is failing. You may need to use browser compat name verification. That's configurable by modifying the AsyncSSLSocketMiddleWare in AsyncHttpClient, accessible in Ion.getDefault().configure(). |
Ie, *.foo.com cert will fail matching hello.world.foo.com. It will work on world.foo.com though. |
Anyways, let me know on the SSL issue. I am fairly certain that the aforementioned wildcard cert is the cause (and is addressable by using the lax browser compat verifier). I'll take a look at RoboElectric and see what that's about. |
The server is using a wildcard certificate but it's only one level deep so it looks like StrictHostnameVerifier should handle it correctly (the cert is for *.google.com and the domain I'm hitting is api.google.com). I tried removing Robolectric from the equation and if I run the Ion call as normal it works as expected (even without modifying the hostname verifier). It's only when running in Robolectric's environment that it fails (and changing the Hostname verifier to AllowAllHostnameVerifier didn't change anything). I'm guessing there is some incompatibility between Robolectric and Ion due to the way Robolectric mocks out the HTTP calls. |
We use Robolectric for some of our testing and really like the way we can insert mock HTTP responses. When trying it out with an Ion request, I get the following SSL related error (which is interesting because the URL we're mocking isn't https).
The text was updated successfully, but these errors were encountered: