From 6ba9103681aeedab0f7d6423b87a9d6f5b047b46 Mon Sep 17 00:00:00 2001 From: Aaron Davis Date: Fri, 13 Dec 2019 14:20:01 -0800 Subject: [PATCH] Fixing a bug in the page object initialization --- README.md | 2 +- pom.xml | 2 +- .../redfin/selenium/AbstractBaseWidgetObject.java | 12 ++++++++---- .../selenium/AbstractPageObjectInitializer.java | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 929ca1c..6554c9f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Via maven: com.redfin patient-selenium - 3.1.0 + 3.1.1 ``` diff --git a/pom.xml b/pom.xml index 10a4ef3..7b8f641 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ com.redfin patient-selenium - 3.1.0 + 3.1.1 4.0.0 jar diff --git a/src/main/java/com/redfin/selenium/AbstractBaseWidgetObject.java b/src/main/java/com/redfin/selenium/AbstractBaseWidgetObject.java index 46d8dda..b568440 100644 --- a/src/main/java/com/redfin/selenium/AbstractBaseWidgetObject.java +++ b/src/main/java/com/redfin/selenium/AbstractBaseWidgetObject.java @@ -27,14 +27,18 @@ protected final E getWidgetElement() { return widgetElement; } - /* - * Only intended for use by the AbstractPageObjectInitializer so make - * the visibility package private. - */ + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Package private methods intended for use only by AbstractPageObjectInitializer + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + void setWidgetElement(E value) { if (null != widgetElement) { throw new PageObjectInitializationException("This widget was already initialized"); } this.widgetElement = value; } + + boolean isWidgetElementSet() { + return null != widgetElement; + } } diff --git a/src/main/java/com/redfin/selenium/AbstractPageObjectInitializer.java b/src/main/java/com/redfin/selenium/AbstractPageObjectInitializer.java index 58b5196..f635c11 100644 --- a/src/main/java/com/redfin/selenium/AbstractPageObjectInitializer.java +++ b/src/main/java/com/redfin/selenium/AbstractPageObjectInitializer.java @@ -293,7 +293,7 @@ private void initializeField(Object object, if (isWidget.get()) { if (builtValue.get() instanceof AbstractBaseWidgetObject) { AbstractBaseWidgetObject widget = (AbstractBaseWidgetObject) builtValue.get(); - if (null != widget.getWidgetElement()) { + if (widget.isWidgetElementSet()) { throw new PageObjectInitializationException(String.format("Received a widget from %s with a non-null base element for field: %s", buildMethodNameString, field)); } } else {