Skip to content

Commit 30d0163

Browse files
The refactoring of widget tests: WebDriverUnpackUtility is using HasSessionDetails#isBrowser now
and the order of imports was improved
1 parent 4c92e82 commit 30d0163

File tree

6 files changed

+42
-26
lines changed

6 files changed

+42
-26
lines changed

src/main/java/io/appium/java_client/pagefactory/utils/WebDriverUnpackUtility.java

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616

1717
package io.appium.java_client.pagefactory.utils;
1818

19+
import static io.appium.java_client.pagefactory.bys.ContentType.HTML_OR_DEFAULT;
20+
import static io.appium.java_client.pagefactory.bys.ContentType.NATIVE_MOBILE_SPECIFIC;
21+
import static java.util.Optional.ofNullable;
22+
23+
import io.appium.java_client.HasSessionDetails;
1924
import io.appium.java_client.pagefactory.bys.ContentType;
2025
import org.openqa.selenium.ContextAware;
2126
import org.openqa.selenium.SearchContext;
@@ -84,17 +89,27 @@ public static WebDriver unpackWebDriverFromSearchContext(SearchContext searchCon
8489
* {@link org.openqa.selenium.ContextAware} and {@link org.openqa.selenium.internal.WrapsDriver}
8590
*/
8691
public static ContentType getCurrentContentType(SearchContext context) {
87-
WebDriver driver = WebDriverUnpackUtility.unpackWebDriverFromSearchContext(context);
88-
if (!ContextAware.class.isAssignableFrom(driver.getClass())) { //it is desktop browser
89-
return ContentType.HTML_OR_DEFAULT;
90-
}
92+
return ofNullable(unpackWebDriverFromSearchContext(context)).map(driver -> {
93+
if (HasSessionDetails.class.isAssignableFrom(driver.getClass())) {
94+
HasSessionDetails hasSessionDetails = HasSessionDetails.class.cast(driver);
9195

92-
ContextAware contextAware = ContextAware.class.cast(driver);
93-
String currentContext = contextAware.getContext();
94-
if (currentContext.contains(NATIVE_APP_PATTERN)) {
95-
return ContentType.NATIVE_MOBILE_SPECIFIC;
96-
}
96+
if (hasSessionDetails.isBrowser()) {
97+
return HTML_OR_DEFAULT;
98+
}
99+
return NATIVE_MOBILE_SPECIFIC;
100+
}
101+
102+
if (!ContextAware.class.isAssignableFrom(driver.getClass())) { //it is desktop browser
103+
return HTML_OR_DEFAULT;
104+
}
105+
106+
ContextAware contextAware = ContextAware.class.cast(driver);
107+
String currentContext = contextAware.getContext();
108+
if (currentContext.contains(NATIVE_APP_PATTERN)) {
109+
return NATIVE_MOBILE_SPECIFIC;
110+
}
97111

98-
return ContentType.HTML_OR_DEFAULT;
112+
return HTML_OR_DEFAULT;
113+
}).orElse(HTML_OR_DEFAULT);
99114
}
100115
}

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

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

3-
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4-
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5-
63
import static io.appium.java_client.MobileBy.AndroidUIAutomator;
74
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AndroidApp.ANDROID_DEFAULT_WIDGET_LOCATOR;
85
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AndroidApp.ANDROID_EXTERNALLY_DEFINED_WIDGET_LOCATOR;
96
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AnnotatedAndroidWidget.ANDROID_ROOT_WIDGET_LOCATOR;
107
import static io.appium.java_client.pagefactory_tests.widget.tests.android.DefaultAndroidWidget.ANDROID_SUB_WIDGET_LOCATOR;
118

9+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
10+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
11+
1212
public class AndroidWidgetTest extends WidgetTest {
1313

1414
public AndroidWidgetTest() {

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

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

3-
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4-
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5-
63
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AndroidApp.ANDROID_SELENDROID_WIDGET_LOCATOR;
74
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AndroidApp.SELENDROID_EXTERNALLY_DEFINED_WIDGET_LOCATOR;
85
import static io.appium.java_client.pagefactory_tests.widget.tests.android.AnnotatedAndroidWidget.SELENDROID_ROOT_WIDGET_LOCATOR;
96
import static io.appium.java_client.pagefactory_tests.widget.tests.android.DefaultAndroidWidget.SELENDROID_SUB_WIDGET_LOCATOR;
107
import static org.openqa.selenium.By.linkText;
118

9+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
10+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
11+
1212
public class SelendroidWidgetTest extends WidgetTest {
1313
public SelendroidWidgetTest() {
1414
super(new AndroidApp(), new AbstractStubWebDriver.StubSelendroidDriver());

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/ios/IosWidgetTest.java

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

3-
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4-
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5-
63
import static io.appium.java_client.MobileBy.IosUIAutomation;
74
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.AnnotatedIosWidget.IOS_ROOT_WIDGET_LOCATOR;
85
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.DefaultIosWidget.IOS_SUB_WIDGET_LOCATOR;
96
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.IosApp.IOS_DEFAULT_WIDGET_LOCATOR;
107
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.IosApp.IOS_EXTERNALLY_DEFINED_WIDGET_LOCATOR;
118

9+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
10+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
11+
1212
public class IosWidgetTest extends WidgetTest {
1313

1414
public IosWidgetTest() {

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/ios/XCUITWidgetTest.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package io.appium.java_client.pagefactory_tests.widget.tests.ios;
22

3-
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4-
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5-
63
import static io.appium.java_client.MobileBy.iOSNsPredicateString;
74
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.AnnotatedIosWidget.XCUIT_ROOT_WIDGET_LOCATOR;
85
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.*;
6+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.IosApp.IOS_XCUIT_WIDGET_LOCATOR;
7+
import static io.appium.java_client.pagefactory_tests.widget.tests.ios.IosApp.XCUIT_EXTERNALLY_DEFINED_WIDGET_LOCATOR;
8+
9+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
10+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
1011

1112
public class XCUITWidgetTest extends WidgetTest {
1213

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/windows/WindowsWidgetTest.java

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

3-
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
4-
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
5-
63
import static io.appium.java_client.MobileBy.windowsAutomation;
74
import static io.appium.java_client.pagefactory_tests.widget.tests.windows.AnnotatedWindowsWidget.WINDOWS_ROOT_WIDGET_LOCATOR;
85
import static io.appium.java_client.pagefactory_tests.widget.tests.windows.DefaultWindowsWidget.WINDOWS_SUB_WIDGET_LOCATOR;
96
import static io.appium.java_client.pagefactory_tests.widget.tests.windows.WindowsApp.WINDOWS_DEFAULT_WIDGET_LOCATOR;
107
import static io.appium.java_client.pagefactory_tests.widget.tests.windows.WindowsApp.WINDOWS_EXTERNALLY_DEFINED_WIDGET_LOCATOR;
118

9+
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
10+
import io.appium.java_client.pagefactory_tests.widget.tests.WidgetTest;
11+
1212
public class WindowsWidgetTest extends WidgetTest {
1313

1414
public WindowsWidgetTest() {

0 commit comments

Comments
 (0)