Skip to content

Commit c5fcdcf

Browse files
Merge branch 'trunk' into action-builder
2 parents 0280a21 + 487b9a2 commit c5fcdcf

File tree

14 files changed

+152
-86
lines changed

14 files changed

+152
-86
lines changed

MODULE.bazel

Lines changed: 4 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ bazel_dep(name = "contrib_rules_jvm", version = "0.27.0")
1212
bazel_dep(name = "platforms", version = "0.0.10")
1313

1414
# Required for the closure rules
15-
bazel_dep(name = "protobuf", dev_dependency = True, repo_name = "com_google_protobuf", version = "29.2")
15+
bazel_dep(name = "protobuf", version = "29.2", dev_dependency = True, repo_name = "com_google_protobuf")
1616

1717
# Required for rules_rust to import the crates properly
18-
bazel_dep(name = "rules_cc", dev_dependency = True, version = "0.0.9")
18+
bazel_dep(name = "rules_cc", version = "0.0.9", dev_dependency = True)
19+
1920
bazel_dep(name = "rules_dotnet", version = "0.17.5")
2021
bazel_dep(name = "rules_java", version = "7.12.4")
2122
bazel_dep(name = "rules_jvm_external", version = "6.6")
@@ -27,33 +28,27 @@ bazel_dep(name = "rules_proto", version = "6.0.2")
2728
bazel_dep(name = "rules_ruby", version = "0.13.0")
2829

2930
linter = use_extension("@apple_rules_lint//lint:extensions.bzl", "linter")
30-
3131
linter.configure(
3232
name = "java-spotbugs",
3333
config = "//java:spotbugs-config",
3434
)
35-
3635
linter.configure(
3736
name = "rust-rustfmt",
3837
config = "//rust:enable-rustfmt",
3938
)
40-
4139
linter.register(name = "rust-rustfmt")
4240

4341
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
44-
4542
node.toolchain(node_version = "20.9.0")
4643

4744
pnpm = use_extension(
4845
"@aspect_rules_js//npm:extensions.bzl",
4946
"pnpm",
5047
dev_dependency = True,
5148
)
52-
5349
use_repo(pnpm, "pnpm")
5450

5551
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
56-
5752
npm.npm_translate_lock(
5853
name = "npm",
5954
data = [
@@ -68,76 +63,59 @@ npm.npm_translate_lock(
6863
update_pnpm_lock = True,
6964
verify_node_modules_ignored = "//:.bazelignore",
7065
)
71-
7266
use_repo(npm, "npm")
7367

7468
rules_ts_ext = use_extension(
7569
"@aspect_rules_ts//ts:extensions.bzl",
7670
"ext",
7771
dev_dependency = True,
7872
)
79-
8073
rules_ts_ext.deps(
8174
ts_version = "4.9.5",
8275
)
83-
8476
use_repo(rules_ts_ext, "npm_typescript")
8577

8678
esbuild = use_extension("@aspect_rules_esbuild//esbuild:extensions.bzl", "esbuild")
87-
8879
esbuild.toolchain(esbuild_version = "0.23.0")
89-
9080
use_repo(esbuild, "esbuild_toolchains")
9181

9282
register_toolchains("@esbuild_toolchains//:all")
9383

9484
dotnet = use_extension("@rules_dotnet//dotnet:extensions.bzl", "dotnet")
95-
9685
dotnet.toolchain(dotnet_version = "8.0.203")
97-
9886
use_repo(dotnet, "dotnet_toolchains")
9987

10088
selenium_paket = use_extension("//dotnet:paket.nuget_extension.bzl", "nuget_extension")
101-
10289
use_repo(selenium_paket, "paket.nuget")
10390

10491
register_toolchains("@dotnet_toolchains//:all")
10592

10693
oci = use_extension("@rules_oci//oci:extensions.bzl", "oci")
107-
10894
oci.pull(
10995
name = "java_image_base",
11096
digest = "sha256:161a1d97d592b3f1919801578c3a47c8e932071168a96267698f4b669c24c76d",
11197
image = "gcr.io/distroless/java17",
11298
)
113-
11499
oci.pull(
115100
name = "firefox_standalone",
116101
digest = "sha256:b6d8279268b3183d0d33e667e82fec1824298902f77718764076de763673124f",
117102
image = "index.docker.io/selenium/standalone-firefox",
118103
)
119-
120104
oci.pull(
121105
name = "chrome_standalone",
122106
digest = "sha256:1b809a961a0a77787a7cccac74ddc5570b7e89747f925b8469ddb9a6624d4ece",
123107
image = "index.docker.io/selenium/standalone-chrome",
124108
)
125-
126109
use_repo(oci, "chrome_standalone", "firefox_standalone", "java_image_base")
127110

128111
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
129-
130112
python.toolchain(
131113
is_default = True,
132114
python_version = "3.9",
133115
)
134-
135116
python.toolchain(python_version = "3.10")
136-
137117
python.toolchain(python_version = "3.11")
138-
139118
python.toolchain(python_version = "3.12")
140-
141119
use_repo(python, "pythons_hub")
142120

143121
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
@@ -162,16 +140,15 @@ register_toolchains("@pythons_hub//:all")
162140

163141
# https://github.com/bazelbuild/rules_jvm_external/pull/1079
164142
archive_override(
165-
integrity = "sha256-yS8Qes1PLbYbe10b1WSgl0Auqn/1Wlxg8O3wSr7a/Sg=",
166143
module_name = "rules_jvm_external",
144+
integrity = "sha256-yS8Qes1PLbYbe10b1WSgl0Auqn/1Wlxg8O3wSr7a/Sg=",
167145
patch_strip = 1,
168146
patches = ["//java:rules_jvm_external_javadoc.patch"],
169147
strip_prefix = "rules_jvm_external-f572a26116c7ef71d8842dd056c2605782f7be8d",
170148
urls = ["https://github.com/bazelbuild/rules_jvm_external/archive/f572a26116c7ef71d8842dd056c2605782f7be8d.tar.gz"],
171149
)
172150

173151
java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
174-
175152
use_repo(
176153
java_toolchains,
177154
"remote_java_tools",
@@ -188,7 +165,6 @@ use_repo(
188165
)
189166

190167
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
191-
192168
maven.install(
193169
name = "maven",
194170
artifacts = [
@@ -267,11 +243,9 @@ maven.install(
267243
resolver = "maven",
268244
strict_visibility = True,
269245
)
270-
271246
use_repo(maven, "maven", "unpinned_maven")
272247

273248
ruby = use_extension("@rules_ruby//ruby:extensions.bzl", "ruby")
274-
275249
ruby.toolchain(
276250
name = "ruby",
277251
msys2_packages = [
@@ -280,7 +254,6 @@ ruby.toolchain(
280254
],
281255
version_file = "//:rb/.ruby-version",
282256
)
283-
284257
ruby.bundle_fetch(
285258
name = "bundle",
286259
srcs = [
@@ -371,13 +344,11 @@ ruby.bundle_fetch(
371344
gemfile = "//:rb/Gemfile",
372345
gemfile_lock = "//:rb/Gemfile.lock",
373346
)
374-
375347
use_repo(ruby, "bundle", "ruby", "ruby_toolchains")
376348

377349
register_toolchains("@ruby_toolchains//:all")
378350

379351
selenium_manager_artifacts = use_extension("//common:selenium_manager.bzl", "selenium_manager_artifacts")
380-
381352
use_repo(
382353
selenium_manager_artifacts,
383354
"download_sm_linux",
@@ -386,7 +357,6 @@ use_repo(
386357
)
387358

388359
pin_browsers_extension = use_extension("//common:repositories.bzl", "pin_browsers_extension")
389-
390360
use_repo(
391361
pin_browsers_extension,
392362
"linux_beta_firefox",

java/src/org/openqa/selenium/remote/service/DriverService.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.net.URL;
3232
import java.time.Duration;
3333
import java.util.List;
34+
import java.util.Locale;
3435
import java.util.Map;
3536
import java.util.concurrent.CompletableFuture;
3637
import java.util.concurrent.ExecutionException;
@@ -504,6 +505,17 @@ public DS build() {
504505
port = PortProber.findFreePort();
505506
}
506507

508+
if (Locale.getDefault(Locale.Category.FORMAT).getLanguage().equals("ar")) {
509+
throw new NumberFormatException(
510+
String.format(
511+
"Couldn't format the port numbers because the System Language is arabic:"
512+
+ " \"--port=%d\", please make sure to add the required arguments"
513+
+ " \"-Duser.language=en -Duser.region=US\" to your JVM, for more info please"
514+
+ " visit :%n"
515+
+ " https://www.selenium.dev/documentation/webdriver/browsers/",
516+
getPort()));
517+
}
518+
507519
if (timeout == null) {
508520
timeout = getDefaultTimeout();
509521
}

java/test/org/openqa/selenium/chrome/ChromeDriverFunctionalTest.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -204,18 +204,23 @@ void canExecuteCdpCommands() {
204204

205205
@Test
206206
@NoDriverBeforeTest
207-
void shouldLaunchSuccessfullyWithArabicDate() {
207+
void shouldThrowNumberFormatException() {
208208
Locale arabicLocale = new Locale("ar", "EG");
209209
Locale.setDefault(arabicLocale);
210-
Locale.setDefault(Locale.US);
211210

212211
int port = PortProber.findFreePort();
213212
ChromeDriverService.Builder builder = new ChromeDriverService.Builder();
214213
builder.usingPort(port);
215-
ChromeDriverService service = builder.build();
216214

217-
driver = new ChromeDriver(service, (ChromeOptions) CHROME.getCapabilities());
218-
driver.get(pages.simpleTestPage);
219-
assertThat(driver.getTitle()).isEqualTo("Hello WebDriver");
215+
assertThatExceptionOfType(NumberFormatException.class)
216+
.isThrownBy(builder::build)
217+
.withMessage(
218+
"Couldn't format the port numbers because the System Language is arabic: \""
219+
+ String.format("--port=%d", port)
220+
+ "\", please make sure to add the required arguments \"-Duser.language=en"
221+
+ " -Duser.region=US\" to your JVM, for more info please visit :\n"
222+
+ " https://www.selenium.dev/documentation/webdriver/browsers/");
223+
224+
Locale.setDefault(Locale.US);
220225
}
221226
}

java/test/org/openqa/selenium/edge/EdgeDriverFunctionalTest.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -198,19 +198,23 @@ void canExecuteCdpCommands() {
198198

199199
@Test
200200
@NoDriverBeforeTest
201-
void shouldLaunchSuccessfullyWithArabicDate() {
201+
void shouldThrowNumberFormatException() {
202202
Locale arabicLocale = new Locale("ar", "EG");
203203
Locale.setDefault(arabicLocale);
204-
Locale.setDefault(Locale.US);
205204

206205
int port = PortProber.findFreePort();
207206
EdgeDriverService.Builder builder = new EdgeDriverService.Builder();
208207
builder.usingPort(port);
209-
EdgeDriverService service = builder.build();
210208

211-
driver = new EdgeDriver(service, (EdgeOptions) EDGE.getCapabilities());
209+
assertThatExceptionOfType(NumberFormatException.class)
210+
.isThrownBy(builder::build)
211+
.withMessage(
212+
"Couldn't format the port numbers because the System Language is arabic: \""
213+
+ String.format("--port=%d", port)
214+
+ "\", please make sure to add the required arguments \"-Duser.language=en"
215+
+ " -Duser.region=US\" to your JVM, for more info please visit :\n"
216+
+ " https://www.selenium.dev/documentation/webdriver/browsers/");
212217

213-
driver.get(pages.simpleTestPage);
214-
assertThat(driver.getTitle()).isEqualTo("Hello WebDriver");
218+
Locale.setDefault(Locale.US);
215219
}
216220
}

java/test/org/openqa/selenium/firefox/FirefoxDriverTest.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
package org.openqa.selenium.firefox;
1919

2020
import static org.assertj.core.api.Assertions.assertThat;
21+
import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType;
2122
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
2223
import static org.junit.jupiter.api.Assertions.fail;
2324
import static org.junit.jupiter.api.Assumptions.assumeTrue;
@@ -272,19 +273,24 @@ void canSetContext() {
272273

273274
@Test
274275
@NoDriverBeforeTest
275-
void shouldLaunchSuccessfullyWithArabicDate() {
276+
void shouldThrowNumberFormatException() {
276277
Locale arabicLocale = new Locale("ar", "EG");
277278
Locale.setDefault(arabicLocale);
278-
Locale.setDefault(Locale.US);
279279

280280
int port = PortProber.findFreePort();
281281
GeckoDriverService.Builder builder = new GeckoDriverService.Builder();
282282
builder.usingPort(port);
283-
GeckoDriverService service = builder.build();
284283

285-
driver = new FirefoxDriver(service, (FirefoxOptions) FIREFOX.getCapabilities());
286-
driver.get(pages.simpleTestPage);
287-
assertThat(driver.getTitle()).isEqualTo("Hello WebDriver");
284+
assertThatExceptionOfType(NumberFormatException.class)
285+
.isThrownBy(builder::build)
286+
.withMessage(
287+
"Couldn't format the port numbers because the System Language is arabic: \""
288+
+ String.format("--port=%d", port)
289+
+ "\", please make sure to add the required arguments \"-Duser.language=en"
290+
+ " -Duser.region=US\" to your JVM, for more info please visit :\n"
291+
+ " https://www.selenium.dev/documentation/webdriver/browsers/");
292+
293+
Locale.setDefault(Locale.US);
288294
}
289295

290296
private static class CustomFirefoxProfile extends FirefoxProfile {}

java/test/org/openqa/selenium/ie/InternetExplorerDriverTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import java.awt.*;
2626
import java.time.Duration;
27+
import java.util.Locale;
2728
import org.junit.jupiter.api.Test;
2829
import org.openqa.selenium.By;
2930
import org.openqa.selenium.Capabilities;
@@ -33,6 +34,7 @@
3334
import org.openqa.selenium.WebDriver;
3435
import org.openqa.selenium.WebElement;
3536
import org.openqa.selenium.interactions.Actions;
37+
import org.openqa.selenium.net.PortProber;
3638
import org.openqa.selenium.remote.RemoteWebDriverBuilder;
3739
import org.openqa.selenium.remote.http.ClientConfig;
3840
import org.openqa.selenium.testing.JupiterTestBase;
@@ -143,6 +145,28 @@ void testPersistentHoverCanBeTurnedOff() throws Exception {
143145
assertThat(item.getText()).isEmpty();
144146
}
145147

148+
@Test
149+
@NoDriverBeforeTest
150+
void shouldThrowNumberFormatException() {
151+
Locale arabicLocale = new Locale("ar", "EG");
152+
Locale.setDefault(arabicLocale);
153+
154+
int port = PortProber.findFreePort();
155+
InternetExplorerDriverService.Builder builder = new InternetExplorerDriverService.Builder();
156+
builder.usingPort(port);
157+
158+
assertThatExceptionOfType(NumberFormatException.class)
159+
.isThrownBy(builder::build)
160+
.withMessage(
161+
"Couldn't format the port numbers because the System Language is arabic: \""
162+
+ String.format("--port=%d", port)
163+
+ "\", please make sure to add the required arguments \"-Duser.language=en"
164+
+ " -Duser.region=US\" to your JVM, for more info please visit :\n"
165+
+ " https://www.selenium.dev/documentation/webdriver/browsers/");
166+
167+
Locale.setDefault(Locale.US);
168+
}
169+
146170
private WebDriver newIeDriver() {
147171
return new WebDriverBuilder().get();
148172
}

java/test/org/openqa/selenium/safari/SafariDriverTest.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.nio.file.Path;
2828
import java.nio.file.Paths;
2929
import java.time.Duration;
30+
import java.util.Locale;
3031
import org.junit.jupiter.api.Test;
3132
import org.openqa.selenium.Capabilities;
3233
import org.openqa.selenium.SessionNotCreatedException;
@@ -133,4 +134,26 @@ public void canAttachDebugger() {
133134
localDriver = new WebDriverBuilder().get(new SafariOptions());
134135
((HasDebugger) localDriver).attachDebugger();
135136
}
137+
138+
@Test
139+
@NoDriverBeforeTest
140+
void shouldThrowNumberFormatException() {
141+
Locale arabicLocale = new Locale("ar", "EG");
142+
Locale.setDefault(arabicLocale);
143+
144+
int port = PortProber.findFreePort();
145+
SafariDriverService.Builder builder = new SafariDriverService.Builder();
146+
builder.usingPort(port);
147+
148+
assertThatExceptionOfType(NumberFormatException.class)
149+
.isThrownBy(builder::build)
150+
.withMessage(
151+
"Couldn't format the port numbers because the System Language is arabic: \""
152+
+ String.format("--port=%d", port)
153+
+ "\", please make sure to add the required arguments \"-Duser.language=en"
154+
+ " -Duser.region=US\" to your JVM, for more info please visit :\n"
155+
+ " https://www.selenium.dev/documentation/webdriver/browsers/");
156+
157+
Locale.setDefault(Locale.US);
158+
}
136159
}

0 commit comments

Comments
 (0)