Skip to content

Commit db35b59

Browse files
committed
parametrize test for multiple locales
1 parent b1b3465 commit db35b59

File tree

1 file changed

+37
-14
lines changed

1 file changed

+37
-14
lines changed

py/test/selenium/webdriver/common/bidi_emulation_tests.py

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -225,37 +225,60 @@ def test_set_geolocation_override_with_error(driver, pages):
225225
assert "error" in result, f"Expected geolocation error, got: {result}"
226226

227227

228-
def test_set_locale_override_with_contexts(driver, pages):
228+
@pytest.mark.parametrize(
229+
"locale,expected_locale",
230+
[
231+
# Locale with Unicode extension keyword for collation.
232+
("de-DE-u-co-phonebk", "de-DE"),
233+
# Lowercase language and region.
234+
("fr-ca", "fr-CA"),
235+
# Uppercase language and region (should be normalized by Intl.Locale).
236+
("FR-CA", "fr-CA"),
237+
# Mixed case language and region (should be normalized by Intl.Locale).
238+
("fR-cA", "fr-CA"),
239+
# Locale with transform extension (simple case).
240+
("en-t-zh", "en"),
241+
],
242+
)
243+
def test_set_locale_override_with_contexts(driver, pages, locale, expected_locale):
229244
"""Test setting locale override with browsing contexts."""
230245
context_id = driver.current_window_handle
231246

232-
# Set locale override to French
233-
test_locale = "fr-FR"
234-
driver.emulation.set_locale_override(locale=test_locale, contexts=[context_id])
247+
driver.emulation.set_locale_override(locale=locale, contexts=[context_id])
235248

236249
driver.browsing_context.navigate(context_id, pages.url("formPage.html"), wait="complete")
237250

238251
current_locale = get_browser_locale(driver)
239-
assert current_locale == test_locale, f"Expected locale {test_locale}, got {current_locale}"
240-
241-
242-
def test_set_locale_override_with_user_contexts(driver, pages):
252+
assert current_locale == expected_locale, f"Expected locale {expected_locale}, got {current_locale}"
253+
254+
255+
@pytest.mark.parametrize(
256+
"value",
257+
[
258+
# Simple language code (2-letter).
259+
"en",
260+
# Language and region (both 2-letter).
261+
"en-US",
262+
# Language and script (4-letter).
263+
"sr-Latn",
264+
# Language, script, and region.
265+
"zh-Hans-CN",
266+
],
267+
)
268+
def test_set_locale_override_with_user_contexts(driver, pages, value):
243269
"""Test setting locale override with user contexts."""
244270
user_context = driver.browser.create_user_context()
245271

246272
context_id = driver.browsing_context.create(type=WindowTypes.TAB, user_context=user_context)
247273

248274
driver.switch_to.window(context_id)
249275

250-
# Set locale override to Spanish
251-
test_locale = "es-ES"
252-
driver.emulation.set_locale_override(locale=test_locale, user_contexts=[user_context])
276+
driver.emulation.set_locale_override(locale=value, user_contexts=[user_context])
253277

254-
url = pages.url("formPage.html")
255-
driver.browsing_context.navigate(context_id, url, wait="complete")
278+
driver.browsing_context.navigate(context_id, pages.url("formPage.html"), wait="complete")
256279

257280
current_locale = get_browser_locale(driver)
258-
assert current_locale == test_locale, f"Expected locale {test_locale}, got {current_locale}"
281+
assert current_locale == value, f"Expected locale {value}, got {current_locale}"
259282

260283
driver.browsing_context.close(context_id)
261284
driver.browser.remove_user_context(user_context)

0 commit comments

Comments
 (0)