Skip to content

Commit a34533d

Browse files
committed
add some tests from Appium samples
1 parent 371f85f commit a34533d

File tree

6 files changed

+196
-1
lines changed

6 files changed

+196
-1
lines changed

pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,13 @@
3333
<dependency>
3434
<groupId>io.appium</groupId>
3535
<artifactId>java-client</artifactId>
36-
<version>4.1.2</version>
36+
<version>5.0.0-BETA6</version>
37+
</dependency>
38+
<dependency>
39+
<groupId>org.testng</groupId>
40+
<artifactId>testng</artifactId>
41+
<version>6.14.3</version>
42+
<scope>test</scope>
3743
</dependency>
3844
</dependencies>
3945

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package samples;
2+
3+
import io.appium.java_client.service.local.AppiumDriverLocalService;
4+
import org.testng.annotations.AfterSuite;
5+
import org.testng.annotations.BeforeSuite;
6+
7+
import java.io.IOException;
8+
import java.net.MalformedURLException;
9+
import java.net.URL;
10+
11+
public abstract class BaseTest {
12+
private static AppiumDriverLocalService service;
13+
14+
@BeforeSuite
15+
public void globalSetup () throws IOException {
16+
/* todo: fix
17+
service = AppiumDriverLocalService.buildDefaultService();
18+
service.start();*/
19+
}
20+
21+
@AfterSuite
22+
public void globalTearDown () {
23+
//service.stop();
24+
}
25+
26+
public URL getServiceUrl () throws MalformedURLException {
27+
return new URL(String.format("http://%1$s:%2$s/wd/hub", "0.0.0.0", "4723"));
28+
//return service.getUrl();
29+
}
30+
}
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package samples.android;
2+
3+
import io.appium.java_client.android.AndroidDriver;
4+
import io.appium.java_client.android.AndroidElement;
5+
import org.openqa.selenium.By;
6+
import org.openqa.selenium.WebElement;
7+
import org.openqa.selenium.remote.DesiredCapabilities;
8+
import org.openqa.selenium.support.ui.ExpectedConditions;
9+
import org.openqa.selenium.support.ui.WebDriverWait;
10+
import org.testng.Assert;
11+
import org.testng.annotations.AfterClass;
12+
import org.testng.annotations.BeforeClass;
13+
import org.testng.annotations.Test;
14+
import samples.BaseTest;
15+
16+
import java.io.File;
17+
import java.io.IOException;
18+
import java.nio.file.Paths;
19+
20+
public class AndroidBasicInteractionsTest extends BaseTest {
21+
private AndroidDriver<WebElement> driver;
22+
private final String SEARCH_ACTIVITY = ".app.SearchInvoke";
23+
private final String ALERT_DIALOG_ACTIVITY = ".app.AlertDialogSamples";
24+
private final String PACKAGE = "io.appium.android.apis";
25+
26+
private static String getEnvVariable(String key, String defaultValue) {
27+
return System.getProperty(key) != null ? System.getProperty(key) : defaultValue;
28+
}
29+
30+
private static String getResourcesPath() {
31+
return Paths.get(getEnvVariable("user.dir", System.getProperty("project.basedir")), "src", "test", "resources").toString();
32+
}
33+
34+
@BeforeClass
35+
public void setUp() throws IOException {
36+
File appDir = new File(getResourcesPath(), "apps");
37+
File app = new File(appDir.getCanonicalPath(), "ApiDemos-debug.apk");
38+
DesiredCapabilities capabilities = new DesiredCapabilities();
39+
capabilities.setCapability("deviceName", "Android Emulator");
40+
capabilities.setCapability("app", app.getAbsolutePath());
41+
driver = new AndroidDriver<WebElement>(getServiceUrl(), capabilities);
42+
}
43+
44+
@AfterClass
45+
public void tearDown() {
46+
driver.quit();
47+
}
48+
49+
50+
@Test()
51+
public void testSendKeys() {
52+
driver.startActivity(PACKAGE, SEARCH_ACTIVITY);
53+
AndroidElement searchBoxEl = (AndroidElement) driver.findElementById("txt_query_prefill");
54+
searchBoxEl.sendKeys("Hello world!");
55+
AndroidElement onSearchRequestedBtn = (AndroidElement) driver.findElementById("btn_start_search");
56+
onSearchRequestedBtn.click();
57+
AndroidElement searchText = (AndroidElement) new WebDriverWait(driver, 30)
58+
.until(ExpectedConditions.visibilityOfElementLocated(By.id("android:id/search_src_text")));
59+
String searchTextValue = searchText.getText();
60+
Assert.assertEquals(searchTextValue, "Hello world!");
61+
}
62+
63+
@Test
64+
public void testOpensAlert() {
65+
// Open the "Alert Dialog" activity of the android app
66+
driver.startActivity(PACKAGE, ALERT_DIALOG_ACTIVITY);
67+
68+
// Click button that opens a dialog
69+
AndroidElement openDialogButton = (AndroidElement) driver.findElementById("io.appium.android.apis:id/two_buttons");
70+
openDialogButton.click();
71+
72+
// Check that the dialog is there
73+
AndroidElement alertElement = (AndroidElement) driver.findElementById("android:id/alertTitle");
74+
String alertText = alertElement.getText();
75+
Assert.assertEquals(alertText, "Lorem ipsum dolor sit aie consectetur adipiscing\nPlloaso mako nuto siwuf cakso dodtos anr koop.");
76+
AndroidElement closeDialogButton = (AndroidElement) driver.findElementById("android:id/button1");
77+
78+
// Close the dialog
79+
closeDialogButton.click();
80+
}
81+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package samples.android;
2+
3+
4+
import io.appium.java_client.android.AndroidDriver;
5+
import org.openqa.selenium.WebElement;
6+
import org.openqa.selenium.remote.DesiredCapabilities;
7+
import org.testng.Assert;
8+
import org.testng.annotations.*;
9+
import samples.BaseTest;
10+
11+
import java.net.MalformedURLException;
12+
import java.net.URI;
13+
import java.net.URISyntaxException;
14+
15+
public class AndroidCreateWebSessionTest extends BaseTest {
16+
private AndroidDriver<WebElement> driver;
17+
18+
@BeforeClass
19+
public void setUp() throws MalformedURLException {
20+
DesiredCapabilities capabilities = new DesiredCapabilities();
21+
capabilities.setCapability("deviceName", "Android Emulator");
22+
capabilities.setCapability("browserName", "Chrome");
23+
driver = new AndroidDriver<WebElement>(getServiceUrl(), capabilities);
24+
}
25+
26+
@AfterClass
27+
public void tearDown() {
28+
driver.quit();
29+
}
30+
31+
@Test()
32+
public void testCreateWebSession() throws URISyntaxException {
33+
driver.get(new URI("http://www.google.com").toString());
34+
String title = driver.getTitle();
35+
Assert.assertEquals(title, "Google");
36+
}
37+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package samples.windows;
2+
import org.openqa.selenium.remote.DesiredCapabilities;
3+
import org.testng.Assert;
4+
import org.testng.annotations.AfterTest;
5+
import org.testng.annotations.BeforeTest;
6+
import org.testng.annotations.Test;
7+
8+
import io.appium.java_client.windows.WindowsDriver;
9+
import samples.BaseTest;
10+
11+
import java.net.MalformedURLException;
12+
13+
public class WindowsDesktopAppTest extends BaseTest {
14+
15+
public static WindowsDriver<?> driver;
16+
17+
@BeforeTest
18+
public void setup() throws MalformedURLException {
19+
DesiredCapabilities caps = new DesiredCapabilities();
20+
caps.setCapability("platformVersion", "10");
21+
caps.setCapability("platformName", "Windows");
22+
caps.setCapability("deviceName", "WindowsPC");
23+
caps.setCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App");
24+
caps.setCapability("newCommandTimeout", 2000);
25+
driver = new WindowsDriver<>(getServiceUrl(), caps);
26+
}
27+
28+
@AfterTest
29+
public void tearDown() {
30+
driver.quit();
31+
}
32+
33+
@Test
34+
public void test() {
35+
driver.findElementByName("One").click();
36+
driver.findElementByName("Plus").click();
37+
driver.findElementByName("Two").click();
38+
driver.findElementByName("Equals").click();
39+
Assert.assertEquals(driver.findElementByAccessibilityId("CalculatorResults").getText(), "Display is 3");
40+
}
41+
}
4.59 MB
Binary file not shown.

0 commit comments

Comments
 (0)