Skip to content

Commit 770450f

Browse files
Update to java_client 3.3.0
It shows how to use some features of the release 3.3.0
1 parent db2c1be commit 770450f

69 files changed

Lines changed: 7361 additions & 3 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
229 KB
Binary file not shown.

sample-code/apps/RottenTomatoesPageSnapshot.html

Lines changed: 2084 additions & 0 deletions
Large diffs are not rendered by default.

sample-code/apps/RottenTomatoesSnapshot.html

Lines changed: 2192 additions & 0 deletions
Large diffs are not rendered by default.
310 KB
Binary file not shown.

sample-code/apps/chromedriver

10.3 MB
Binary file not shown.

sample-code/examples/java/junit/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<dependency>
1818
<groupId>io.appium</groupId>
1919
<artifactId>java-client</artifactId>
20-
<version>3.2.0</version>
20+
<version>3.3.0</version>
2121
</dependency>
2222
<dependency>
2323
<groupId>com.googlecode.json-simple</groupId>

sample-code/examples/java/junit/src/test/java/com/saucelabs/appium/driver_service/DriverServiceSample.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public void checkTheAbilityToStartADriverWithTheDefaultServerAndNode(){
6565

6666
@Test
6767
public void checkTheAbilityToStartADriverWithTheDefaultServerAndNotDefaultNode(){
68-
System.setProperty(AppiumServiceBuilder.APPIUM_NODE_PROPERTY, findCustomNode().getAbsolutePath());
68+
System.setProperty(AppiumServiceBuilder.APPIUM_PATH, findCustomNode().getAbsolutePath());
6969

7070
File classpathRoot = new File(System.getProperty("user.dir"));
7171
File appDir = new File(classpathRoot, "../../../apps/ApiDemos/bin");
@@ -79,7 +79,7 @@ public void checkTheAbilityToStartADriverWithTheDefaultServerAndNotDefaultNode()
7979
new AndroidDriver<MobileElement>(capabilities).quit();
8080
}
8181
finally {
82-
System.clearProperty(AppiumServiceBuilder.APPIUM_NODE_PROPERTY);
82+
System.clearProperty(AppiumServiceBuilder.APPIUM_PATH);
8383
}
8484

8585
}
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
package com.saucelabs.appium.page_object.widgets;
2+
3+
import io.appium.java_client.android.AndroidDriver;
4+
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
5+
import io.appium.java_client.pagefactory.TimeOutDuration;
6+
import io.appium.java_client.remote.MobileCapabilityType;
7+
import org.apache.commons.lang3.StringUtils;
8+
import org.junit.AfterClass;
9+
import org.junit.Before;
10+
import org.junit.BeforeClass;
11+
import org.junit.Test;
12+
import org.openqa.selenium.NoSuchElementException;
13+
import org.openqa.selenium.remote.DesiredCapabilities;
14+
import org.openqa.selenium.support.PageFactory;
15+
16+
import java.io.File;
17+
import java.net.URL;
18+
import java.util.concurrent.TimeUnit;
19+
20+
import static org.junit.Assert.assertNotNull;
21+
import static org.junit.Assert.assertTrue;
22+
23+
public class AndroidOverrideWidgetTest implements WidgetTest{
24+
25+
private static AndroidDriver<?> driver;
26+
private static RottenTomatoes rottenTomatoes;
27+
28+
@BeforeClass
29+
public static void beforeClass() throws Exception {
30+
31+
File appDir = new File("../../../apps");
32+
File app = new File(appDir, "android-rottentomatoes-demo-debug.apk");
33+
DesiredCapabilities capabilities = new DesiredCapabilities();
34+
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
35+
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
36+
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
37+
38+
rottenTomatoes = new RottenTomatoes();
39+
PageFactory.initElements(new AppiumFieldDecorator(driver, new TimeOutDuration(5, TimeUnit.SECONDS)), rottenTomatoes);
40+
}
41+
42+
@Before
43+
public void setUp() throws Exception {
44+
if (driver != null)
45+
driver.startActivity("com.codepath.example.rottentomatoes", "BoxOfficeActivity");
46+
}
47+
48+
@AfterClass
49+
public static void afterClass() throws Exception {
50+
if (driver != null)
51+
driver.quit();
52+
}
53+
54+
@Test
55+
@Override
56+
public void checkACommonWidget() {
57+
assertTrue(rottenTomatoes.getSimpleMovieCount() >= 1);
58+
Movie movie = rottenTomatoes.getASimpleMovie(0);
59+
assertTrue(!StringUtils.isBlank(movie.title()));
60+
assertTrue(!StringUtils.isBlank(movie.score()));
61+
assertNotNull(movie.getPoster());
62+
movie.goToReview();
63+
64+
rottenTomatoes.checkSimpleReview();
65+
}
66+
67+
@Override
68+
@Test
69+
public void checkAnAnnotatedWidget() {
70+
assertTrue(rottenTomatoes.getAnnotatedMovieCount() >= 1);
71+
Movie movie = rottenTomatoes.getAnAnnotatedMovie(0);
72+
assertTrue(!StringUtils.isBlank(movie.title()));
73+
assertTrue(!StringUtils.isBlank(movie.score()));
74+
assertNotNull(movie.getPoster());
75+
movie.goToReview();
76+
77+
rottenTomatoes.checkAnnotatedReview();
78+
}
79+
80+
81+
@Override
82+
@Test
83+
public void checkAnExtendedWidget() {
84+
assertTrue(rottenTomatoes.getExtendeddMovieCount() >= 1);
85+
Movie movie = rottenTomatoes.getAnExtendedMovie(0);
86+
assertTrue(!StringUtils.isBlank(movie.title()));
87+
assertTrue(!StringUtils.isBlank(movie.score()));
88+
assertNotNull(movie.getPoster());
89+
movie.goToReview();
90+
91+
rottenTomatoes.checkExtendedReview();
92+
}
93+
94+
@Override
95+
@Test
96+
public void checkTheLocatorOverridingOnAWidget() {
97+
try {
98+
assertTrue(rottenTomatoes.getFakedMovieCount() == 0);
99+
}
100+
catch (Exception e){
101+
if (!NoSuchElementException.class.isAssignableFrom(e.getClass()))
102+
throw e;
103+
}
104+
105+
rottenTomatoes.getASimpleMovie(0).goToReview();
106+
107+
try {
108+
rottenTomatoes.checkFakeReview();
109+
}
110+
catch (Exception e){
111+
if (NoSuchElementException.class.isAssignableFrom(e.getClass()))
112+
return;
113+
else
114+
throw e;
115+
}
116+
throw new RuntimeException("Any exception was expected");
117+
}
118+
}
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
package com.saucelabs.appium.page_object.widgets;
2+
3+
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
4+
import io.appium.java_client.pagefactory.TimeOutDuration;
5+
import org.apache.commons.lang3.StringUtils;
6+
import org.junit.AfterClass;
7+
import org.junit.Before;
8+
import org.junit.BeforeClass;
9+
import org.junit.Test;
10+
import org.openqa.selenium.NoSuchElementException;
11+
import org.openqa.selenium.Platform;
12+
import org.openqa.selenium.chrome.ChromeDriver;
13+
import org.openqa.selenium.chrome.ChromeDriverService;
14+
import org.openqa.selenium.support.PageFactory;
15+
16+
import java.io.File;
17+
import java.util.concurrent.TimeUnit;
18+
19+
import static org.junit.Assert.assertNotNull;
20+
import static org.junit.Assert.assertTrue;
21+
22+
public class HtmlOverrideWidgetTest implements WidgetTest{
23+
24+
private static ChromeDriver driver;
25+
private static RottenTomatoes rottenTomatoes;
26+
27+
@BeforeClass
28+
public static void beforeClass() throws Exception {
29+
30+
if (Platform.getCurrent().is(Platform.WINDOWS)) {
31+
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY,
32+
new File("../../../apps/chromedriver.exe").getAbsolutePath());
33+
}
34+
else {
35+
System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY,
36+
new File("../../../apps/chromedriver").getAbsolutePath());
37+
}
38+
39+
driver = new ChromeDriver();
40+
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
41+
rottenTomatoes = new RottenTomatoes();
42+
PageFactory.initElements(new AppiumFieldDecorator(driver, new TimeOutDuration(5, TimeUnit.SECONDS)), rottenTomatoes);
43+
}
44+
45+
@Before
46+
public void setUp() throws Exception {
47+
if (driver != null)
48+
driver.get("file:///" + new File("../../../apps/RottenTomatoesSnapshot.html").getAbsolutePath());
49+
}
50+
51+
@AfterClass
52+
public static void afterClass() throws Exception {
53+
if (driver != null)
54+
driver.quit();
55+
}
56+
57+
@Test
58+
@Override
59+
public void checkACommonWidget() {
60+
assertTrue(rottenTomatoes.getSimpleMovieCount() >= 1);
61+
Movie movie = rottenTomatoes.getASimpleMovie(0);
62+
assertTrue(!StringUtils.isBlank(movie.title()));
63+
assertTrue(!StringUtils.isBlank(movie.score()));
64+
assertNotNull(movie.getPoster());
65+
movie.goToReview();
66+
67+
rottenTomatoes.checkSimpleReview();
68+
}
69+
70+
@Override
71+
@Test
72+
public void checkAnAnnotatedWidget() {
73+
assertTrue(rottenTomatoes.getAnnotatedMovieCount() >= 1);
74+
Movie movie = rottenTomatoes.getAnAnnotatedMovie(0);
75+
assertTrue(!StringUtils.isBlank(movie.title()));
76+
assertTrue(!StringUtils.isBlank(movie.score()));
77+
assertNotNull(movie.getPoster());
78+
movie.goToReview();
79+
80+
rottenTomatoes.checkAnnotatedReview();
81+
}
82+
83+
84+
@Override
85+
@Test
86+
public void checkAnExtendedWidget() {
87+
assertTrue(rottenTomatoes.getExtendeddMovieCount() >= 1);
88+
Movie movie = rottenTomatoes.getAnExtendedMovie(0);
89+
assertTrue(!StringUtils.isBlank(movie.title()));
90+
assertTrue(!StringUtils.isBlank(movie.score()));
91+
assertNotNull(movie.getPoster());
92+
movie.goToReview();
93+
94+
rottenTomatoes.checkExtendedReview();
95+
}
96+
97+
@Override
98+
@Test
99+
public void checkTheLocatorOverridingOnAWidget() {
100+
try {
101+
assertTrue(rottenTomatoes.getFakedMovieCount() == 0);
102+
}
103+
catch (Exception e){
104+
if (!NoSuchElementException.class.isAssignableFrom(e.getClass()))
105+
throw e;
106+
}
107+
108+
rottenTomatoes.getASimpleMovie(0).goToReview();
109+
110+
try {
111+
rottenTomatoes.checkFakeReview();
112+
}
113+
catch (Exception e){
114+
if (NoSuchElementException.class.isAssignableFrom(e.getClass()))
115+
return;
116+
else
117+
throw e;
118+
}
119+
throw new RuntimeException("Any exception was expected");
120+
}
121+
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
package com.saucelabs.appium.page_object.widgets;
2+
3+
import io.appium.java_client.ios.IOSDriver;
4+
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
5+
import io.appium.java_client.pagefactory.TimeOutDuration;
6+
import io.appium.java_client.remote.MobileCapabilityType;
7+
import org.apache.commons.lang3.StringUtils;
8+
import org.junit.*;
9+
import org.openqa.selenium.NoSuchElementException;
10+
import org.openqa.selenium.remote.DesiredCapabilities;
11+
import org.openqa.selenium.support.PageFactory;
12+
13+
import java.io.File;
14+
import java.net.URL;
15+
import java.util.concurrent.TimeUnit;
16+
17+
import static org.junit.Assert.assertNotNull;
18+
import static org.junit.Assert.assertTrue;
19+
20+
public class IOSOverrideWidgetTest implements WidgetTest{
21+
22+
private IOSDriver<?> driver;
23+
private static RottenTomatoes rottenTomatoes;
24+
25+
@Before
26+
public void setUp() throws Exception {
27+
File appDir = new File("../../../apps");
28+
File app = new File(appDir, "RottenTomatoes.zip");
29+
30+
DesiredCapabilities capabilities = new DesiredCapabilities();
31+
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "");
32+
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.1");
33+
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone Simulator");
34+
capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
35+
driver = new IOSDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
36+
37+
rottenTomatoes = new RottenTomatoes();
38+
PageFactory.initElements(new AppiumFieldDecorator(driver, new TimeOutDuration(5, TimeUnit.SECONDS)), rottenTomatoes);
39+
}
40+
41+
@After
42+
public void tearDown() {
43+
if (driver != null)
44+
driver.quit();
45+
}
46+
47+
@Test
48+
@Override
49+
public void checkACommonWidget() {
50+
assertTrue(rottenTomatoes.getSimpleMovieCount() >= 1);
51+
Movie movie = rottenTomatoes.getASimpleMovie(0);
52+
assertTrue(!StringUtils.isBlank(movie.title()));
53+
assertTrue(!StringUtils.isBlank(movie.score()));
54+
assertNotNull(movie.getPoster());
55+
movie.goToReview();
56+
57+
rottenTomatoes.checkSimpleReview();
58+
}
59+
60+
@Override
61+
@Test
62+
public void checkAnAnnotatedWidget() {
63+
assertTrue(rottenTomatoes.getAnnotatedMovieCount() >= 1);
64+
Movie movie = rottenTomatoes.getAnAnnotatedMovie(0);
65+
assertTrue(!StringUtils.isBlank(movie.title()));
66+
assertTrue(!StringUtils.isBlank(movie.score()));
67+
assertNotNull(movie.getPoster());
68+
movie.goToReview();
69+
70+
rottenTomatoes.checkAnnotatedReview();
71+
}
72+
73+
74+
@Override
75+
@Test
76+
public void checkAnExtendedWidget() {
77+
assertTrue(rottenTomatoes.getExtendeddMovieCount() >= 1);
78+
Movie movie = rottenTomatoes.getAnExtendedMovie(0);
79+
assertTrue(!StringUtils.isBlank(movie.title()));
80+
assertTrue(!StringUtils.isBlank(movie.score()));
81+
assertNotNull(movie.getPoster());
82+
movie.goToReview();
83+
84+
rottenTomatoes.checkExtendedReview();
85+
}
86+
87+
@Override
88+
@Test
89+
public void checkTheLocatorOverridingOnAWidget() {
90+
try {
91+
assertTrue(rottenTomatoes.getFakedMovieCount() == 0);
92+
}
93+
catch (Exception e){
94+
if (!NoSuchElementException.class.isAssignableFrom(e.getClass()))
95+
throw e;
96+
}
97+
98+
rottenTomatoes.getASimpleMovie(0).goToReview();
99+
100+
try {
101+
rottenTomatoes.checkFakeReview();
102+
}
103+
catch (Exception e){
104+
if (NoSuchElementException.class.isAssignableFrom(e.getClass()))
105+
return;
106+
else
107+
throw e;
108+
}
109+
throw new RuntimeException("Any exception was expected");
110+
}
111+
}

0 commit comments

Comments
 (0)