Skip to content

Commit bae106f

Browse files
appium#319 fix: new tests
1 parent 4ae0950 commit bae106f

2 files changed

Lines changed: 132 additions & 6 deletions

File tree

src/main/java/io/appium/java_client/service/local/AppiumServiceBuilder.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,12 @@ public AppiumServiceBuilder withArgument(ServerArgument argument, String value){
248248
* @return the self-reference
249249
*/
250250
public AppiumServiceBuilder withCapabilities(DesiredCapabilities capabilities) {
251-
this.capabilities = capabilities;
251+
if (this.capabilities == null) {
252+
this.capabilities = capabilities;
253+
}
254+
else {
255+
this.capabilities.merge(capabilities);
256+
}
252257
return this;
253258
}
254259

src/test/java/io/appium/java_client/localserver/StartingAppLocallyTest.java

Lines changed: 126 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919
import io.appium.java_client.MobileElement;
2020
import io.appium.java_client.android.AndroidDriver;
2121
import io.appium.java_client.ios.IOSDriver;
22-
import io.appium.java_client.remote.AutomationName;
23-
import io.appium.java_client.remote.MobileCapabilityType;
24-
import io.appium.java_client.remote.MobilePlatform;
22+
import io.appium.java_client.remote.*;
2523
import io.appium.java_client.service.local.AppiumServiceBuilder;
2624
import io.appium.java_client.service.local.flags.GeneralServerFlag;
2725
import org.junit.Test;
@@ -69,7 +67,76 @@ public void startingAndroidAppWithCapabilitiesAndServiceTest(){
6967
AppiumServiceBuilder builder = new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE).
7068
withArgument(GeneralServerFlag.STRICT_CAPS);
7169

72-
AndroidDriver<MobileElement> driver = new AndroidDriver<>(builder, capabilities);;
70+
AndroidDriver<MobileElement> driver = new AndroidDriver<>(builder, capabilities);
71+
try {
72+
Capabilities caps = driver.getCapabilities();
73+
74+
assertEquals(true, caps.getCapability(MobileCapabilityType.PLATFORM_NAME).equals(MobilePlatform.ANDROID));
75+
assertNotEquals(null, caps.getCapability(MobileCapabilityType.DEVICE_NAME));
76+
}
77+
finally {
78+
driver.quit();
79+
}
80+
}
81+
82+
@Test
83+
public void startingAndroidAppWithCapabilitiesOnServerSideTest(){
84+
File appDir = new File("src/test/java/io/appium/java_client");
85+
File app = new File(appDir, "ApiDemos-debug.apk");
86+
87+
File pageFactoryDir = new File("src/test/java/io/appium/java_client/pagefactory_tests");
88+
File chrome = new File(pageFactoryDir, "chromedriver.exe");
89+
90+
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
91+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
92+
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
93+
serverCapabilities.setCapability(MobileCapabilityType.FULL_RESET, true);
94+
serverCapabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 60);
95+
serverCapabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
96+
serverCapabilities.setCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE, chrome.getAbsolutePath());
97+
98+
AppiumServiceBuilder builder = new AppiumServiceBuilder().withCapabilities(serverCapabilities);
99+
100+
DesiredCapabilities clientCapabilities = new DesiredCapabilities();
101+
clientCapabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "io.appium.android.apis");
102+
clientCapabilities.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, ".view.WebView1");
103+
104+
AndroidDriver<MobileElement> driver = new AndroidDriver<>(builder, clientCapabilities);
105+
try {
106+
Capabilities caps = driver.getCapabilities();
107+
108+
assertEquals(true, caps.getCapability(MobileCapabilityType.PLATFORM_NAME).equals(MobilePlatform.ANDROID));
109+
assertNotEquals(null, caps.getCapability(MobileCapabilityType.DEVICE_NAME));
110+
}
111+
finally {
112+
driver.quit();
113+
}
114+
}
115+
116+
@Test
117+
public void startingAndroidAppWithCapabilitiesAndFlagsOnServerSideTest(){
118+
File appDir = new File("src/test/java/io/appium/java_client");
119+
File app = new File(appDir, "ApiDemos-debug.apk");
120+
121+
File pageFactoryDir = new File("src/test/java/io/appium/java_client/pagefactory_tests");
122+
File chrome = new File(pageFactoryDir, "chromedriver.exe");
123+
124+
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
125+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
126+
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
127+
serverCapabilities.setCapability(MobileCapabilityType.FULL_RESET, true);
128+
serverCapabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 60);
129+
serverCapabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
130+
serverCapabilities.setCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE, chrome.getAbsolutePath());
131+
132+
AppiumServiceBuilder builder = new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE).
133+
withArgument(GeneralServerFlag.STRICT_CAPS).withCapabilities(serverCapabilities);
134+
135+
DesiredCapabilities clientCapabilities = new DesiredCapabilities();
136+
clientCapabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "io.appium.android.apis");
137+
clientCapabilities.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, ".view.WebView1");
138+
139+
AndroidDriver<MobileElement> driver = new AndroidDriver<>(builder, clientCapabilities);
73140
try {
74141
Capabilities caps = driver.getCapabilities();
75142

@@ -122,7 +189,34 @@ public void startingIOSAppWithCapabilitiesAndServiseTest(){
122189
AppiumServiceBuilder builder = new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE).
123190
withArgument(GeneralServerFlag.STRICT_CAPS);
124191

125-
IOSDriver<MobileElement> driver = new IOSDriver<>(builder, capabilities);;
192+
IOSDriver<MobileElement> driver = new IOSDriver<>(builder, capabilities);
193+
try {
194+
Capabilities caps = driver.getCapabilities();
195+
assertEquals(true, caps.getCapability(MobileCapabilityType.PLATFORM_NAME).equals(MobilePlatform.IOS));
196+
assertNotEquals(null, caps.getCapability(MobileCapabilityType.DEVICE_NAME));
197+
}
198+
finally {
199+
driver.quit();
200+
}
201+
}
202+
203+
@Test
204+
public void startingIOSAppWithCapabilitiesOnServerSideTest(){
205+
File appDir = new File("src/test/java/io/appium/java_client");
206+
File app = new File(appDir, "UICatalog.app.zip");
207+
208+
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
209+
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator");
210+
serverCapabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000); //some environment is too slow
211+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.4");
212+
213+
214+
DesiredCapabilities clientCapabilities = new DesiredCapabilities();
215+
clientCapabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
216+
217+
AppiumServiceBuilder builder = new AppiumServiceBuilder().withCapabilities(serverCapabilities);
218+
219+
IOSDriver<MobileElement> driver = new IOSDriver<>(builder, clientCapabilities);;
126220
try {
127221
Capabilities caps = driver.getCapabilities();
128222
assertEquals(true, caps.getCapability(MobileCapabilityType.PLATFORM_NAME).equals(MobilePlatform.IOS));
@@ -133,4 +227,31 @@ public void startingIOSAppWithCapabilitiesAndServiseTest(){
133227
}
134228
}
135229

230+
@Test
231+
public void startingIOSAppWithCapabilitiesAndFlagsOnServerSideTest(){
232+
File appDir = new File("src/test/java/io/appium/java_client");
233+
File app = new File(appDir, "UICatalog.app.zip");
234+
235+
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
236+
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator");
237+
serverCapabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000); //some environment is too slow
238+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "8.4");
239+
240+
241+
DesiredCapabilities clientCapabilities = new DesiredCapabilities();
242+
clientCapabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
243+
244+
AppiumServiceBuilder builder = new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE).
245+
withArgument(GeneralServerFlag.STRICT_CAPS).withCapabilities(serverCapabilities);
246+
247+
IOSDriver<MobileElement> driver = new IOSDriver<>(builder, clientCapabilities);;
248+
try {
249+
Capabilities caps = driver.getCapabilities();
250+
assertEquals(true, caps.getCapability(MobileCapabilityType.PLATFORM_NAME).equals(MobilePlatform.IOS));
251+
assertNotEquals(null, caps.getCapability(MobileCapabilityType.DEVICE_NAME));
252+
}
253+
finally {
254+
driver.quit();
255+
}
256+
}
136257
}

0 commit comments

Comments
 (0)