Skip to content

Commit 0681576

Browse files
committed
allow MobileOptions to be instantiated
1 parent 3dd48dd commit 0681576

File tree

4 files changed

+118
-139
lines changed

4 files changed

+118
-139
lines changed

src/main/java/io/appium/java_client/remote/MobileOptions.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@
2323

2424
import java.net.URL;
2525

26-
public abstract class MobileOptions<T extends MobileOptions<T>> extends MutableCapabilities {
26+
public class MobileOptions<T extends MobileOptions<T>> extends MutableCapabilities {
27+
28+
public MobileOptions() {
29+
}
30+
31+
public MobileOptions(Capabilities source) {
32+
this();
33+
merge(source);
34+
}
2735

2836
public String getPlatformName() {
2937
return (String) getCapability(CapabilityType.PLATFORM_NAME);

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

Lines changed: 1 addition & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,11 @@
1616

1717
package io.appium.java_client.android;
1818

19-
import io.appium.java_client.remote.AutomationName;
2019
import io.appium.java_client.remote.MobilePlatform;
2120
import org.junit.Test;
2221
import org.openqa.selenium.MutableCapabilities;
23-
import org.openqa.selenium.ScreenOrientation;
2422

25-
import java.net.MalformedURLException;
26-
import java.net.URL;
27-
28-
import static org.junit.Assert.*;
23+
import static org.junit.Assert.assertEquals;
2924

3025
public class AndroidOptionsTest {
3126
private AndroidMobileOptions androidMobileOptions = new AndroidMobileOptions();
@@ -48,67 +43,4 @@ public void acceptsExistingCapabilities() {
4843
assertEquals("10", androidMobileOptions.getPlatformVersion());
4944
assertEquals(60, androidMobileOptions.getNewCommandTimeout());
5045
}
51-
52-
@Test
53-
public void acceptsMobileCapabilities() throws MalformedURLException {
54-
androidMobileOptions.setApp(new URL("http://example.com/myapp.apk"))
55-
.setAutomationName(AutomationName.ANDROID_UIAUTOMATOR2)
56-
.setPlatformVersion("10")
57-
.setDeviceName("Pixel")
58-
.setOtherApps("/path/to/app.apk")
59-
.setLocale("fr_CA")
60-
.setUdid("1ae203187fc012g")
61-
.setOrientation(ScreenOrientation.LANDSCAPE)
62-
.setNewCommandTimeout(60)
63-
.setLanguage("fr");
64-
65-
assertEquals("http://example.com/myapp.apk", androidMobileOptions.getApp());
66-
assertEquals(AutomationName.ANDROID_UIAUTOMATOR2, androidMobileOptions.getAutomationName());
67-
assertEquals("10", androidMobileOptions.getPlatformVersion());
68-
assertEquals("Pixel", androidMobileOptions.getDeviceName());
69-
assertEquals("/path/to/app.apk", androidMobileOptions.getOtherApps());
70-
assertEquals("fr_CA", androidMobileOptions.getLocale());
71-
assertEquals("1ae203187fc012g", androidMobileOptions.getUdid());
72-
assertEquals(ScreenOrientation.LANDSCAPE, androidMobileOptions.getOrientation());
73-
assertEquals(60, androidMobileOptions.getNewCommandTimeout());
74-
assertEquals("fr", androidMobileOptions.getLanguage());
75-
}
76-
77-
@Test
78-
public void acceptsMobileBooleanCapabilityDefaults() {
79-
androidMobileOptions.setClearSystemFiles()
80-
.setAutoWebview()
81-
.setEnablePerformanceLogging()
82-
.setEventTimings()
83-
.setAutoWebview()
84-
.setFullReset()
85-
.setPrintPageSourceOnFindFailure();
86-
87-
assertTrue(androidMobileOptions.isClearSystemFiles());
88-
assertTrue(androidMobileOptions.isAutoWebview());
89-
assertTrue(androidMobileOptions.isEnablePerformanceLogging());
90-
assertTrue(androidMobileOptions.isEventTimings());
91-
assertTrue(androidMobileOptions.isAutoWebview());
92-
assertTrue(androidMobileOptions.isFullReset());
93-
assertTrue(androidMobileOptions.isPrintPageSourceOnFindFailure());
94-
}
95-
96-
@Test
97-
public void setsMobileBooleanCapabilities() {
98-
androidMobileOptions.setClearSystemFiles(false)
99-
.setAutoWebview(false)
100-
.setEnablePerformanceLogging(false)
101-
.setEventTimings(false)
102-
.setAutoWebview(false)
103-
.setFullReset(false)
104-
.setPrintPageSourceOnFindFailure(false);
105-
106-
assertFalse(androidMobileOptions.isClearSystemFiles());
107-
assertFalse(androidMobileOptions.isAutoWebview());
108-
assertFalse(androidMobileOptions.isEnablePerformanceLogging());
109-
assertFalse(androidMobileOptions.isEventTimings());
110-
assertFalse(androidMobileOptions.isAutoWebview());
111-
assertFalse(androidMobileOptions.isFullReset());
112-
assertFalse(androidMobileOptions.isPrintPageSourceOnFindFailure());
113-
}
11446
}

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

Lines changed: 1 addition & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,11 @@
1616

1717
package io.appium.java_client.ios;
1818

19-
import io.appium.java_client.remote.AutomationName;
2019
import io.appium.java_client.remote.MobilePlatform;
2120
import org.junit.Test;
2221
import org.openqa.selenium.MutableCapabilities;
23-
import org.openqa.selenium.ScreenOrientation;
2422

25-
import java.net.MalformedURLException;
26-
import java.net.URL;
27-
28-
import static org.junit.Assert.*;
23+
import static org.junit.Assert.assertEquals;
2924

3025
public class IOSOptionsTest {
3126
private IOSMobileOptions iosMobileOptions = new IOSMobileOptions();
@@ -48,67 +43,4 @@ public void acceptsExistingCapabilities() {
4843
assertEquals("10", iosMobileOptions.getPlatformVersion());
4944
assertEquals(60, iosMobileOptions.getNewCommandTimeout());
5045
}
51-
52-
@Test
53-
public void acceptsMobileCapabilities() throws MalformedURLException {
54-
iosMobileOptions.setApp(new URL("http://example.com/myapp.apk"))
55-
.setAutomationName(AutomationName.ANDROID_UIAUTOMATOR2)
56-
.setPlatformVersion("10")
57-
.setDeviceName("Pixel")
58-
.setOtherApps("/path/to/app.apk")
59-
.setLocale("fr_CA")
60-
.setUdid("1ae203187fc012g")
61-
.setOrientation(ScreenOrientation.LANDSCAPE)
62-
.setNewCommandTimeout(60)
63-
.setLanguage("fr");
64-
65-
assertEquals("http://example.com/myapp.apk", iosMobileOptions.getApp());
66-
assertEquals(AutomationName.ANDROID_UIAUTOMATOR2, iosMobileOptions.getAutomationName());
67-
assertEquals("10", iosMobileOptions.getPlatformVersion());
68-
assertEquals("Pixel", iosMobileOptions.getDeviceName());
69-
assertEquals("/path/to/app.apk", iosMobileOptions.getOtherApps());
70-
assertEquals("fr_CA", iosMobileOptions.getLocale());
71-
assertEquals("1ae203187fc012g", iosMobileOptions.getUdid());
72-
assertEquals(ScreenOrientation.LANDSCAPE, iosMobileOptions.getOrientation());
73-
assertEquals(60, iosMobileOptions.getNewCommandTimeout());
74-
assertEquals("fr", iosMobileOptions.getLanguage());
75-
}
76-
77-
@Test
78-
public void acceptsMobileBooleanCapabilityDefaults() {
79-
iosMobileOptions.setClearSystemFiles()
80-
.setAutoWebview()
81-
.setEnablePerformanceLogging()
82-
.setEventTimings()
83-
.setAutoWebview()
84-
.setFullReset()
85-
.setPrintPageSourceOnFindFailure();
86-
87-
assertTrue(iosMobileOptions.isClearSystemFiles());
88-
assertTrue(iosMobileOptions.isAutoWebview());
89-
assertTrue(iosMobileOptions.isEnablePerformanceLogging());
90-
assertTrue(iosMobileOptions.isEventTimings());
91-
assertTrue(iosMobileOptions.isAutoWebview());
92-
assertTrue(iosMobileOptions.isFullReset());
93-
assertTrue(iosMobileOptions.isPrintPageSourceOnFindFailure());
94-
}
95-
96-
@Test
97-
public void setsMobileBooleanCapabilities() {
98-
iosMobileOptions.setClearSystemFiles(false)
99-
.setAutoWebview(false)
100-
.setEnablePerformanceLogging(false)
101-
.setEventTimings(false)
102-
.setAutoWebview(false)
103-
.setFullReset(false)
104-
.setPrintPageSourceOnFindFailure(false);
105-
106-
assertFalse(iosMobileOptions.isClearSystemFiles());
107-
assertFalse(iosMobileOptions.isAutoWebview());
108-
assertFalse(iosMobileOptions.isEnablePerformanceLogging());
109-
assertFalse(iosMobileOptions.isEventTimings());
110-
assertFalse(iosMobileOptions.isAutoWebview());
111-
assertFalse(iosMobileOptions.isFullReset());
112-
assertFalse(iosMobileOptions.isPrintPageSourceOnFindFailure());
113-
}
11446
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
/*
2+
* Licensed under the Apache License, Version 2.0 (the "License");
3+
* you may not use this file except in compliance with the License.
4+
* See the NOTICE file distributed with this work for additional
5+
* information regarding copyright ownership.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package io.appium.java_client.remote;
18+
19+
import org.junit.Test;
20+
import org.openqa.selenium.MutableCapabilities;
21+
import org.openqa.selenium.ScreenOrientation;
22+
23+
import java.net.MalformedURLException;
24+
import java.net.URL;
25+
26+
import static org.junit.Assert.*;
27+
28+
public class MobileOptionsTest {
29+
private MobileOptions mobileOptions = new MobileOptions();
30+
31+
@Test
32+
public void acceptsExistingCapabilities() {
33+
MutableCapabilities capabilities = new MutableCapabilities();
34+
capabilities.setCapability("deviceName", "Pixel");
35+
capabilities.setCapability("platformVersion", "10");
36+
capabilities.setCapability("newCommandTimeout", 60);
37+
38+
mobileOptions = new MobileOptions(capabilities);
39+
40+
assertEquals("Pixel", mobileOptions.getDeviceName());
41+
assertEquals("10", mobileOptions.getPlatformVersion());
42+
assertEquals(60, mobileOptions.getNewCommandTimeout());
43+
}
44+
45+
@Test
46+
public void acceptsMobileCapabilities() throws MalformedURLException {
47+
mobileOptions.setApp(new URL("http://example.com/myapp.apk"))
48+
.setAutomationName(AutomationName.ANDROID_UIAUTOMATOR2)
49+
.setPlatformVersion("10")
50+
.setDeviceName("Pixel")
51+
.setOtherApps("/path/to/app.apk")
52+
.setLocale("fr_CA")
53+
.setUdid("1ae203187fc012g")
54+
.setOrientation(ScreenOrientation.LANDSCAPE)
55+
.setNewCommandTimeout(60)
56+
.setLanguage("fr");
57+
58+
assertEquals("http://example.com/myapp.apk", mobileOptions.getApp());
59+
assertEquals(AutomationName.ANDROID_UIAUTOMATOR2, mobileOptions.getAutomationName());
60+
assertEquals("10", mobileOptions.getPlatformVersion());
61+
assertEquals("Pixel", mobileOptions.getDeviceName());
62+
assertEquals("/path/to/app.apk", mobileOptions.getOtherApps());
63+
assertEquals("fr_CA", mobileOptions.getLocale());
64+
assertEquals("1ae203187fc012g", mobileOptions.getUdid());
65+
assertEquals(ScreenOrientation.LANDSCAPE, mobileOptions.getOrientation());
66+
assertEquals(60, mobileOptions.getNewCommandTimeout());
67+
assertEquals("fr", mobileOptions.getLanguage());
68+
}
69+
70+
@Test
71+
public void acceptsMobileBooleanCapabilityDefaults() {
72+
mobileOptions.setClearSystemFiles()
73+
.setAutoWebview()
74+
.setEnablePerformanceLogging()
75+
.setEventTimings()
76+
.setAutoWebview()
77+
.setFullReset()
78+
.setPrintPageSourceOnFindFailure();
79+
80+
assertTrue(mobileOptions.isClearSystemFiles());
81+
assertTrue(mobileOptions.isAutoWebview());
82+
assertTrue(mobileOptions.isEnablePerformanceLogging());
83+
assertTrue(mobileOptions.isEventTimings());
84+
assertTrue(mobileOptions.isAutoWebview());
85+
assertTrue(mobileOptions.isFullReset());
86+
assertTrue(mobileOptions.isPrintPageSourceOnFindFailure());
87+
}
88+
89+
@Test
90+
public void setsMobileBooleanCapabilities() {
91+
mobileOptions.setClearSystemFiles(false)
92+
.setAutoWebview(false)
93+
.setEnablePerformanceLogging(false)
94+
.setEventTimings(false)
95+
.setAutoWebview(false)
96+
.setFullReset(false)
97+
.setPrintPageSourceOnFindFailure(false);
98+
99+
assertFalse(mobileOptions.isClearSystemFiles());
100+
assertFalse(mobileOptions.isAutoWebview());
101+
assertFalse(mobileOptions.isEnablePerformanceLogging());
102+
assertFalse(mobileOptions.isEventTimings());
103+
assertFalse(mobileOptions.isAutoWebview());
104+
assertFalse(mobileOptions.isFullReset());
105+
assertFalse(mobileOptions.isPrintPageSourceOnFindFailure());
106+
}
107+
}

0 commit comments

Comments
 (0)