From 144643d6af83331baff8335d2aca81e240944f5d Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Sat, 30 Apr 2016 12:31:43 +0200 Subject: [PATCH] Work around unexpected IllegalArgumentException when user enters garbage host name --- app/build.gradle | 1 + .../davdroid/ui/setup/LoginCredentialsFragment.java | 7 ++++++- .../java/at/bitfire/davdroid/HttpClientTest.java | 2 +- build.gradle | 2 +- doc/.gitignore | 1 + 5 files changed, 10 insertions(+), 3 deletions(-) rename app/src/{androidTest => test}/java/at/bitfire/davdroid/HttpClientTest.java (98%) create mode 100644 doc/.gitignore diff --git a/app/build.gradle b/app/build.gradle index 925b9bff..02c06371 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -80,5 +80,6 @@ dependencies { // for tests testCompile 'junit:junit:4.12' + testCompile 'com.squareup.okhttp3:mockwebserver:3.2.0' androidTestCompile 'com.squareup.okhttp3:mockwebserver:3.2.0' } diff --git a/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginCredentialsFragment.java b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginCredentialsFragment.java index fb7e766a..8949b007 100644 --- a/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginCredentialsFragment.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/setup/LoginCredentialsFragment.java @@ -24,7 +24,9 @@ import android.widget.RadioButton; import java.net.IDN; import java.net.URI; import java.net.URISyntaxException; +import java.util.logging.Level; +import at.bitfire.dav4android.Constants; import at.bitfire.davdroid.R; import at.bitfire.davdroid.ui.widget.EditPassword; @@ -122,8 +124,11 @@ public class LoginCredentialsFragment extends Fragment implements CompoundButton if (host.isEmpty()) { editBaseURL.setError(getString(R.string.login_url_host_name_required)); valid = false; - } else + } else try { host = IDN.toASCII(host); + } catch(IllegalArgumentException e) { + Constants.log.log(Level.WARNING, "Host name not conforming to RFC 3490", e); + } String path = baseUrl.getEncodedPath(); int port = baseUrl.getPort(); diff --git a/app/src/androidTest/java/at/bitfire/davdroid/HttpClientTest.java b/app/src/test/java/at/bitfire/davdroid/HttpClientTest.java similarity index 98% rename from app/src/androidTest/java/at/bitfire/davdroid/HttpClientTest.java rename to app/src/test/java/at/bitfire/davdroid/HttpClientTest.java index bb75c48c..c80b7614 100644 --- a/app/src/androidTest/java/at/bitfire/davdroid/HttpClientTest.java +++ b/app/src/test/java/at/bitfire/davdroid/HttpClientTest.java @@ -29,7 +29,7 @@ public class HttpClientTest extends TestCase { httpClient = HttpClient.create(); server = new MockWebServer(); - server.start(); + server.start(30000); } @Override diff --git a/build.gradle b/build.gradle index 6c288c99..90c4890e 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.0.0+' + classpath 'com.android.tools.build:gradle:2.1.0' } } diff --git a/doc/.gitignore b/doc/.gitignore new file mode 100644 index 00000000..547e8636 --- /dev/null +++ b/doc/.gitignore @@ -0,0 +1 @@ +pr/