Skip to content

Commit 85e806a

Browse files
refactor: Put test files into test resources (appium#1333)
1 parent fac396a commit 85e806a

21 files changed

+90
-71
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package io.appium.java_client;
2+
3+
import java.nio.file.Path;
4+
5+
import static io.appium.java_client.TestUtils.resourcePathToLocalPath;
6+
7+
public class TestResources {
8+
public static Path apiDemosApk() {
9+
return resourcePathToLocalPath("apps/ApiDemos-debug.apk");
10+
}
11+
12+
public static Path testAppZip() {
13+
return resourcePathToLocalPath("apps/TestApp.app.zip");
14+
}
15+
16+
public static Path uiCatalogAppZip() {
17+
return resourcePathToLocalPath("apps/UICatalog.app.zip");
18+
}
19+
20+
public static Path vodQaAppZip() {
21+
return resourcePathToLocalPath("apps/vodqa.zip");
22+
}
23+
24+
public static Path intentExampleApk() {
25+
return resourcePathToLocalPath("apps/IntentExample.apk");
26+
}
27+
28+
public static Path helloAppiumHtml() {
29+
return resourcePathToLocalPath("html/hello appium - saved page.htm");
30+
}
31+
}

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

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package io.appium.java_client;
22

3+
import java.io.IOException;
34
import java.net.DatagramSocket;
45
import java.net.InetAddress;
56
import java.net.SocketException;
7+
import java.net.URL;
68
import java.net.UnknownHostException;
9+
import java.nio.file.Files;
10+
import java.nio.file.Path;
11+
import java.nio.file.Paths;
712

813
public class TestUtils {
914
public static String getLocalIp4Address() throws SocketException, UnknownHostException {
@@ -13,4 +18,20 @@ public static String getLocalIp4Address() throws SocketException, UnknownHostExc
1318
return socket.getLocalAddress().getHostAddress();
1419
}
1520
}
21+
22+
public static Path resourcePathToLocalPath(String resourcePath) {
23+
URL url = ClassLoader.getSystemResource(resourcePath);
24+
if (url == null) {
25+
throw new IllegalArgumentException(String.format("Cannot find the '%s' resource", resourcePath));
26+
}
27+
return Paths.get(url.getPath());
28+
}
29+
30+
public static String resourceAsString(String resourcePath) {
31+
try {
32+
return new String(Files.readAllBytes(resourcePathToLocalPath(resourcePath)));
33+
} catch (IOException e) {
34+
throw new RuntimeException(e);
35+
}
36+
}
1637
}
-51.5 KB
Binary file not shown.

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
import org.openqa.selenium.remote.DesiredCapabilities;
2828

29-
import java.io.File;
29+
import static io.appium.java_client.TestResources.apiDemosApk;
3030

3131
public class BaseAndroidTest {
3232
public static final String APP_ID = "io.appium.android.apis";
@@ -45,12 +45,10 @@ public class BaseAndroidTest {
4545
"An appium server node is not started!");
4646
}
4747

48-
File appDir = new File("src/test/java/io/appium/java_client");
49-
File app = new File(appDir, "ApiDemos-debug.apk");
5048
DesiredCapabilities capabilities = new DesiredCapabilities();
5149
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ANDROID_UIAUTOMATOR2);
5250
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
53-
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
51+
capabilities.setCapability(MobileCapabilityType.APP, apiDemosApk().toAbsolutePath().toString());
5452
capabilities.setCapability("eventTimings", true);
5553
driver = new AndroidDriver<>(service.getUrl(), capabilities);
5654
}

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import org.junit.BeforeClass;
2525
import org.openqa.selenium.remote.DesiredCapabilities;
2626

27-
import java.io.File;
27+
import static io.appium.java_client.TestResources.apiDemosApk;
2828

2929
public class BaseEspressoTest {
3030

@@ -43,12 +43,10 @@ public class BaseEspressoTest {
4343
"An appium server node is not started!");
4444
}
4545

46-
File appDir = new File("src/test/java/io/appium/java_client");
47-
File app = new File(appDir, "ApiDemos-debug.apk");
4846
DesiredCapabilities capabilities = new DesiredCapabilities();
4947
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.ESPRESSO);
5048
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
51-
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
49+
capabilities.setCapability(MobileCapabilityType.APP, apiDemosApk().toAbsolutePath().toString());
5250
capabilities.setCapability("eventTimings", true);
5351
driver = new AndroidDriver<>(service.getUrl(), capabilities);
5452
}

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.appium.java_client.android;
22

3+
import static io.appium.java_client.TestResources.intentExampleApk;
34
import static org.junit.Assert.assertEquals;
45
import static org.junit.Assert.assertTrue;
56

@@ -10,7 +11,6 @@
1011
import org.junit.Test;
1112
import org.openqa.selenium.remote.DesiredCapabilities;
1213

13-
import java.io.File;
1414
import java.util.function.Predicate;
1515

1616
public class IntentTest {
@@ -28,11 +28,9 @@ public class IntentTest {
2828
throw new RuntimeException("An appium server node is not started!");
2929
}
3030

31-
File appDir = new File("src/test/java/io/appium/java_client");
32-
File app = new File(appDir, "IntentExample.apk");
3331
DesiredCapabilities capabilities = new DesiredCapabilities();
3432
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
35-
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
33+
capabilities.setCapability(MobileCapabilityType.APP, intentExampleApk().toAbsolutePath().toString());
3634
driver = new AndroidDriver<>(service.getUrl(), capabilities);
3735
}
3836

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

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.appium.java_client.appium;
22

3+
import static io.appium.java_client.TestResources.apiDemosApk;
34
import static org.junit.Assert.assertEquals;
45
import static org.junit.Assert.assertNotEquals;
56
import static org.junit.Assert.assertNotNull;
@@ -22,7 +23,6 @@
2223
import org.openqa.selenium.remote.DesiredCapabilities;
2324
import org.openqa.selenium.remote.Response;
2425

25-
import java.io.File;
2626
import java.util.Map;
2727

2828
public class AndroidTest {
@@ -44,12 +44,10 @@ public static void beforeClass() {
4444
"An appium server node is not started!");
4545
}
4646

47-
File appDir = new File("src/test/java/io/appium/java_client");
48-
File app = new File(appDir, "ApiDemos-debug.apk");
4947
DesiredCapabilities capabilities = new DesiredCapabilities();
5048
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
5149
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
52-
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
50+
capabilities.setCapability(MobileCapabilityType.APP, apiDemosApk().toAbsolutePath().toString());
5351
driver = new AppiumDriver<>(service.getUrl(), capabilities);
5452
}
5553

src/test/java/io/appium/java_client/appium/element/generation/android/AndroidElementGeneratingTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.appium.java_client.appium.element.generation.android;
22

33
import static io.appium.java_client.MobileBy.AndroidUIAutomator;
4+
import static io.appium.java_client.TestResources.apiDemosApk;
45
import static org.junit.Assert.assertTrue;
56
import static org.openqa.selenium.By.name;
67
import static org.openqa.selenium.By.tagName;
@@ -19,19 +20,16 @@
1920
import org.openqa.selenium.WebElement;
2021
import org.openqa.selenium.remote.DesiredCapabilities;
2122

22-
import java.io.File;
2323
import java.util.function.BiPredicate;
2424
import java.util.function.Supplier;
2525

2626
public class AndroidElementGeneratingTest extends BaseElementGenerationTest {
2727

28-
private final File app = new File(new File("src/test/java/io/appium/java_client"),
29-
"ApiDemos-debug.apk");
3028
private final Supplier<DesiredCapabilities> commonCapabilitiesSupplier = () -> {
3129
DesiredCapabilities serverCapabilities = new DesiredCapabilities();
3230
serverCapabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
3331
serverCapabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
34-
serverCapabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
32+
serverCapabilities.setCapability(MobileCapabilityType.APP, apiDemosApk().toAbsolutePath().toString());
3533
return serverCapabilities;
3634
};
3735

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

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package io.appium.java_client.appium.element.generation.ios;
22

33
import static io.appium.java_client.MobileBy.AccessibilityId;
4+
import static io.appium.java_client.TestResources.testAppZip;
5+
import static io.appium.java_client.TestResources.vodQaAppZip;
46
import static org.junit.Assert.assertTrue;
57
import static org.openqa.selenium.By.id;
68
import static org.openqa.selenium.By.name;
@@ -32,12 +34,9 @@
3234

3335
public class IOSElementGenerationTest extends BaseElementGenerationTest {
3436

35-
private static final File testApp = new File(new File("src/test/java/io/appium/java_client"),
36-
"TestApp.app.zip");
37-
38-
private static final File webViewApp = new File(new File("src/test/java/io/appium/java_client"),
39-
"vodqa.zip");
37+
private static final File testApp = testAppZip().toFile();
4038

39+
private static final File webViewApp = vodQaAppZip().toFile();
4140

4241
private Supplier<DesiredCapabilities> commonAppCapabilitiesSupplier = () -> {
4342
DesiredCapabilities serverCapabilities = new DesiredCapabilities();

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@
88
import org.openqa.selenium.SessionNotCreatedException;
99
import org.openqa.selenium.remote.DesiredCapabilities;
1010

11-
import java.io.File;
1211
import java.net.URL;
1312

13+
import static io.appium.java_client.TestResources.testAppZip;
14+
1415
public class AppIOSTest extends BaseIOSTest {
1516

1617
public static final String BUNDLE_ID = "io.appium.TestApp";
@@ -23,16 +24,14 @@ public static void beforeClass() throws Exception {
2324
throw new AppiumServerHasNotBeenStartedLocallyException("An appium server node is not started!");
2425
}
2526

26-
File appDir = new File("src/test/java/io/appium/java_client");
27-
File app = new File(appDir, "TestApp.app.zip");
2827
DesiredCapabilities capabilities = new DesiredCapabilities();
2928
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, PLATFORM_VERSION);
3029
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, DEVICE_NAME);
3130
capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, AutomationName.IOS_XCUI_TEST);
3231
//sometimes environment has performance problems
3332
capabilities.setCapability(IOSMobileCapabilityType.LAUNCH_TIMEOUT, 500000);
3433
capabilities.setCapability("commandTimeouts", "120000");
35-
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
34+
capabilities.setCapability(MobileCapabilityType.APP, testAppZip().toAbsolutePath().toString());
3635
try {
3736
driver = new IOSDriver<>(new URL("http://" + ip + ":" + PORT + "/wd/hub"), capabilities);
3837
} catch (SessionNotCreatedException e) {

0 commit comments

Comments
 (0)