From 59f4919ddf9b68e64bd599fee1c89f3ca101aa1f Mon Sep 17 00:00:00 2001 From: Valery Yatsynovich Date: Wed, 25 Jan 2023 01:54:03 +0300 Subject: [PATCH 1/4] build: Move Checkstyle config to a dedicated folder --- build.gradle | 2 +- appium-style.xml => config/checkstyle/appium-style.xml | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename appium-style.xml => config/checkstyle/appium-style.xml (100%) diff --git a/build.gradle b/build.gradle index 837836f17..3110e7834 100644 --- a/build.gradle +++ b/build.gradle @@ -99,7 +99,7 @@ if (JavaVersion.current().isJava11Compatible()) { checkstyle { toolVersion = '10.6.0' - configFile = file("$projectDir/appium-style.xml") + configFile = configDirectory.file('appium-style.xml').get().getAsFile() showViolations = true ignoreFailures = false } diff --git a/appium-style.xml b/config/checkstyle/appium-style.xml similarity index 100% rename from appium-style.xml rename to config/checkstyle/appium-style.xml From 53b876f210124449cfedce0bf9ef84377ac3e581 Mon Sep 17 00:00:00 2001 From: Valery Yatsynovich Date: Wed, 25 Jan 2023 02:04:09 +0300 Subject: [PATCH 2/4] build: Configure Checkstyle suppressions for test code --- config/checkstyle/appium-style.xml | 5 +++++ config/checkstyle/suppressions.xml | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 config/checkstyle/suppressions.xml diff --git a/config/checkstyle/appium-style.xml b/config/checkstyle/appium-style.xml index 24b63f8c6..2feb5eeff 100755 --- a/config/checkstyle/appium-style.xml +++ b/config/checkstyle/appium-style.xml @@ -203,4 +203,9 @@ + + + + + diff --git a/config/checkstyle/suppressions.xml b/config/checkstyle/suppressions.xml new file mode 100644 index 000000000..0587e646e --- /dev/null +++ b/config/checkstyle/suppressions.xml @@ -0,0 +1,5 @@ + + + + + From 2c9ff1382d53087ffa60597ffd6270822bf97676 Mon Sep 17 00:00:00 2001 From: Valery Yatsynovich Date: Wed, 25 Jan 2023 02:04:28 +0300 Subject: [PATCH 3/4] build: Fix all Checkstyle violations in test code --- .../java_client/android/LogEventTest.java | 4 +- .../drivers/options/OptionsBuildingTest.java | 4 +- .../internal/SessionConnectTest.java | 1 + .../appium/java_client/ios/IOSDriverTest.java | 3 +- .../AndroidPageObjectTest.java | 38 +++++++++---------- .../pagefactory_tests/TimeoutTest.java | 6 +-- .../tests/combined/CombinedAppTest.java | 24 ++++++------ .../java_client/proxy/ProxyHelpersTest.java | 3 +- .../service/local/ServerBuilderTest.java | 4 +- 9 files changed, 46 insertions(+), 41 deletions(-) diff --git a/src/test/java/io/appium/java_client/android/LogEventTest.java b/src/test/java/io/appium/java_client/android/LogEventTest.java index ea820fa94..16d28f31e 100644 --- a/src/test/java/io/appium/java_client/android/LogEventTest.java +++ b/src/test/java/io/appium/java_client/android/LogEventTest.java @@ -36,8 +36,8 @@ public void verifyLoggingCustomEvents() { driver.logEvent(evt); ServerEvents events = driver.getEvents(); boolean hasCustomEvent = events.events.stream().anyMatch((TimedEvent event) -> - event.name.equals("appium:funEvent") && - event.occurrences.get(0).intValue() > 0 + event.name.equals("appium:funEvent") + && event.occurrences.get(0).intValue() > 0 ); boolean hasCommandName = events.commands.stream().anyMatch((CommandEvent event) -> event.name.equals("logCustomEvent") diff --git a/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java b/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java index ab10f1ec1..908ff709e 100644 --- a/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java +++ b/src/test/java/io/appium/java_client/drivers/options/OptionsBuildingTest.java @@ -108,7 +108,7 @@ public void canBuildEspressoOptions() { "com.dep1:1.2.3", "com.dep2:1.2.3" )) - ); + ); assertEquals(Duration.ofSeconds(10), options.getNewCommandTimeout().orElse(null)); assertEquals("CN", options.getAppLocale().orElse(null).getCountry().orElse(null)); assertEquals(2, options.getEspressoBuildConfig().orElse(null) @@ -172,7 +172,7 @@ public void canBuildSafariOptions() { .setWebkitWebrtc(new WebrtcData() .withDisableIceCandidateFiltering(true) .withDisableInsecureMediaCapture(true) - ); + ); assertEquals(Duration.ofSeconds(10), options.getNewCommandTimeout().orElse(null)); assertTrue(options.doesSafariUseSimulator().orElse(false)); assertTrue(options.getWebkitWebrtc().orElse(null) diff --git a/src/test/java/io/appium/java_client/internal/SessionConnectTest.java b/src/test/java/io/appium/java_client/internal/SessionConnectTest.java index 52b4b051a..a97653882 100644 --- a/src/test/java/io/appium/java_client/internal/SessionConnectTest.java +++ b/src/test/java/io/appium/java_client/internal/SessionConnectTest.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.appium.java_client.internal; import io.appium.java_client.ios.IOSDriver; diff --git a/src/test/java/io/appium/java_client/ios/IOSDriverTest.java b/src/test/java/io/appium/java_client/ios/IOSDriverTest.java index 43d296d55..f977289c0 100644 --- a/src/test/java/io/appium/java_client/ios/IOSDriverTest.java +++ b/src/test/java/io/appium/java_client/ios/IOSDriverTest.java @@ -60,7 +60,8 @@ public void addCustomCommandTest() { @Test public void addCustomCommandWithSessionIdTest() { - driver.addCommand(HttpMethod.POST, "/session/" + driver.getSessionId() + "/appium/app/launch", "launchApplication"); + driver.addCommand(HttpMethod.POST, "/session/" + driver.getSessionId() + "/appium/app/launch", + "launchApplication"); final Response launchApplication = driver.execute("launchApplication"); assertNotNull(launchApplication.getSessionId()); } diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java index a135c30e3..abcd92c80 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/AndroidPageObjectTest.java @@ -167,41 +167,41 @@ public class AndroidPageObjectTest extends BaseAndroidTest { @AndroidFindBy(id = "android:id/text1", priority = 2) @AndroidFindAll(value = { - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")"), - @AndroidBy(id = "android:id/fakeId")}, priority = 1) + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")"), + @AndroidBy(id = "android:id/fakeId")}, priority = 1) @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")") private WebElement androidElementViewFoundByMixedSearching; @AndroidFindBy(id = "android:id/text1", priority = 2) @AndroidFindAll(value = { - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")"), - @AndroidBy(id = "android:id/fakeId")}, priority = 1) + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")"), + @AndroidBy(id = "android:id/fakeId")}, priority = 1) @AndroidFindBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")") private List androidElementsViewFoundByMixedSearching; @AndroidFindBys({ - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), - @AndroidBy(className = "android.widget.FrameLayout")}) + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), + @AndroidBy(className = "android.widget.FrameLayout")}) @AndroidFindBys({@AndroidBy(id = "android:id/text1", priority = 1), - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")")}) + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")")}) private WebElement androidElementViewFoundByMixedSearching2; @AndroidFindBys({ - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), - @AndroidBy(className = "android.widget.FrameLayout")}) + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), + @AndroidBy(className = "android.widget.FrameLayout")}) @AndroidFindBys({ - @AndroidBy(id = "android:id/text1", priority = 1), - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")")}) + @AndroidBy(id = "android:id/text1", priority = 1), + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")")}) private List androidElementsViewFoundByMixedSearching2; @HowToUseLocators(androidAutomation = ALL_POSSIBLE) @AndroidFindBy(id = "android:id/fakeId1") @AndroidFindBy(id = "android:id/fakeId2", priority = 1) @AndroidFindBys(value = { - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), - @AndroidBy(id = "android:id/text1", priority = 3), - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")", priority = 2), - @AndroidBy(className = "android.widget.FrameLayout")}, priority = 2) + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), + @AndroidBy(id = "android:id/text1", priority = 3), + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")", priority = 2), + @AndroidBy(className = "android.widget.FrameLayout")}, priority = 2) @AndroidFindBy(id = "android:id/fakeId3", priority = 3) @AndroidFindBy(id = "android:id/fakeId4", priority = 4) private WebElement androidElementViewFoundByMixedSearching3; @@ -210,10 +210,10 @@ public class AndroidPageObjectTest extends BaseAndroidTest { @AndroidFindBy(id = "android:id/fakeId1") @AndroidFindBy(id = "android:id/fakeId2", priority = 1) @AndroidFindBys(value = { - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), - @AndroidBy(id = "android:id/text1", priority = 3), - @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")", priority = 2), - @AndroidBy(className = "android.widget.FrameLayout")}, priority = 2) + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/content\")", priority = 1), + @AndroidBy(id = "android:id/text1", priority = 3), + @AndroidBy(uiAutomator = "new UiSelector().resourceId(\"android:id/list\")", priority = 2), + @AndroidBy(className = "android.widget.FrameLayout")}, priority = 2) @AndroidFindBy(id = "android:id/fakeId3", priority = 3) @AndroidFindBy(id = "android:id/fakeId4", priority = 4) private List androidElementsViewFoundByMixedSearching3; diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/TimeoutTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/TimeoutTest.java index 2fbe87f41..1ae9157a3 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/TimeoutTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/TimeoutTest.java @@ -50,13 +50,13 @@ public class TimeoutTest { private WebDriver driver; @FindAll({ - @FindBy(className = "ClassWhichDoesNotExist"), - @FindBy(className = "OneAnotherClassWhichDoesNotExist")}) + @FindBy(className = "ClassWhichDoesNotExist"), + @FindBy(className = "OneAnotherClassWhichDoesNotExist")}) private List stubElements; @WithTimeout(time = 5, chronoUnit = SECONDS) @FindAll({@FindBy(className = "ClassWhichDoesNotExist"), - @FindBy(className = "OneAnotherClassWhichDoesNotExist")}) + @FindBy(className = "OneAnotherClassWhichDoesNotExist")}) private List stubElements2; private Duration timeOutDuration; diff --git a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/CombinedAppTest.java b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/CombinedAppTest.java index 100f0322c..2a453c2d9 100644 --- a/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/CombinedAppTest.java +++ b/src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/CombinedAppTest.java @@ -19,6 +19,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.equalTo; +import static org.junit.jupiter.params.provider.Arguments.arguments; import static org.openqa.selenium.support.PageFactory.initElements; @SuppressWarnings({"unused", "unchecked"}) @@ -31,29 +32,30 @@ public class CombinedAppTest { */ public static Stream data() { return Stream.of( - Arguments.of(new CombinedApp(), new AbstractStubWebDriver.StubAndroidDriver(), DefaultAndroidWidget.class), - Arguments.of(new CombinedApp(), new AbstractStubWebDriver.StubIOSXCUITDriver(), + arguments(new CombinedApp(), new AbstractStubWebDriver.StubAndroidDriver(), DefaultAndroidWidget.class), + arguments(new CombinedApp(), new AbstractStubWebDriver.StubIOSXCUITDriver(), DefaultIosXCUITWidget.class), - Arguments.of(new CombinedApp(), new AbstractStubWebDriver.StubWindowsDriver(), DefaultWindowsWidget.class), - Arguments.of(new CombinedApp(), new AbstractStubWebDriver.StubBrowserDriver(), DefaultFindByWidget.class), - Arguments.of(new CombinedApp(), new AbstractStubWebDriver.StubAndroidBrowserOrWebViewDriver(), + arguments(new CombinedApp(), new AbstractStubWebDriver.StubWindowsDriver(), DefaultWindowsWidget.class), + arguments(new CombinedApp(), new AbstractStubWebDriver.StubBrowserDriver(), DefaultFindByWidget.class), + arguments(new CombinedApp(), new AbstractStubWebDriver.StubAndroidBrowserOrWebViewDriver(), DefaultFindByWidget.class), - Arguments.of(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubAndroidDriver(), + arguments(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubAndroidDriver(), DefaultAndroidWidget.class), - Arguments.of(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubIOSXCUITDriver(), + arguments(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubIOSXCUITDriver(), DefaultStubWidget.class), - Arguments.of(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubWindowsDriver(), + arguments(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubWindowsDriver(), DefaultStubWidget.class), - Arguments.of(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubBrowserDriver(), + arguments(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubBrowserDriver(), DefaultFindByWidget.class), - Arguments.of(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubAndroidBrowserOrWebViewDriver(), + arguments(new PartiallyCombinedApp(), new AbstractStubWebDriver.StubAndroidBrowserOrWebViewDriver(), DefaultFindByWidget.class) ); } @ParameterizedTest @MethodSource("data") - void checkThatWidgetsAreCreatedCorrectly(AbstractApp app, WebDriver driver, Class widgetClass) { + void checkThatWidgetsAreCreatedCorrectly(AbstractApp app, WebDriver driver, + Class widgetClass) { initElements(new AppiumFieldDecorator(driver), app); assertThat("Expected widget class was " + widgetClass.getName(), app.getWidget().getSelfReference().getClass(), diff --git a/src/test/java/io/appium/java_client/proxy/ProxyHelpersTest.java b/src/test/java/io/appium/java_client/proxy/ProxyHelpersTest.java index fc389b6c6..218c56270 100644 --- a/src/test/java/io/appium/java_client/proxy/ProxyHelpersTest.java +++ b/src/test/java/io/appium/java_client/proxy/ProxyHelpersTest.java @@ -43,7 +43,8 @@ public FakeIOSDriver(URL url, Capabilities caps) { } @Override - protected void startSession(Capabilities capabilities) {} + protected void startSession(Capabilities capabilities) { + } } @Test diff --git a/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java b/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java index 923fa57b8..5d4fd5715 100644 --- a/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java +++ b/src/test/java/io/appium/java_client/service/local/ServerBuilderTest.java @@ -319,21 +319,21 @@ void checkAbilityToStartServiceWithLogFileUsingShortFlag() { @Test void checkAbilityToStartServiceUsingValidBasePathWithMultiplePathParams() { - String baseUrl = String.format("http://%s:%d/", BROADCAST_IP_ADDRESS, DEFAULT_APPIUM_PORT); String basePath = "wd/hub"; service = new AppiumServiceBuilder().withArgument(BASEPATH, basePath).build(); service.start(); assertTrue(service.isRunning()); + String baseUrl = String.format("http://%s:%d/", BROADCAST_IP_ADDRESS, DEFAULT_APPIUM_PORT); assertEquals(baseUrl + basePath + "/", service.getUrl().toString()); } @Test void checkAbilityToStartServiceUsingValidBasePathWithSinglePathParams() { - String baseUrl = String.format("http://%s:%d/", BROADCAST_IP_ADDRESS, DEFAULT_APPIUM_PORT); String basePath = "/wd/"; service = new AppiumServiceBuilder().withArgument(BASEPATH, basePath).build(); service.start(); assertTrue(service.isRunning()); + String baseUrl = String.format("http://%s:%d/", BROADCAST_IP_ADDRESS, DEFAULT_APPIUM_PORT); assertEquals(baseUrl + basePath.substring(1), service.getUrl().toString()); } From 523ada22feaad8d106bcec90bf2ae00f2c7b64ea Mon Sep 17 00:00:00 2001 From: Valery Yatsynovich Date: Wed, 25 Jan 2023 02:07:32 +0300 Subject: [PATCH 4/4] build: Enable check for Checkstyle violations in test code during build --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3110e7834..798d03182 100644 --- a/build.gradle +++ b/build.gradle @@ -103,7 +103,6 @@ if (JavaVersion.current().isJava11Compatible()) { showViolations = true ignoreFailures = false } - checkstyleTest.enabled = false } javadoc {