Skip to content

Commit ed47f96

Browse files
updated tests and CIIntegration
Try travis to execute tests update travis config update travis config list devices and appium version try travis try travis try travis try travis try travis try travis skip installation in travis skip installation in travis try travis try travis try travis try travis Update travis.yml try iOS Driver update travis Run entire package Run entire package Run entire package Run entire package Update to check URL Update to check URL Run entire android package Fix iOS tests and integrate with CI Fix iOS tests and integrate with CI Run on any branch in travis address review comments Address review comments Fix tests fix tests fix tests fix pullfile test and exclude timeout test fix review comments make codacy happy Ignore webviewtest
1 parent 05fa225 commit ed47f96

28 files changed

+364
-373
lines changed

.travis.yml

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,43 @@
11
language: java
22

3-
jdk:
4-
- oraclejdk8
5-
63
sudo: required
74

8-
install: true
9-
10-
script: ./gradlew clean build -x test -x signArchives
5+
matrix:
6+
include:
7+
- language: java
8+
install: true
9+
os: osx
10+
osx_image: xcode9.3
11+
before_install:
12+
- brew update
13+
- brew outdated xctool || brew upgrade xctool
14+
- npm install -g appium
15+
script:
16+
- ./gradlew clean xcuiTest -x signArchives
17+
# - language: android
18+
# install: true
19+
# os: linux
20+
# jdk: oraclejdk8
21+
# android:
22+
# components:
23+
# - build-tools-26.0.2
24+
# - platform-tools
25+
# - tools
26+
# - android-22
27+
# - extra-android-m2repository
28+
# - extra-google-google_play_services
29+
# - extra-google-m2repository
30+
# - sys-img-armeabi-v7a-android-22
31+
# before_install:
32+
# # node stuff
33+
# - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
34+
# - nvm install 6
35+
# - node --version
36+
# - npm --version
37+
# - npm install -g [email protected]
38+
# - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
39+
# - emulator -avd test -no-audio -no-window &
40+
# - android-wait-for-emulator
41+
# - adb devices
42+
# script:
43+
# - ./gradlew clean test --tests "io.appium.java_client.android.*" --exclude-task signArchives

build.gradle

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,30 @@ uploadArchives {
196196
}
197197
}
198198

199-
wrapper.gradleVersion = '4.5.1'
199+
wrapper.gradleVersion = '4.8'
200200

201-
test {
201+
task xcuiTest( type: Test ) {
202202
useJUnit()
203+
testLogging.showStandardStreams = true
204+
testLogging.exceptionFormat = 'full'
205+
filter {
206+
includeTestsMatching '*.appium.element.generation.ios.*'
207+
includeTestsMatching '*.appium.AppiumFluentWaitTest'
208+
includeTestsMatching 'io.appium.java_client.ios.*'
209+
includeTestsMatching '*.pagefactory_tests.XCUITModeTest'
210+
includeTestsMatching '*.pagefactory_tests.widget.tests.combined.*'
211+
includeTestsMatching '*.pagefactory_tests.widget.tests.ios.*'
212+
includeTestsMatching '*.StartingAppLocallyTest.startingIOSAppWithCapabilitiesAndServiceTest'
213+
includeTestsMatching '*.StartingAppLocallyTest.startingIOSAppWithCapabilitiesAndFlagsOnServerSideTest'
214+
exclude '**/UIAutomationTest.class'
215+
exclude '**/IOSScreenRecordTest.class'
216+
exclude '**/ImagesComparisonTest.class'
217+
}
218+
}
219+
220+
task uiAutomationTest( type: Test ) {
221+
useJUnit()
222+
testLogging.showStandardStreams = true
223+
testLogging.exceptionFormat = 'full'
224+
include '**/UIAutomationTest.class'
203225
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
#Mon Feb 26 22:51:40 IST 2018
12
distributionBase=GRADLE_USER_HOME
23
distributionPath=wrapper/dists
34
zipStoreBase=GRADLE_USER_HOME
45
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-bin.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5.1-all.zip

src/main/java/io/appium/java_client/android/AndroidDriver.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static io.appium.java_client.android.AndroidMobileCommandHelper.endTestCoverageCommand;
2020
import static io.appium.java_client.android.AndroidMobileCommandHelper.openNotificationsCommand;
2121
import static io.appium.java_client.android.AndroidMobileCommandHelper.toggleLocationServicesCommand;
22+
import static org.openqa.selenium.remote.CapabilityType.PLATFORM_NAME;
2223
import static org.openqa.selenium.remote.DriverCommand.EXECUTE_SCRIPT;
2324

2425
import com.google.common.collect.ImmutableMap;
@@ -37,6 +38,7 @@
3738
import io.appium.java_client.service.local.AppiumServiceBuilder;
3839
import io.appium.java_client.ws.StringWebSocketClient;
3940
import org.openqa.selenium.Capabilities;
41+
import org.openqa.selenium.MutableCapabilities;
4042
import org.openqa.selenium.WebElement;
4143
import org.openqa.selenium.remote.HttpCommandExecutor;
4244
import org.openqa.selenium.remote.http.HttpClient;
@@ -197,6 +199,12 @@ public AndroidBatteryInfo getBatteryInfo() {
197199
"script", "mobile: batteryInfo", "args", Collections.emptyList())).getValue());
198200
}
199201

202+
public Capabilities getCapabilities() {
203+
MutableCapabilities capabilities = (MutableCapabilities) super.getCapabilities();
204+
capabilities.setCapability(PLATFORM_NAME, ANDROID_PLATFORM);
205+
return capabilities;
206+
}
207+
200208
@Override
201209
public synchronized StringWebSocketClient getLogcatClient() {
202210
if (logcatClient == null) {

src/main/java/io/appium/java_client/ios/IOSDriver.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import static io.appium.java_client.MobileCommand.RUN_APP_IN_BACKGROUND;
2020
import static io.appium.java_client.MobileCommand.prepareArguments;
21+
import static org.openqa.selenium.remote.CapabilityType.PLATFORM_NAME;
2122
import static org.openqa.selenium.remote.DriverCommand.EXECUTE_SCRIPT;
2223

2324
import com.google.common.collect.ImmutableMap;
@@ -37,6 +38,7 @@
3738
import io.appium.java_client.ws.StringWebSocketClient;
3839
import org.openqa.selenium.Alert;
3940
import org.openqa.selenium.Capabilities;
41+
import org.openqa.selenium.MutableCapabilities;
4042
import org.openqa.selenium.WebElement;
4143
import org.openqa.selenium.remote.DriverCommand;
4244
import org.openqa.selenium.remote.HttpCommandExecutor;
@@ -201,6 +203,12 @@ private class InnerTargetLocator extends RemoteTargetLocator {
201203
}
202204
}
203205

206+
public Capabilities getCapabilities() {
207+
MutableCapabilities capabilities = (MutableCapabilities) super.getCapabilities();
208+
capabilities.setCapability(PLATFORM_NAME, IOS_PLATFORM);
209+
return capabilities;
210+
}
211+
204212

205213
class IOSAlert implements Alert {
206214

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class UIAutomator2Test {
3535

3636
if (service == null || !service.isRunning()) {
3737
throw new AppiumServerHasNotBeenStartedLocallyException(
38-
"An appium server node is not started!");
38+
"An appium server node is not started!");
3939
}
4040

4141
File appDir = new File("src/test/java/io/appium/java_client");
@@ -92,20 +92,20 @@ public class UIAutomator2Test {
9292
popUpElement.click();
9393
driver.findElement(By.xpath(".//*[@text='Search']")).click();
9494
assertNotNull(wait.until(ExpectedConditions.presenceOfElementLocated(
95-
By.xpath("//*[@text='Clicked popup menu item Search']"))));
95+
By.xpath("//*[@text='Clicked popup menu item Search']"))));
9696

9797
popUpElement.click();
9898
driver.findElement(By.xpath(".//*[@text='Add']")).click();
9999
assertNotNull(wait.until(ExpectedConditions
100-
.presenceOfElementLocated(By.xpath("//*[@text='Clicked popup menu item Add']"))));
100+
.presenceOfElementLocated(By.xpath("//*[@text='Clicked popup menu item Add']"))));
101101

102102
popUpElement.click();
103103
driver.findElement(By.xpath(".//*[@text='Edit']")).click();
104104
assertNotNull(wait.until(ExpectedConditions
105-
.presenceOfElementLocated(By.xpath("//*[@text='Clicked popup menu item Edit']"))));
105+
.presenceOfElementLocated(By.xpath("//*[@text='Clicked popup menu item Edit']"))));
106106

107107
driver.findElement(By.xpath(".//*[@text='Share']")).click();
108108
assertNotNull(wait.until(ExpectedConditions
109-
.presenceOfElementLocated(By.xpath("//*[@text='Clicked popup menu item Share']"))));
109+
.presenceOfElementLocated(By.xpath("//*[@text='Clicked popup menu item Share']"))));
110110
}
111111
}

src/test/java/io/appium/java_client/appium/IOSTest.java

Lines changed: 0 additions & 91 deletions
This file was deleted.

src/test/java/io/appium/java_client/appium/element/generation/ios/IOSElementGenerationTest.java

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
package io.appium.java_client.appium.element.generation.ios;
22

3-
import static io.appium.java_client.MobileBy.IosUIAutomation;
3+
import static io.appium.java_client.MobileBy.AccessibilityId;
44
import static org.junit.Assert.assertTrue;
55
import static org.openqa.selenium.By.id;
66
import static org.openqa.selenium.By.name;
7+
import static org.openqa.selenium.By.partialLinkText;
78

89
import io.appium.java_client.appium.element.generation.BaseElementGenerationTest;
910
import io.appium.java_client.ios.IOSElement;
1011
import io.appium.java_client.remote.IOSMobileCapabilityType;
1112
import io.appium.java_client.remote.MobileBrowserType;
1213
import io.appium.java_client.remote.MobileCapabilityType;
1314
import io.appium.java_client.remote.MobilePlatform;
15+
import org.junit.Ignore;
1416
import org.junit.Test;
1517
import org.openqa.selenium.Capabilities;
1618
import org.openqa.selenium.remote.DesiredCapabilities;
19+
import org.openqa.selenium.support.ui.ExpectedConditions;
20+
import org.openqa.selenium.support.ui.WebDriverWait;
1721

1822
import java.io.File;
1923
import java.util.function.Function;
@@ -25,14 +29,14 @@ public class IOSElementGenerationTest extends BaseElementGenerationTest {
2529
"TestApp.app.zip");
2630

2731
private final File webViewApp = new File(new File("src/test/java/io/appium/java_client"),
28-
"WebViewApp.app.zip");
32+
"vodqa.zip");
2933

3034
private Supplier<DesiredCapabilities> serverAppCapabilitiesSupplier = () -> {
3135
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
32-
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator");
36+
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
3337
serverCapabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT,
3438
500000); //some environment is too slow
35-
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.2");
39+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
3640
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
3741
return serverCapabilities;
3842
};
@@ -48,8 +52,8 @@ public class IOSElementGenerationTest extends BaseElementGenerationTest {
4852
private final Supplier<DesiredCapabilities> serverBrowserCapabilitiesSupplier = () -> {
4953
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
5054
serverCapabilities.setCapability(MobileCapabilityType.BROWSER_NAME, MobileBrowserType.SAFARI);
51-
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.2");
52-
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator");
55+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
56+
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
5357
//sometimes environment has performance problems
5458
serverCapabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000);
5559
return serverCapabilities;
@@ -66,17 +70,21 @@ public void whenIOSNativeAppIsLaunched() {
6670
assertTrue(check(serverAppCapabilitiesSupplier,
6771
appFileSupplierFunction.apply(testApp),
6872
commonPredicate,
69-
IosUIAutomation(".elements().withName(\"Answer\")"),
73+
AccessibilityId("Answer"),
7074
IOSElement.class));
7175
}
7276

73-
@Test public void whenIOSHybridAppIsLaunched() {
77+
@Test @Ignore public void whenIOSHybridAppIsLaunched() {
7478
assertTrue(check(serverAppCapabilitiesSupplier,
7579
appFileSupplierFunction.apply(webViewApp),
7680
(by, aClass) -> {
77-
IOSElement element1 = (IOSElement) driver.findElementByXPath("//UIATextField[@value='Enter URL']");
78-
element1.sendKeys("www.google.com");
79-
driver.findElementByClassName("UIAButton").click();
81+
new WebDriverWait(driver, 30)
82+
.until(ExpectedConditions.presenceOfElementLocated(id("login")))
83+
.click();
84+
driver.findElementByAccessibilityId("webView").click();
85+
new WebDriverWait(driver, 30)
86+
.until(ExpectedConditions
87+
.presenceOfElementLocated(AccessibilityId("Webview")));
8088
try {
8189
Thread.sleep(10000);
8290
} catch (InterruptedException e) {
@@ -88,7 +96,7 @@ public void whenIOSNativeAppIsLaunched() {
8896
}
8997
});
9098
return commonPredicate.test(by, aClass);
91-
}, name("q"), IOSElement.class));
99+
}, partialLinkText("login"), IOSElement.class));
92100
}
93101

94102
@Test public void whenIOSBrowserIsLaunched() {
@@ -103,15 +111,15 @@ public void whenIOSNativeAppIsLaunched() {
103111
public void whenIOSNativeAppIsLaunched2() {
104112
assertTrue(check(() -> {
105113
DesiredCapabilities serverCapabilities = serverAppCapabilitiesSupplier.get();
106-
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.1");
114+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
107115
return serverCapabilities;
108116
}, appFileSupplierFunction.apply(testApp), commonPredicate, id("IntegerA"), IOSElement.class));
109117
}
110118

111119
@Test public void whenIOSBrowserIsLaunched2() {
112120
assertTrue(check(() -> {
113121
DesiredCapabilities serverCapabilities = serverBrowserCapabilitiesSupplier.get();
114-
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.1");
122+
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
115123
return serverCapabilities;
116124
}, clientBrowserCapabilitiesSupplier, (by, aClass) -> {
117125
driver.get("https://www.google.com");

0 commit comments

Comments
 (0)