Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
bf619bb
build(deps): bump rexml in /docs in the bundler group across 1 directory
dependabot[bot] Sep 17, 2025
94c01bd
Merge pull request #461 from giulong/dependabot/bundler/docs/bundler-…
giulong Sep 18, 2025
c0ad1d7
build(deps): bump org.mockito:mockito-junit-jupiter
dependabot[bot] Sep 22, 2025
516942e
build(deps): bump org.apache.maven.plugins:maven-compiler-plugin
dependabot[bot] Sep 22, 2025
e4a4789
build(deps): bump org.projectlombok:lombok from 1.18.40 to 1.18.42
dependabot[bot] Sep 22, 2025
ac5db56
build(deps): bump net.datafaker:datafaker from 2.4.4 to 2.5.0
dependabot[bot] Sep 22, 2025
4734bf4
build(deps): bump org.codehaus.mojo:flatten-maven-plugin
dependabot[bot] Sep 22, 2025
86b68a3
build(deps): bump org.apache.maven.plugins:maven-javadoc-plugin
dependabot[bot] Sep 22, 2025
d5afafc
Merge pull request #465 from giulong/dependabot/maven/develop/net.dat…
giulong Sep 22, 2025
a0accaf
Merge pull request #462 from giulong/dependabot/maven/develop/org.moc…
giulong Sep 24, 2025
720845d
refactor: leveraging reified varargs to avoid explicit casting
giulong Sep 22, 2025
6516687
refactor: resolving jackson readValue deprecation by using overloaded…
giulong Sep 24, 2025
9488278
build: removing EDGE_BINARY env var in gh actions since EdgeWebDriver…
giulong Sep 24, 2025
e8cc8a1
Merge pull request #467 from giulong/dependabot/maven/develop/org.apa…
giulong Sep 24, 2025
9a7751e
Merge pull request #466 from giulong/dependabot/maven/develop/org.cod…
giulong Sep 24, 2025
62c9e84
Merge pull request #464 from giulong/dependabot/maven/develop/org.pro…
giulong Sep 24, 2025
8239536
Merge pull request #463 from giulong/dependabot/maven/develop/org.apa…
giulong Sep 24, 2025
ab1ae3c
build(deps): bump com.puppycrawl.tools:checkstyle from 11.0.1 to 11.1.0
dependabot[bot] Sep 29, 2025
7179a63
build(deps): bump net.datafaker:datafaker from 2.5.0 to 2.5.1
dependabot[bot] Sep 29, 2025
e65009a
Merge pull request #469 from giulong/dependabot/maven/develop/net.dat…
giulong Sep 29, 2025
4fff783
Merge pull request #468 from giulong/dependabot/maven/develop/com.pup…
giulong Sep 29, 2025
af86dd9
build(deps): bump org.sonatype.central:central-publishing-maven-plugin
dependabot[bot] Sep 29, 2025
a151f57
Merge pull request #470 from giulong/dependabot/maven/develop/org.son…
giulong Sep 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,10 @@ jobs:
profiles: browsers
directives: -DbrowsersTests
moduleName: it
env:
EDGE_BINARY: /usr/bin/microsoft-edge
- os: macos-latest
profiles: macos
directives: -DmacosTests
moduleName: it-macos
env:
EDGE_BINARY: /usr/bin/microsoft-edge
- os: windows-latest
profiles: browsers
directives: -DbrowsersTests
Expand Down
2 changes: 1 addition & 1 deletion docs/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ GEM
rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.3.9)
rexml (3.4.2)
rouge (3.26.0)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
Expand Down
2 changes: 0 additions & 2 deletions it-bidi/src/test/resources/configuration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ drivers:
edge:
args:
- --headless=new
experimentalOptions:
binary: ${EDGE_BINARY:-}

video:
frames:
Expand Down
2 changes: 0 additions & 2 deletions it/src/test/resources/configuration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ drivers:
edge:
args:
- --headless=new
experimentalOptions:
binary: ${EDGE_BINARY:-}

video:
frames:
Expand Down
12 changes: 6 additions & 6 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
<maven.install.skip>true</maven.install.skip>

<junit.version>5.13.4</junit.version>
<mockito.version>5.19.0</mockito.version>
<mockito.version>5.20.0</mockito.version>
<jackson.version>2.20.0</jackson.version>
<simplejavamail.version>8.12.6</simplejavamail.version>
<jsonschemagenerator.version>4.38.0</jsonschemagenerator.version>
Expand Down Expand Up @@ -124,7 +124,7 @@
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.40</version>
<version>1.18.42</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -250,7 +250,7 @@
<dependency>
<groupId>net.datafaker</groupId>
<artifactId>datafaker</artifactId>
<version>2.4.4</version>
<version>2.5.1</version>
</dependency>

<dependency>
Expand Down Expand Up @@ -323,7 +323,7 @@
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>11.0.1</version>
<version>11.1.0</version>
</dependency>
<dependency>
<groupId>com.github.sevntu-checkstyle</groupId>
Expand Down Expand Up @@ -365,7 +365,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<version>3.14.1</version>
<configuration>
<source>21</source>
<target>21</target>
Expand Down Expand Up @@ -485,7 +485,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>1.7.2</version>
<version>1.7.3</version>
<configuration>
<updatePomFile>true</updatePomFile>
<flattenMode>ossrh</flattenMode>
Expand Down
4 changes: 2 additions & 2 deletions spectrum/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.3</version>
<version>3.12.0</version>
<configuration>
<additionalJOption>-Xdoclint:none</additionalJOption>
</configuration>
Expand Down Expand Up @@ -363,7 +363,7 @@
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.8.0</version>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,14 @@ public static Field getField(final String fieldName, final Object object) {
return field;
}

@SneakyThrows
public static Object getFieldValue(final String fieldName, final Object object) {
log.trace("Getting value of field {}.{}", object.getClass().getSimpleName(), fieldName);
return getField(fieldName, object).get(object);
}
@SafeVarargs
public static <T> T getFieldValue(final String fieldName, final Object object, final T... reified) {
if (reified == null || reified.length > 0) {
throw new IllegalArgumentException("Do not pass arguments as last parameter");
}

public static <T> T getFieldValue(final String fieldName, final Object object, final Class<T> clazz) {
return clazz.cast(getFieldValue(fieldName, object));
final Object value = getValueOf(getField(fieldName, object), object);
return getClassOf(reified).cast(value);
}

public static void setField(final String fieldName, final Object object, final Object value) {
Expand Down Expand Up @@ -112,6 +112,11 @@ public static <T> List<T> getAnnotatedFieldsValues(final Object object, final Cl
.toList();
}

@SuppressWarnings("unchecked")
public static <T> Class<T> getClassOf(final T[] array) {
return (Class<T>) array.getClass().getComponentType();
}

@SneakyThrows
static Object getValueOf(final Field field, final Object object) {
return field.get(object);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ SimpleModule buildDynamicModuleFor(final Class<?> clazz, final String file) {

@SneakyThrows
<T> T read(final ObjectReader reader, final String file, final Class<T> clazz) {
return reader.readValue(classLoader.getResource(file), clazz);
return reader.readValue(classLoader.getResourceAsStream(file), clazz);
}

<T> T read(final FileProvider fileProvider, final String file, final Class<T> clazz) {
Expand Down Expand Up @@ -175,6 +175,6 @@ <T> void updateWithFile(final T t, final String file, final FileProvider filePro
fileProvider
.augment(yamlMapper)
.withValueToUpdate(t)
.readValue(classLoader.getResource(fileFound));
.readValue(classLoader.getResourceAsStream(fileFound));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,17 +51,16 @@ void beforeEach() {
@Test
@DisplayName("buildCapabilities should build a new instance of capabilities and set the capabilities from the yaml on it")
void buildCapabilitiesAbsoluteAppPath() {
MockedConstruction<MutableCapabilities> desiredCapabilitiesMockedConstruction = mockConstruction(MutableCapabilities.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<MutableCapabilities> desiredCapabilitiesMockedConstruction = mockConstruction(MutableCapabilities.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getAppiumGeneric()).thenReturn(appiumGenericConfiguration);
when(appiumGenericConfiguration.getCapabilities()).thenReturn(capabilities);

appiumGeneric.buildCapabilities();

final Capabilities actual = Reflections.getFieldValue("capabilities", appiumGeneric, Capabilities.class);
final Capabilities actual = Reflections.getFieldValue("capabilities", appiumGeneric);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

desiredCapabilitiesMockedConstruction.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,8 @@ void buildCapabilities() {
final String appPath = path.toString();
final String appAbsolutePath = path.toAbsolutePath().toString();

MockedConstruction<EspressoOptions> desiredCapabilitiesMockedConstruction = mockConstruction(EspressoOptions.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<EspressoOptions> desiredCapabilitiesMockedConstruction = mockConstruction(EspressoOptions.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getEspresso()).thenReturn(espressoConfiguration);
Expand All @@ -62,7 +61,7 @@ void buildCapabilities() {

espresso.buildCapabilities();

final EspressoOptions actual = Reflections.getFieldValue("capabilities", espresso, EspressoOptions.class);
final EspressoOptions actual = Reflections.getFieldValue("capabilities", espresso);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

verify(capabilities).put(APP_CAPABILITY, appAbsolutePath);
Expand All @@ -75,9 +74,8 @@ void buildCapabilities() {
void buildCapabilitiesAbsoluteAppPath() {
final String appPath = Path.of("absolute", "path").toAbsolutePath().toString();

MockedConstruction<EspressoOptions> desiredCapabilitiesMockedConstruction = mockConstruction(EspressoOptions.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<EspressoOptions> desiredCapabilitiesMockedConstruction = mockConstruction(EspressoOptions.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getEspresso()).thenReturn(espressoConfiguration);
Expand All @@ -87,7 +85,7 @@ void buildCapabilitiesAbsoluteAppPath() {

espresso.buildCapabilities();

final EspressoOptions actual = Reflections.getFieldValue("capabilities", espresso, EspressoOptions.class);
final EspressoOptions actual = Reflections.getFieldValue("capabilities", espresso);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

desiredCapabilitiesMockedConstruction.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,17 +50,16 @@ void beforeEach() {
@Test
@DisplayName("buildCapabilities should build a new instance of mac2Options and set the capabilities from the yaml on it")
void buildCapabilitiesAbsoluteAppPath() {
MockedConstruction<Mac2Options> desiredCapabilitiesMockedConstruction = mockConstruction(Mac2Options.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<Mac2Options> desiredCapabilitiesMockedConstruction = mockConstruction(Mac2Options.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getMac2()).thenReturn(mac2Configuration);
when(mac2Configuration.getCapabilities()).thenReturn(capabilities);

mac2.buildCapabilities();

final Mac2Options actual = Reflections.getFieldValue("capabilities", mac2, Mac2Options.class);
final Mac2Options actual = Reflections.getFieldValue("capabilities", mac2);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

desiredCapabilitiesMockedConstruction.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,8 @@ void buildCapabilities() {
final String appPath = path.toString();
final String appAbsolutePath = path.toAbsolutePath().toString();

MockedConstruction<UiAutomator2Options> desiredCapabilitiesMockedConstruction = mockConstruction(UiAutomator2Options.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<UiAutomator2Options> desiredCapabilitiesMockedConstruction = mockConstruction(UiAutomator2Options.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getUiAutomator2()).thenReturn(uiAutomator2Configuration);
Expand All @@ -63,7 +62,7 @@ void buildCapabilities() {

uiAutomator2.buildCapabilities();

final UiAutomator2Options actual = Reflections.getFieldValue("capabilities", uiAutomator2, UiAutomator2Options.class);
final UiAutomator2Options actual = Reflections.getFieldValue("capabilities", uiAutomator2);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

verify(capabilities).put(APP_CAPABILITY, appAbsolutePath);
Expand All @@ -77,9 +76,8 @@ void buildCapabilities() {
void buildCapabilitiesAbsoluteAppPath() {
final String appPath = Path.of("absolute", "path").toAbsolutePath().toString();

MockedConstruction<UiAutomator2Options> desiredCapabilitiesMockedConstruction = mockConstruction(UiAutomator2Options.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<UiAutomator2Options> desiredCapabilitiesMockedConstruction = mockConstruction(UiAutomator2Options.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getUiAutomator2()).thenReturn(uiAutomator2Configuration);
Expand All @@ -89,7 +87,7 @@ void buildCapabilitiesAbsoluteAppPath() {

uiAutomator2.buildCapabilities();

final UiAutomator2Options actual = Reflections.getFieldValue("capabilities", uiAutomator2, UiAutomator2Options.class);
final UiAutomator2Options actual = Reflections.getFieldValue("capabilities", uiAutomator2);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

desiredCapabilitiesMockedConstruction.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,16 @@ void configureWaitsOf() {
@Test
@DisplayName("buildCapabilities should build a new instance of windowsOptions and set the capabilities from the yaml on it")
void buildCapabilitiesAbsoluteAppPath() {
MockedConstruction<WindowsOptions> desiredCapabilitiesMockedConstruction = mockConstruction(WindowsOptions.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<WindowsOptions> desiredCapabilitiesMockedConstruction = mockConstruction(WindowsOptions.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getWindows()).thenReturn(windowsConfiguration);
when(windowsConfiguration.getCapabilities()).thenReturn(capabilities);

windows.buildCapabilities();

final WindowsOptions actual = Reflections.getFieldValue("capabilities", windows, WindowsOptions.class);
final WindowsOptions actual = Reflections.getFieldValue("capabilities", windows);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

desiredCapabilitiesMockedConstruction.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,8 @@ void buildCapabilities() {
final String appPath = path.toString();
final String appAbsolutePath = path.toAbsolutePath().toString();

MockedConstruction<XCUITestOptions> desiredCapabilitiesMockedConstruction = mockConstruction(XCUITestOptions.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<XCUITestOptions> desiredCapabilitiesMockedConstruction = mockConstruction(XCUITestOptions.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getXcuiTest()).thenReturn(xcuiTestConfiguration);
Expand All @@ -68,7 +67,7 @@ void buildCapabilities() {

xcuiTest.buildCapabilities();

final XCUITestOptions actual = Reflections.getFieldValue("capabilities", xcuiTest, XCUITestOptions.class);
final XCUITestOptions actual = Reflections.getFieldValue("capabilities", xcuiTest);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

verify(capabilities).put(APP_CAPABILITY, appAbsolutePath);
Expand All @@ -82,9 +81,8 @@ void buildCapabilities() {
void buildCapabilitiesAbsoluteAppPath() {
final String appPath = Path.of("absolute", "path").toAbsolutePath().toString();

MockedConstruction<XCUITestOptions> desiredCapabilitiesMockedConstruction = mockConstruction(XCUITestOptions.class, (mock, context) -> {
assertEquals(capabilities, context.arguments().getFirst());
});
MockedConstruction<XCUITestOptions> desiredCapabilitiesMockedConstruction = mockConstruction(XCUITestOptions.class,
(mock, context) -> assertEquals(capabilities, context.arguments().getFirst()));

when(configuration.getDrivers()).thenReturn(drivers);
when(drivers.getXcuiTest()).thenReturn(xcuiTestConfiguration);
Expand All @@ -94,7 +92,7 @@ void buildCapabilitiesAbsoluteAppPath() {

xcuiTest.buildCapabilities();

final XCUITestOptions actual = Reflections.getFieldValue("capabilities", xcuiTest, XCUITestOptions.class);
final XCUITestOptions actual = Reflections.getFieldValue("capabilities", xcuiTest);
assertEquals(desiredCapabilitiesMockedConstruction.constructed().getFirst(), actual);

desiredCapabilitiesMockedConstruction.close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ void writeFlush() {
final char c = '\n';

appiumLog.write(c);
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", appiumLog, StringBuffer.class);
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", appiumLog);

verify(stringBuffer).setLength(0);
}
Expand All @@ -67,7 +67,7 @@ void flush() {
assertEquals(stringBuffers.getFirst(), Reflections.getFieldValue("stringBuffer", appiumLog));

appiumLog.flush();
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", appiumLog, StringBuffer.class);
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", appiumLog);

verify(stringBuffer).setLength(0);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ void writeFlush() {
final char c = '\n';

driverLog.write(c);
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", driverLog, StringBuffer.class);
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", driverLog);

verify(stringBuffer).setLength(0);
}
Expand All @@ -67,7 +67,7 @@ void flush() {
assertEquals(stringBuffers.getFirst(), Reflections.getFieldValue("stringBuffer", driverLog));

driverLog.flush();
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", driverLog, StringBuffer.class);
final StringBuffer stringBuffer = Reflections.getFieldValue("stringBuffer", driverLog);

verify(stringBuffer).setLength(0);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class SpectrumLocatingElementHandlerTest {
void constructor(final boolean secured) {
final SpectrumLocatingElementHandler handler = new SpectrumLocatingElementHandler(elementLocator, secured);

Assertions.assertEquals(secured, Reflections.getFieldValue("secured", handler, Boolean.class));
Assertions.assertEquals(secured, Reflections.getFieldValue("secured", handler));
}

@SuppressWarnings({"checkstyle:IllegalThrows"})
Expand Down
Loading
Loading