From 9352f2dfe7b4d04a2900c7e3a3730677e9c6f4e6 Mon Sep 17 00:00:00 2001 From: Mygod Date: Thu, 14 Dec 2017 12:41:09 -0800 Subject: [PATCH] Fix SubnetTest --- .../java/com/github/shadowsocks/utils/Utils.kt | 18 +++++++++++------- .../com/github/shadowsocks/ExampleUnitTest.kt | 17 ----------------- .../com/github/shadowsocks/utils/SubnetTest.kt | 3 +-- 3 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 mobile/src/test/java/com/github/shadowsocks/ExampleUnitTest.kt diff --git a/mobile/src/main/java/com/github/shadowsocks/utils/Utils.kt b/mobile/src/main/java/com/github/shadowsocks/utils/Utils.kt index e9bed406..027e7865 100644 --- a/mobile/src/main/java/com/github/shadowsocks/utils/Utils.kt +++ b/mobile/src/main/java/com/github/shadowsocks/utils/Utils.kt @@ -7,7 +7,6 @@ import android.os.Build import android.support.v4.app.Fragment import android.support.v4.app.FragmentManager import android.support.v7.util.SortedList -import android.util.TypedValue import com.github.shadowsocks.App.Companion.app import java.lang.reflect.InvocationTargetException import java.net.InetAddress @@ -15,7 +14,11 @@ import java.net.URLConnection private val isNumericMethod by lazy { InetAddress::class.java.getMethod("isNumeric", String::class.java) } private val parseNumericAddressMethod by lazy { - InetAddress::class.java.getMethod("parseNumericAddress", String::class.java) + try { + InetAddress::class.java.getMethod("parseNumericAddress", String::class.java) + } catch (_: NoSuchMethodException) { + null + } } private val fieldChildFragmentManager by lazy { val field = Fragment::class.java.getDeclaredField("mChildFragmentManager") @@ -24,11 +27,12 @@ private val fieldChildFragmentManager by lazy { } fun String.isNumericAddress(): Boolean = isNumericMethod.invoke(null, this) as Boolean -fun String.parseNumericAddress(): InetAddress = try { - parseNumericAddressMethod.invoke(null, this) as InetAddress -} catch (exc: InvocationTargetException) { - throw exc.cause ?: exc -} +fun String.parseNumericAddress(): InetAddress = + if (parseNumericAddressMethod == null) InetAddress.getByName(this) else try { + parseNumericAddressMethod!!.invoke(null, this) as InetAddress + } catch (exc: InvocationTargetException) { + throw exc.cause ?: exc + } fun parsePort(str: String?, default: Int, min: Int = 1025): Int { val x = str?.toIntOrNull() ?: default diff --git a/mobile/src/test/java/com/github/shadowsocks/ExampleUnitTest.kt b/mobile/src/test/java/com/github/shadowsocks/ExampleUnitTest.kt deleted file mode 100644 index fb4ec4b4..00000000 --- a/mobile/src/test/java/com/github/shadowsocks/ExampleUnitTest.kt +++ /dev/null @@ -1,17 +0,0 @@ -package com.github.shadowsocks - -import org.junit.Test - -import org.junit.Assert.* - -/** - * Example local unit test, which will execute on the development machine (host). - * - * @see [Testing documentation](http://d.android.com/tools/testing) - */ -class ExampleUnitTest { - @Test - fun addition_isCorrect() { - assertEquals(4, (2 + 2).toLong()) - } -} \ No newline at end of file diff --git a/mobile/src/test/java/com/github/shadowsocks/utils/SubnetTest.kt b/mobile/src/test/java/com/github/shadowsocks/utils/SubnetTest.kt index 07d9a26b..4b2f23be 100644 --- a/mobile/src/test/java/com/github/shadowsocks/utils/SubnetTest.kt +++ b/mobile/src/test/java/com/github/shadowsocks/utils/SubnetTest.kt @@ -1,11 +1,10 @@ package com.github.shadowsocks.utils -import com.github.shadowsocks.utils.Subnet import org.junit.Assert import org.junit.Test import java.net.InetAddress -object SubnetTest { +class SubnetTest { @Test fun parsingAndEquals() { Assert.assertEquals(Subnet(InetAddress.getByName("1.10.11.12"), 25), Subnet.fromString("1.10.11.12/25"))