Skip to content

Commit a079f48

Browse files
The refactoring of widget tests: All simple cases were implemented
1 parent 1e06afe commit a079f48

15 files changed

+457
-0
lines changed

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/android/AndroidApp.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
package io.appium.java_client.pagefactory_tests.widget.tests.android;
22

33
import io.appium.java_client.pagefactory.AndroidFindBy;
4+
import io.appium.java_client.pagefactory.SelendroidFindBy;
45
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractApp;
56

67
import java.util.List;
78

89
public class AndroidApp extends AbstractApp{
910

1011
public static String ANDROID_DEFAULT_WIDGET_LOCATOR = "SOME_ANDROID_DEFAULT_LOCATOR";
12+
public static String ANDROID_SELENDROID_WIDGET_LOCATOR = "SOME_SELENDROID_DEFAULT_LOCATOR";
13+
1114
public static String ANDROID_EXTERNALLY_DEFINED_WIDGET_LOCATOR = "SOME_ANDROID_EXTERNALLY_DEFINED_LOCATOR";
15+
public static String SELENDROID_EXTERNALLY_DEFINED_WIDGET_LOCATOR = "SOME_SELENDROID_EXTERNALLY_DEFINED_LOCATOR";
1216

1317
@AndroidFindBy(uiAutomator = "SOME_ANDROID_DEFAULT_LOCATOR")
18+
@SelendroidFindBy(linkText = "SOME_SELENDROID_DEFAULT_LOCATOR")
1419
private DefaultAndroidWidget singleAndroidWidget;
1520

1621
@AndroidFindBy(uiAutomator = "SOME_ANDROID_DEFAULT_LOCATOR")
22+
@SelendroidFindBy(linkText = "SOME_SELENDROID_DEFAULT_LOCATOR")
1723
private List<DefaultAndroidWidget> multipleAndroidWidgets;
1824

1925
private AnnotatedAndroidWidget singleAnnotatedAndroidWidget;
@@ -25,9 +31,11 @@ public class AndroidApp extends AbstractApp{
2531
private List<ExtendedAndroidWidget> multipleExtendedAndroidWidgets;
2632

2733
@AndroidFindBy(uiAutomator = "SOME_ANDROID_EXTERNALLY_DEFINED_LOCATOR")
34+
@SelendroidFindBy(linkText = "SOME_SELENDROID_EXTERNALLY_DEFINED_LOCATOR")
2835
private ExtendedAndroidWidget singleOverriddenAndroidWidget;
2936

3037
@AndroidFindBy(uiAutomator = "SOME_ANDROID_EXTERNALLY_DEFINED_LOCATOR")
38+
@SelendroidFindBy(linkText = "SOME_SELENDROID_EXTERNALLY_DEFINED_LOCATOR")
3139
private List<ExtendedAndroidWidget> multipleOverriddenAndroidWidgets;
3240

3341
@Override

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/android/AnnotatedAndroidWidget.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package io.appium.java_client.pagefactory_tests.widget.tests.android;
22

33
import io.appium.java_client.pagefactory.AndroidFindBy;
4+
import io.appium.java_client.pagefactory.SelendroidFindBy;
45
import org.openqa.selenium.WebElement;
56

67
@AndroidFindBy(uiAutomator = "SOME_ROOT_LOCATOR")
8+
@SelendroidFindBy(linkText = "SELENDROID_SOME_ROOT_LOCATOR")
79
public class AnnotatedAndroidWidget extends DefaultAndroidWidget {
810
public static String ANDROID_ROOT_WIDGET_LOCATOR = "SOME_ROOT_LOCATOR";
11+
public static String SELENDROID_ROOT_WIDGET_LOCATOR = "SELENDROID_SOME_ROOT_LOCATOR";
912

1013
protected AnnotatedAndroidWidget(WebElement element) {
1114
super(element);

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/android/DefaultAndroidWidget.java

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

33
import io.appium.java_client.pagefactory.AndroidFindBy;
4+
import io.appium.java_client.pagefactory.SelendroidFindBy;
45
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractWidget;
56
import org.openqa.selenium.WebElement;
67

@@ -9,11 +10,14 @@
910
public class DefaultAndroidWidget extends AbstractWidget {
1011

1112
public static String ANDROID_SUB_WIDGET_LOCATOR = "SOME_SUB_LOCATOR";
13+
public static String SELENDROID_SUB_WIDGET_LOCATOR = "SELENDROID_SOME_SUB_LOCATOR";
1214

1315
@AndroidFindBy(uiAutomator = "SOME_SUB_LOCATOR")
16+
@SelendroidFindBy(linkText = "SELENDROID_SOME_SUB_LOCATOR")
1417
private DefaultAndroidWidget singleWidget;
1518

1619
@AndroidFindBy(uiAutomator = "SOME_SUB_LOCATOR")
20+
@SelendroidFindBy(linkText = "SELENDROID_SOME_SUB_LOCATOR")
1721
private List<DefaultAndroidWidget> multipleWidgets;
1822

1923
protected DefaultAndroidWidget(WebElement element) {
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests.android;
2+
3+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5+
6+
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AndroidApp.ANDROID_SELENDROID_WIDGET_LOCATOR;
7+
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AndroidApp.SELENDROID_EXTERNALLY_DEFINED_WIDGET_LOCATOR;
8+
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AnnotatedAndroidWidget.SELENDROID_ROOT_WIDGET_LOCATOR;
9+
import static io.appium.java_client.pagefactory_tests.widget.tests.android.DefaultAndroidWidget.SELENDROID_SUB_WIDGET_LOCATOR;
10+
import static org.openqa.selenium.By.linkText;
11+
12+
public class SelendroidWidgetTest extends WidgetTest {
13+
public SelendroidWidgetTest() {
14+
super(new AndroidApp(), new AbstractStubWebDriver.StubSelendroidDriver());
15+
}
16+
17+
@Override
18+
public void checkACommonWidget() {
19+
defaultTest(app.getWidget(), app.getWidgets(),
20+
linkText(ANDROID_SELENDROID_WIDGET_LOCATOR), linkText(SELENDROID_SUB_WIDGET_LOCATOR));
21+
}
22+
23+
@Override
24+
public void checkAnAnnotatedWidget() {
25+
defaultTest(app.getAnnotatedWidget(), app.getAnnotatedWidgets(),
26+
linkText(SELENDROID_ROOT_WIDGET_LOCATOR), linkText(SELENDROID_SUB_WIDGET_LOCATOR));
27+
}
28+
29+
@Override
30+
public void checkAnExtendedWidget() {
31+
defaultTest(app.getExtendedWidget(), app.getExtendedWidgets(),
32+
linkText(SELENDROID_ROOT_WIDGET_LOCATOR), linkText(SELENDROID_SUB_WIDGET_LOCATOR));
33+
}
34+
35+
@Override
36+
public void checkTheLocatorOverridingOnAWidget() {
37+
defaultTest(app.getExtendedWidgetWithOverriddenLocators(), app.getExtendedWidgetsWithOverriddenLocators(),
38+
linkText(SELENDROID_EXTERNALLY_DEFINED_WIDGET_LOCATOR), linkText(SELENDROID_SUB_WIDGET_LOCATOR));
39+
}
40+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests.ios;
2+
3+
import io.appium.java_client.pagefactory.iOSFindBy;
4+
import io.appium.java_client.pagefactory.iOSXCUITFindBy;
5+
import org.openqa.selenium.WebElement;
6+
7+
@iOSFindBy(uiAutomator = "SOME_ROOT_LOCATOR")
8+
@iOSXCUITFindBy(iOSNsPredicate = "XCUIT_SOME_ROOT_LOCATOR")
9+
public class AnnotatedIosWidget extends DefaultIosWidget {
10+
public static String IOS_ROOT_WIDGET_LOCATOR = "SOME_ROOT_LOCATOR";
11+
public static String XCUIT_ROOT_WIDGET_LOCATOR = "XCUIT_SOME_ROOT_LOCATOR";
12+
13+
protected AnnotatedIosWidget(WebElement element) {
14+
super(element);
15+
}
16+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests.ios;
2+
3+
import io.appium.java_client.pagefactory.iOSFindBy;
4+
import io.appium.java_client.pagefactory.iOSXCUITFindBy;
5+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractWidget;
6+
import org.openqa.selenium.WebElement;
7+
8+
import java.util.List;
9+
10+
public class DefaultIosWidget extends AbstractWidget {
11+
12+
public static String IOS_SUB_WIDGET_LOCATOR = "SOME_SUB_LOCATOR";
13+
public static String XCUIT_SUB_WIDGET_LOCATOR = "XCUIT_SOME_SUB_LOCATOR";
14+
15+
@iOSFindBy(uiAutomator = "SOME_SUB_LOCATOR")
16+
@iOSXCUITFindBy(iOSNsPredicate = "XCUIT_SOME_SUB_LOCATOR")
17+
private DefaultIosWidget singleWidget;
18+
19+
@iOSFindBy(uiAutomator = "SOME_SUB_LOCATOR")
20+
@iOSXCUITFindBy(iOSNsPredicate = "XCUIT_SOME_SUB_LOCATOR")
21+
private List<DefaultIosWidget> multipleWidgets;
22+
23+
protected DefaultIosWidget(WebElement element) {
24+
super(element);
25+
}
26+
27+
@Override
28+
public DefaultIosWidget getSubWidget() {
29+
return singleWidget;
30+
}
31+
32+
@Override
33+
public List<DefaultIosWidget> getSubWidgets() {
34+
return multipleWidgets;
35+
}
36+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests.ios;
2+
3+
import org.openqa.selenium.WebElement;
4+
5+
public class ExtendedIosWidget extends AnnotatedIosWidget {
6+
protected ExtendedIosWidget(WebElement element) {
7+
super(element);
8+
}
9+
}
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests.ios;
2+
3+
import io.appium.java_client.pagefactory.AndroidFindBy;
4+
import io.appium.java_client.pagefactory.SelendroidFindBy;
5+
import io.appium.java_client.pagefactory.iOSFindBy;
6+
import io.appium.java_client.pagefactory.iOSXCUITFindBy;
7+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractApp;
8+
9+
import java.util.List;
10+
11+
public class IosApp extends AbstractApp{
12+
13+
public static String IOS_DEFAULT_WIDGET_LOCATOR = "SOME_IOS_DEFAULT_LOCATOR";
14+
public static String IOS_XCUIT_WIDGET_LOCATOR = "SOME_XCUIT_DEFAULT_LOCATOR";
15+
16+
public static String IOS_EXTERNALLY_DEFINED_WIDGET_LOCATOR = "IOS_EXTERNALLY_DEFINED_WIDGET_LOCATOR";
17+
public static String XCUIT_EXTERNALLY_DEFINED_WIDGET_LOCATOR = "SOME_XCUIT_EXTERNALLY_DEFINED_LOCATOR";
18+
19+
@iOSFindBy(uiAutomator = "SOME_IOS_DEFAULT_LOCATOR")
20+
@iOSXCUITFindBy(iOSNsPredicate = "SOME_XCUIT_DEFAULT_LOCATOR")
21+
private DefaultIosWidget singleIosWidget;
22+
23+
@iOSFindBy(uiAutomator = "SOME_IOS_DEFAULT_LOCATOR")
24+
@iOSXCUITFindBy(iOSNsPredicate = "SOME_XCUIT_DEFAULT_LOCATOR")
25+
private List<DefaultIosWidget> multipleIosWidgets;
26+
27+
private AnnotatedIosWidget singleAnnotatedIosWidget;
28+
29+
private List<AnnotatedIosWidget> multipleIosIosWidgets;
30+
31+
private ExtendedIosWidget singleExtendedIosWidget;
32+
33+
private List<ExtendedIosWidget> multipleExtendedIosWidgets;
34+
35+
@iOSFindBy(uiAutomator = "IOS_EXTERNALLY_DEFINED_WIDGET_LOCATOR")
36+
@iOSXCUITFindBy(iOSNsPredicate = "SOME_XCUIT_EXTERNALLY_DEFINED_LOCATOR")
37+
private ExtendedIosWidget singleOverriddenIosWidget;
38+
39+
@iOSFindBy(uiAutomator = "IOS_EXTERNALLY_DEFINED_WIDGET_LOCATOR")
40+
@iOSXCUITFindBy(iOSNsPredicate = "SOME_XCUIT_EXTERNALLY_DEFINED_LOCATOR")
41+
private List<ExtendedIosWidget> multipleOverriddenIosWidgets;
42+
43+
@Override
44+
public DefaultIosWidget getWidget() {
45+
return singleIosWidget;
46+
}
47+
48+
@Override
49+
public List<DefaultIosWidget> getWidgets() {
50+
return multipleIosWidgets;
51+
}
52+
53+
@Override
54+
public DefaultIosWidget getAnnotatedWidget() {
55+
return singleAnnotatedIosWidget;
56+
}
57+
58+
@Override
59+
public List<AnnotatedIosWidget> getAnnotatedWidgets() {
60+
return multipleIosIosWidgets;
61+
}
62+
63+
@Override
64+
public DefaultIosWidget getExtendedWidget() {
65+
return singleExtendedIosWidget;
66+
}
67+
68+
@Override
69+
public List<ExtendedIosWidget> getExtendedWidgets() {
70+
return multipleExtendedIosWidgets;
71+
}
72+
73+
@Override
74+
public DefaultIosWidget getExtendedWidgetWithOverriddenLocators() {
75+
return singleOverriddenIosWidget;
76+
}
77+
78+
@Override
79+
public List<ExtendedIosWidget> getExtendedWidgetsWithOverriddenLocators() {
80+
return multipleOverriddenIosWidgets;
81+
}
82+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests.ios;
2+
3+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5+
6+
import static io.appium.java_client.MobileBy.IosUIAutomation;
7+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.AnnotatedIosWidget.IOS_ROOT_WIDGET_LOCATOR;
8+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.DefaultIosWidget.IOS_SUB_WIDGET_LOCATOR;
9+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.IosApp.IOS_DEFAULT_WIDGET_LOCATOR;
10+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.IosApp.IOS_EXTERNALLY_DEFINED_WIDGET_LOCATOR;
11+
12+
public class IosWidgetTest extends WidgetTest {
13+
14+
public IosWidgetTest() {
15+
super(new IosApp(), new AbstractStubWebDriver.StubIOSDriver());
16+
}
17+
18+
@Override
19+
public void checkACommonWidget() {
20+
defaultTest(app.getWidget(), app.getWidgets(),
21+
IosUIAutomation(IOS_DEFAULT_WIDGET_LOCATOR), IosUIAutomation(IOS_SUB_WIDGET_LOCATOR));
22+
}
23+
24+
@Override
25+
public void checkAnAnnotatedWidget() {
26+
defaultTest(app.getAnnotatedWidget(), app.getAnnotatedWidgets(),
27+
IosUIAutomation(IOS_ROOT_WIDGET_LOCATOR), IosUIAutomation(IOS_SUB_WIDGET_LOCATOR));
28+
}
29+
30+
@Override
31+
public void checkAnExtendedWidget() {
32+
defaultTest(app.getExtendedWidget(), app.getExtendedWidgets(),
33+
IosUIAutomation(IOS_ROOT_WIDGET_LOCATOR), IosUIAutomation(IOS_SUB_WIDGET_LOCATOR));
34+
}
35+
36+
@Override
37+
public void checkTheLocatorOverridingOnAWidget() {
38+
defaultTest(app.getExtendedWidgetWithOverriddenLocators(), app.getExtendedWidgetsWithOverriddenLocators(),
39+
IosUIAutomation(IOS_EXTERNALLY_DEFINED_WIDGET_LOCATOR), IosUIAutomation(IOS_SUB_WIDGET_LOCATOR));
40+
}
41+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package io.appium.java_client.pagefactory_tests.widget.tests.ios;
2+
3+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5+
6+
import static io.appium.java_client.MobileBy.iOSNsPredicateString;
7+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.AnnotatedIosWidget.XCUIT_ROOT_WIDGET_LOCATOR;
8+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.DefaultIosWidget.XCUIT_SUB_WIDGET_LOCATOR;
9+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.IosApp.*;
10+
11+
public class XCUITWidgetTest extends WidgetTest {
12+
13+
public XCUITWidgetTest() {
14+
super(new IosApp(), new AbstractStubWebDriver.StubIOSXCUITDriver());
15+
}
16+
17+
@Override
18+
public void checkACommonWidget() {
19+
defaultTest(app.getWidget(), app.getWidgets(),
20+
iOSNsPredicateString(IOS_XCUIT_WIDGET_LOCATOR), iOSNsPredicateString(XCUIT_SUB_WIDGET_LOCATOR));
21+
}
22+
23+
@Override
24+
public void checkAnAnnotatedWidget() {
25+
defaultTest(app.getAnnotatedWidget(), app.getAnnotatedWidgets(),
26+
iOSNsPredicateString(XCUIT_ROOT_WIDGET_LOCATOR), iOSNsPredicateString(XCUIT_SUB_WIDGET_LOCATOR));
27+
}
28+
29+
@Override
30+
public void checkAnExtendedWidget() {
31+
defaultTest(app.getExtendedWidget(), app.getExtendedWidgets(),
32+
iOSNsPredicateString(XCUIT_ROOT_WIDGET_LOCATOR), iOSNsPredicateString(XCUIT_SUB_WIDGET_LOCATOR));
33+
}
34+
35+
@Override
36+
public void checkTheLocatorOverridingOnAWidget() {
37+
defaultTest(app.getExtendedWidgetWithOverriddenLocators(), app.getExtendedWidgetsWithOverriddenLocators(),
38+
iOSNsPredicateString(XCUIT_EXTERNALLY_DEFINED_WIDGET_LOCATOR), iOSNsPredicateString(XCUIT_SUB_WIDGET_LOCATOR));
39+
}
40+
}

0 commit comments

Comments
 (0)