From e1ec635a520a1e424ba6103ee944d289b3a6a632 Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Wed, 17 Jan 2018 09:08:08 +0100 Subject: [PATCH 1/6] Fix the argument type for pushFile --- src/main/java/io/appium/java_client/MobileCommand.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index 421649a72..c88f34a63 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -24,6 +24,7 @@ import java.time.Duration; import java.util.AbstractMap; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -376,7 +377,7 @@ public static ImmutableMap prepareArguments(String[] params, */ public static Map.Entry> pushFileCommand(String remotePath, byte[] base64Data) { String[] parameters = new String[] {"path", "data"}; - Object[] values = new Object[] {remotePath, base64Data}; + Object[] values = new Object[] {remotePath, Arrays.toString(base64Data)}; return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); } } From d32c2a17e71be28585dab262e7d5a21176e0a401 Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Wed, 17 Jan 2018 09:13:11 +0100 Subject: [PATCH 2/6] Use proper call --- src/main/java/io/appium/java_client/MobileCommand.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index c88f34a63..0bf0e5cf5 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -24,7 +24,6 @@ import java.time.Duration; import java.util.AbstractMap; -import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -377,7 +376,7 @@ public static ImmutableMap prepareArguments(String[] params, */ public static Map.Entry> pushFileCommand(String remotePath, byte[] base64Data) { String[] parameters = new String[] {"path", "data"}; - Object[] values = new Object[] {remotePath, Arrays.toString(base64Data)}; + Object[] values = new Object[] {remotePath, new String(base64Data)}; return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); } } From e13a512165df0cf9245d429b83d4c009cf96076b Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Wed, 17 Jan 2018 09:17:49 +0100 Subject: [PATCH 3/6] Add explicit encoding --- src/main/java/io/appium/java_client/MobileCommand.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index 0bf0e5cf5..cc1a555eb 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -22,6 +22,7 @@ import org.openqa.selenium.remote.CommandInfo; import org.openqa.selenium.remote.http.HttpMethod; +import java.io.UnsupportedEncodingException; import java.time.Duration; import java.util.AbstractMap; import java.util.HashMap; @@ -376,7 +377,11 @@ public static ImmutableMap prepareArguments(String[] params, */ public static Map.Entry> pushFileCommand(String remotePath, byte[] base64Data) { String[] parameters = new String[] {"path", "data"}; - Object[] values = new Object[] {remotePath, new String(base64Data)}; - return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); + try { + Object[] values = new Object[]{remotePath, new String(base64Data, "UTF-8")}; + return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } } } From 9a2c2187c1767813160538d725db7fe9845eab2a Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Wed, 17 Jan 2018 10:32:55 +0100 Subject: [PATCH 4/6] make codacy happy --- src/main/java/io/appium/java_client/MobileCommand.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index cc1a555eb..8abe35ae1 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -377,11 +377,13 @@ public static ImmutableMap prepareArguments(String[] params, */ public static Map.Entry> pushFileCommand(String remotePath, byte[] base64Data) { String[] parameters = new String[] {"path", "data"}; + String data; try { - Object[] values = new Object[]{remotePath, new String(base64Data, "UTF-8")}; - return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); + data = new String(base64Data, "UTF-8"); } catch (UnsupportedEncodingException e) { - throw new RuntimeException(e); + throw new IllegalArgumentException(e); } + Object[] values = new Object[]{remotePath, data}; + return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); } } From c8de0a0b969fcd112a722081aad87b1204c90673 Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Wed, 17 Jan 2018 20:40:44 +0100 Subject: [PATCH 5/6] address review comment --- src/main/java/io/appium/java_client/MobileCommand.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index 8abe35ae1..76bfc0945 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -23,6 +23,7 @@ import org.openqa.selenium.remote.http.HttpMethod; import java.io.UnsupportedEncodingException; +import java.nio.charset.StandardCharsets; import java.time.Duration; import java.util.AbstractMap; import java.util.HashMap; @@ -377,13 +378,7 @@ public static ImmutableMap prepareArguments(String[] params, */ public static Map.Entry> pushFileCommand(String remotePath, byte[] base64Data) { String[] parameters = new String[] {"path", "data"}; - String data; - try { - data = new String(base64Data, "UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new IllegalArgumentException(e); - } - Object[] values = new Object[]{remotePath, data}; + Object[] values = new Object[]{remotePath, new String(base64Data, StandardCharsets.UTF_8)}; return new AbstractMap.SimpleEntry<>(PUSH_FILE, prepareArguments(parameters, values)); } } From 6d49209d012b612bf83f94f82fca880c4b775079 Mon Sep 17 00:00:00 2001 From: Mykola Mokhnach Date: Wed, 17 Jan 2018 20:41:47 +0100 Subject: [PATCH 6/6] Remove unused import --- src/main/java/io/appium/java_client/MobileCommand.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/io/appium/java_client/MobileCommand.java b/src/main/java/io/appium/java_client/MobileCommand.java index 76bfc0945..db80a1601 100644 --- a/src/main/java/io/appium/java_client/MobileCommand.java +++ b/src/main/java/io/appium/java_client/MobileCommand.java @@ -22,7 +22,6 @@ import org.openqa.selenium.remote.CommandInfo; import org.openqa.selenium.remote.http.HttpMethod; -import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.time.Duration; import java.util.AbstractMap;