Skip to content

Commit f11fe00

Browse files
takeyaqamykola-mokhnach
authored andcommitted
feat: Make settings api to accept string names (#1240)
1 parent e19ac64 commit f11fe00

File tree

4 files changed

+36
-2
lines changed

4 files changed

+36
-2
lines changed

src/main/java/io/appium/java_client/HasSettings.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,18 @@ public interface HasSettings extends ExecutesMethod {
3737
* @param value value of the setting.
3838
*/
3939
default void setSetting(Setting setting, Object value) {
40+
CommandExecutionHelper.execute(this, setSettingsCommand(setting.toString(), value));
41+
}
42+
43+
/**
44+
* Set a setting for this test session It's probably better to use a
45+
* convenience function, rather than use this function directly. Try finding
46+
* the method for the specific setting you want to change.
47+
*
48+
* @param setting Setting you wish to set.
49+
* @param value value of the setting.
50+
*/
51+
default void setSetting(String setting, Object value) {
4052
CommandExecutionHelper.execute(this, setSettingsCommand(setting, value));
4153
}
4254

src/main/java/io/appium/java_client/MobileCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -469,9 +469,9 @@ public static ImmutableMap<String, Object> prepareArguments(String[] params,
469469
return new AbstractMap.SimpleEntry<>(GET_SETTINGS, ImmutableMap.of());
470470
}
471471

472-
public static Map.Entry<String, Map<String, ?>> setSettingsCommand(Setting setting, Object value) {
472+
public static Map.Entry<String, Map<String, ?>> setSettingsCommand(String setting, Object value) {
473473
return new AbstractMap.SimpleEntry<>(SET_SETTINGS, prepareArguments("settings",
474-
prepareArguments(setting.toString(), value)));
474+
prepareArguments(setting, value)));
475475
}
476476

477477
/**

src/test/java/io/appium/java_client/android/SettingTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ public class SettingTest extends BaseAndroidTest {
9292
.get(Setting.TRACK_SCROLL_EVENTS.toString()));
9393
}
9494

95+
@Test public void testSettingByString() {
96+
assertEquals(true, driver.getSettings()
97+
.get("shouldUseCompactResponses"));
98+
driver.setSetting("shouldUseCompactResponses", false);
99+
assertEquals(false, driver.getSettings()
100+
.get("shouldUseCompactResponses"));
101+
driver.setSetting("shouldUseCompactResponses", true);
102+
assertEquals(true, driver.getSettings()
103+
.get("shouldUseCompactResponses"));
104+
}
105+
95106
private void assertJSONElementContains(Setting setting, long value) {
96107
assertEquals(driver.getSettings().get(setting.toString()), value);
97108
}

src/test/java/io/appium/java_client/ios/SettingTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,16 @@ public class SettingTest extends AppIOSTest {
8383
.get(Setting.KEYBOARD_PREDICTION.toString()));
8484
}
8585

86+
@Test public void testSettingByString() {
87+
assertEquals(true, driver.getSettings()
88+
.get("shouldUseCompactResponses"));
89+
driver.setSetting("shouldUseCompactResponses", false);
90+
assertEquals(false, driver.getSettings()
91+
.get("shouldUseCompactResponses"));
92+
driver.setSetting("shouldUseCompactResponses", true);
93+
assertEquals(true, driver.getSettings()
94+
.get("shouldUseCompactResponses"));
95+
}
96+
8697

8798
}

0 commit comments

Comments
 (0)