diff --git a/src/main/java/io/appium/java_client/pagefactory/Widget.java b/src/main/java/io/appium/java_client/pagefactory/Widget.java index 2e6b7f681..53ba24211 100644 --- a/src/main/java/io/appium/java_client/pagefactory/Widget.java +++ b/src/main/java/io/appium/java_client/pagefactory/Widget.java @@ -61,4 +61,8 @@ public WebDriver getWrappedDriver() { public WebElement getWrappedElement() { return (WebElement) element; } + + public Widget getSelfReference() { + return this; + } } diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/AndroidOverrideWidgetTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/AndroidOverrideWidgetTest.java index 69b5866b5..812fe996f 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/AndroidOverrideWidgetTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/AndroidOverrideWidgetTest.java @@ -3,6 +3,8 @@ import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.pagefactory.AppiumFieldDecorator; import io.appium.java_client.pagefactory.TimeOutDuration; +import io.appium.java_client.pagefactory_tests.widgets.android.annotated.AnnotatedAndroidMovie; +import io.appium.java_client.pagefactory_tests.widgets.android.simple.AndroidMovie; import io.appium.java_client.remote.MobileCapabilityType; import io.appium.java_client.service.local.AppiumDriverLocalService; import org.apache.commons.lang3.StringUtils; @@ -68,6 +70,7 @@ public void checkACommonWidget() { movie.goToReview(); rottenTomatoes.checkSimpleReview(); + assertTrue(movie.getSelfReference().getClass().equals(AndroidMovie.class)); } @Override @@ -81,6 +84,7 @@ public void checkAnAnnotatedWidget() { movie.goToReview(); rottenTomatoes.checkAnnotatedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedAndroidMovie.class)); } @@ -95,6 +99,7 @@ public void checkAnExtendedWidget() { movie.goToReview(); rottenTomatoes.checkExtendedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedAndroidMovie.class)); } @Override diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/HtmlOverrideWidgetTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/HtmlOverrideWidgetTest.java index bfe8d885c..3bf8ec42a 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/HtmlOverrideWidgetTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/HtmlOverrideWidgetTest.java @@ -2,6 +2,8 @@ import io.appium.java_client.pagefactory.AppiumFieldDecorator; import io.appium.java_client.pagefactory.TimeOutDuration; +import io.appium.java_client.pagefactory_tests.widgets.html.annotated.AnnotatedHtmlMovie; +import io.appium.java_client.pagefactory_tests.widgets.html.simple.HtmlMovie; import org.apache.commons.lang3.StringUtils; import org.junit.AfterClass; import org.junit.Before; @@ -45,7 +47,7 @@ public static void beforeClass() throws Exception { @Before public void setUp() throws Exception { if (driver != null) - driver.get("file:///" + new File("src/test/java/io/appium/java_client/RottenTomatoesSnapshot.html").getAbsolutePath()); + driver.get( new File("src/test/java/io/appium/java_client/RottenTomatoesSnapshot.html").toURI().toString()); } @AfterClass @@ -65,6 +67,7 @@ public void checkACommonWidget() { movie.goToReview(); rottenTomatoes.checkSimpleReview(); + assertTrue(movie.getSelfReference().getClass().equals(HtmlMovie.class)); } @Override @@ -78,6 +81,7 @@ public void checkAnAnnotatedWidget() { movie.goToReview(); rottenTomatoes.checkAnnotatedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedHtmlMovie.class)); } @@ -92,6 +96,7 @@ public void checkAnExtendedWidget() { movie.goToReview(); rottenTomatoes.checkExtendedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedHtmlMovie.class)); } @Override diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/IOSOverrideWidgetTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/IOSOverrideWidgetTest.java index 3b8a40d2f..c189057f0 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/IOSOverrideWidgetTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/IOSOverrideWidgetTest.java @@ -3,6 +3,8 @@ import io.appium.java_client.ios.IOSDriver; import io.appium.java_client.pagefactory.AppiumFieldDecorator; import io.appium.java_client.pagefactory.TimeOutDuration; +import io.appium.java_client.pagefactory_tests.widgets.ios.annotated.AnnotatedIOSMovie; +import io.appium.java_client.pagefactory_tests.widgets.ios.simple.IOSMovie; import io.appium.java_client.remote.MobileCapabilityType; import io.appium.java_client.service.local.AppiumDriverLocalService; import org.apache.commons.lang3.StringUtils; @@ -68,6 +70,7 @@ public void checkACommonWidget() { movie.goToReview(); rottenTomatoes.checkSimpleReview(); + assertTrue(movie.getSelfReference().getClass().equals(IOSMovie.class)); } @Override @@ -81,6 +84,7 @@ public void checkAnAnnotatedWidget() { movie.goToReview(); rottenTomatoes.checkAnnotatedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedIOSMovie.class)); } @@ -95,6 +99,7 @@ public void checkAnExtendedWidget() { movie.goToReview(); rottenTomatoes.checkExtendedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedIOSMovie.class)); } @Override diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movie.java b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movie.java index b4860e45c..4bd530057 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movie.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movie.java @@ -15,4 +15,9 @@ protected Movie(WebElement element) { public abstract Object getPoster(); public abstract void goToReview(); + + @Override + public Movie getSelfReference() { + return (Movie) super.getSelfReference(); + } } diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movies.java b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movies.java index 15606b1d1..f5209987e 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movies.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Movies.java @@ -12,4 +12,9 @@ protected Movies(WebElement element) { public abstract int getMovieCount(); public abstract Movie getMovie(int index); + + @Override + public Movies getSelfReference() { + return (Movies) super.getSelfReference(); + } } diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Review.java b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Review.java index 1f2e16f53..2e53731bb 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Review.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/Review.java @@ -16,4 +16,9 @@ protected Review(WebElement element) { public abstract String info(); public abstract Object getPoster(); + + @Override + public Review getSelfReference() { + return (Review) super.getSelfReference(); + } } diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/SelendroidOverrideWidgetTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/SelendroidOverrideWidgetTest.java index 00129fe65..c79794d7f 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widgets/SelendroidOverrideWidgetTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widgets/SelendroidOverrideWidgetTest.java @@ -3,6 +3,8 @@ import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.pagefactory.AppiumFieldDecorator; import io.appium.java_client.pagefactory.TimeOutDuration; +import io.appium.java_client.pagefactory_tests.widgets.selendroid.annotated.AnnotatedSelendroidMovie; +import io.appium.java_client.pagefactory_tests.widgets.selendroid.simple.SelendroidMovie; import io.appium.java_client.remote.AutomationName; import io.appium.java_client.remote.MobileCapabilityType; import io.appium.java_client.service.local.AppiumDriverLocalService; @@ -72,6 +74,7 @@ public void checkACommonWidget() { movie.goToReview(); driver.getPageSource(); //forcing the refreshing hierarchy rottenTomatoes.checkSimpleReview(); + assertTrue(movie.getSelfReference().getClass().equals(SelendroidMovie.class)); } @Override @@ -85,6 +88,7 @@ public void checkAnAnnotatedWidget() { movie.goToReview(); driver.getPageSource(); //forcing the refreshing hierarchy rottenTomatoes.checkAnnotatedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedSelendroidMovie.class)); } @@ -99,6 +103,7 @@ public void checkAnExtendedWidget() { movie.goToReview(); driver.getPageSource(); //forcing the refreshing hierarchy rottenTomatoes.checkExtendedReview(); + assertTrue(movie.getSelfReference().getClass().equals(AnnotatedSelendroidMovie.class)); } @Override