Skip to content
15 changes: 0 additions & 15 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,6 @@ sudo: required

matrix:
include:
- language: java
install: true
jdk:
- $jdkVersion
os: osx
osx_image: $xcodeVersion
before_install:
- brew tap caskroom/versions
- brew cask install java8
- export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
- java -version
- npm install -g $appiumVersion
script:
- ./gradlew clean build xcuiTest -x test -x signArchives

- language: android
install: true
install:
Expand Down
34 changes: 34 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Gradle
# Build your Java project and run tests with Gradle using a Gradle wrapper script.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java

pool:
vmImage: 'macOS 10.13'

steps:
- task: NodeTool@0
inputs:
versionSpec: '8.x'

- script: |
echo Configuring Environment
npm config delete prefix
npm config set prefix $NVM_DIR/versions/node/v8.12.0
npm install -g appium@beta
appium --version
node --version
java -version
which node
npm root -g

- task: Gradle@2
inputs:
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
tasks: 'build'
options: 'xcuiTest -x test -x signArchives'
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,24 @@

public class IOSElementGenerationTest extends BaseElementGenerationTest {

private final File testApp = new File(new File("src/test/java/io/appium/java_client"),
private static final File testApp = new File(new File("src/test/java/io/appium/java_client"),
"TestApp.app.zip");

private final File webViewApp = new File(new File("src/test/java/io/appium/java_client"),
private static final File webViewApp = new File(new File("src/test/java/io/appium/java_client"),
"vodqa.zip");

private static final String PLATFORM_VERSION = System.getenv("platformVersion") != null
? System.getenv("platformVersion") : "11.4";

private static final String DEVICE_NAME = System.getenv("deviceName") != null
? System.getenv("deviceName") : "iPhone X";

private Supplier<DesiredCapabilities> serverAppCapabilitiesSupplier = () -> {
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, DEVICE_NAME);
serverCapabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT,
500000); //some environment is too slow
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
return serverCapabilities;
};
Expand All @@ -52,8 +58,8 @@ public class IOSElementGenerationTest extends BaseElementGenerationTest {
private final Supplier<DesiredCapabilities> serverBrowserCapabilitiesSupplier = () -> {
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
serverCapabilities.setCapability(MobileCapabilityType.BROWSER_NAME, MobileBrowserType.SAFARI);
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, DEVICE_NAME);
//sometimes environment has performance problems
serverCapabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000);
return serverCapabilities;
Expand Down Expand Up @@ -112,15 +118,17 @@ public void whenIOSNativeAppIsLaunched() {
public void whenIOSNativeAppIsLaunched2() {
assertTrue(check(() -> {
DesiredCapabilities serverCapabilities = serverAppCapabilitiesSupplier.get();
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
return serverCapabilities;
}, appFileSupplierFunction.apply(testApp), commonPredicate, id("IntegerA"), IOSElement.class));
}

@Test public void whenIOSBrowserIsLaunched2() {
assertTrue(check(() -> {
DesiredCapabilities serverCapabilities = serverBrowserCapabilitiesSupplier.get();
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);
return serverCapabilities;
}, clientBrowserCapabilitiesSupplier, (by, aClass) -> {
driver.get("https://www.google.com");
Expand Down
3 changes: 2 additions & 1 deletion src/test/java/io/appium/java_client/ios/BaseIOSTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public class BaseIOSTest {
* @throws UnknownHostException when it is impossible to get ip address of a local host
*/
public static String startAppiumServer() throws UnknownHostException {
service = new AppiumServiceBuilder().usingPort(PORT).build();
service = new AppiumServiceBuilder()
.usingPort(PORT).build();
service.start();
InetAddress inetAddress = InetAddress.getLocalHost();
return inetAddress.getHostAddress();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@

public class StartingAppLocallyTest {

private static final String PLATFORM_VERSION = System.getenv("platformVersion") != null
? System.getenv("platformVersion") : "11.4";

private static final String DEVICE_NAME = System.getenv("deviceName") != null
? System.getenv("deviceName") : "iPhone X";

@Test public void startingAndroidAppWithCapabilitiesOnlyTest() {
File appDir = new File("src/test/java/io/appium/java_client");
File app = new File(appDir, "ApiDemos-debug.apk");
Expand Down Expand Up @@ -67,8 +73,8 @@ public class StartingAppLocallyTest {
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());

AppiumServiceBuilder builder =
new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE)
AppiumServiceBuilder builder = new AppiumServiceBuilder()
.withArgument(GeneralServerFlag.SESSION_OVERRIDE)
.withArgument(GeneralServerFlag.STRICT_CAPS);

AndroidDriver<?> driver = new AndroidDriver<>(builder, capabilities);
Expand Down Expand Up @@ -98,8 +104,8 @@ public class StartingAppLocallyTest {
serverCapabilities.setCapability(AndroidMobileCapabilityType.CHROMEDRIVER_EXECUTABLE,
chromeManager.getBinaryPath());

AppiumServiceBuilder builder =
new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE)
AppiumServiceBuilder builder = new AppiumServiceBuilder()
.withArgument(GeneralServerFlag.SESSION_OVERRIDE)
.withArgument(GeneralServerFlag.STRICT_CAPS).withCapabilities(serverCapabilities);

DesiredCapabilities clientCapabilities = new DesiredCapabilities();
Expand All @@ -124,10 +130,10 @@ public class StartingAppLocallyTest {
File app = new File(appDir, "UICatalog.app.zip");

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
//sometimes environment has performance problems
capabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000);
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, DEVICE_NAME);
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.APPIUM);

Expand All @@ -138,7 +144,7 @@ public class StartingAppLocallyTest {
assertEquals(AutomationName.APPIUM, caps.getCapability(MobileCapabilityType.AUTOMATION_NAME));
assertEquals(MobilePlatform.IOS, caps.getCapability(MobileCapabilityType.PLATFORM_NAME));
assertNotEquals(null, caps.getCapability(MobileCapabilityType.DEVICE_NAME));
assertEquals("11.3", caps.getCapability(MobileCapabilityType.PLATFORM_VERSION));
assertEquals(PLATFORM_VERSION, caps.getCapability(MobileCapabilityType.PLATFORM_VERSION));
assertEquals(app.getAbsolutePath(), caps.getCapability(MobileCapabilityType.APP));
} finally {
driver.quit();
Expand All @@ -151,15 +157,15 @@ public class StartingAppLocallyTest {
File app = new File(appDir, "UICatalog.app.zip");

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, DEVICE_NAME);
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.APPIUM);
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
//sometimes environment has performance problems
capabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000);

AppiumServiceBuilder builder =
new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE)
AppiumServiceBuilder builder = new AppiumServiceBuilder()
.withArgument(GeneralServerFlag.SESSION_OVERRIDE)
.withArgument(GeneralServerFlag.STRICT_CAPS);

IOSDriver<?> driver = new IOSDriver<>(builder, capabilities);
Expand All @@ -175,19 +181,19 @@ public class StartingAppLocallyTest {

@Test public void startingIOSAppWithCapabilitiesAndFlagsOnServerSideTest() {
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 8");
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, DEVICE_NAME);
serverCapabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT,
500000); //some environment is too slow
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.3");
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.IOS);

File appDir = new File("src/test/java/io/appium/java_client");
File app = new File(appDir, "UICatalog.app.zip");
DesiredCapabilities clientCapabilities = new DesiredCapabilities();
clientCapabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());

AppiumServiceBuilder builder =
new AppiumServiceBuilder().withArgument(GeneralServerFlag.SESSION_OVERRIDE)
AppiumServiceBuilder builder = new AppiumServiceBuilder()
.withArgument(GeneralServerFlag.SESSION_OVERRIDE)
.withArgument(GeneralServerFlag.STRICT_CAPS).withCapabilities(serverCapabilities);

IOSDriver<?> driver = new IOSDriver<>(builder, clientCapabilities);
Expand Down