From 4c6405fc01a1ed376a9fa6c398333f5938ffae06 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sat, 20 Dec 2025 11:25:38 -0600 Subject: [PATCH 01/11] [rb] fix safari tests --- rb/spec/integration/selenium/webdriver/action_builder_spec.rb | 2 +- rb/spec/integration/selenium/webdriver/target_locator_spec.rb | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb index fa2ae81236a5f..5fda38e9230b3 100644 --- a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb +++ b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb @@ -38,7 +38,7 @@ module WebDriver expect(driver.find_element(id: 'result').text.strip).to be_empty end - it 'sends keys to element', only: {browser: %i[chrome edge firefox]} do + it 'sends keys to element' do driver.navigate.to url_for('formPage.html') input = driver.find_element(css: '#working') diff --git a/rb/spec/integration/selenium/webdriver/target_locator_spec.rb b/rb/spec/integration/selenium/webdriver/target_locator_spec.rb index 52685898e2fa5..6e9da65c68d2a 100644 --- a/rb/spec/integration/selenium/webdriver/target_locator_spec.rb +++ b/rb/spec/integration/selenium/webdriver/target_locator_spec.rb @@ -168,8 +168,7 @@ module WebDriver end end - context 'with more than two windows', except: [{browser: %i[safari safari_preview]}, - {driver: :remote, browser: :ie}] do + context 'with more than two windows', except: {driver: :remote, browser: :ie} do it 'closes current window via block' do driver.navigate.to url_for('xhtmlTest.html') wait_for_element(link: 'Create a new anonymous window') From f17a31801b958ec70d2e955cbf9ea1e0efbd86bd Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sat, 20 Dec 2025 13:50:43 -0600 Subject: [PATCH 02/11] more safari test fixes --- .../integration/selenium/webdriver/action_builder_spec.rb | 5 ++--- rb/spec/integration/selenium/webdriver/manager_spec.rb | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb index 5fda38e9230b3..bd875b7c7a837 100644 --- a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb +++ b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb @@ -374,7 +374,7 @@ module WebDriver }.to raise_error(Error::MoveTargetOutOfBoundsError) end - it 'scrolls by given amount with offset' do + it 'scrolls by given amount with offset', except: {brower: %i[safari safari_preview]} do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame.html') scroll_origin = WheelActions::ScrollOrigin.viewport(10, 10) @@ -389,8 +389,7 @@ module WebDriver }.not_to raise_error end - it 'raises MoveTargetOutOfBoundsError when origin offset is out of viewport', - only: {browser: %i[chrome edge firefox]} do + it 'raises MoveTargetOutOfBoundsError when origin offset is out of viewport' do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame.html') scroll_origin = WheelActions::ScrollOrigin.viewport(-10, -10) diff --git a/rb/spec/integration/selenium/webdriver/manager_spec.rb b/rb/spec/integration/selenium/webdriver/manager_spec.rb index 059cb0dba9b0b..582d39c51837f 100644 --- a/rb/spec/integration/selenium/webdriver/manager_spec.rb +++ b/rb/spec/integration/selenium/webdriver/manager_spec.rb @@ -26,7 +26,7 @@ module WebDriver before { driver.navigate.to url_for('xhtmlTest.html') } after do - if GlobalTestEnv.rbe? && GlobalTestEnv.browser == :chrome + if GlobalTestEnv.rbe? && GlobalTestEnv.browser == :chrome || GlobalTestEnv.browser == :safari reset_driver! else driver.manage.delete_all_cookies From ec3bffc4b13cdd18731db49cf59b1c3da50b633f Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sat, 20 Dec 2025 13:55:08 -0600 Subject: [PATCH 03/11] add to ci --- .github/workflows/ci-ruby.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index 168456bddeb88..de5f98d1436fc 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -91,6 +91,7 @@ jobs: - chrome - edge - firefox + - safari os: - windows - macos From f9981c96bd64b43fa4d7c56f56e499e72153d87b Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sun, 21 Dec 2025 17:26:25 -0600 Subject: [PATCH 04/11] fix issues --- rb/spec/integration/selenium/webdriver/action_builder_spec.rb | 2 +- rb/spec/integration/selenium/webdriver/manager_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb index bd875b7c7a837..d87e743cc0369 100644 --- a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb +++ b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb @@ -374,7 +374,7 @@ module WebDriver }.to raise_error(Error::MoveTargetOutOfBoundsError) end - it 'scrolls by given amount with offset', except: {brower: %i[safari safari_preview]} do + it 'scrolls by given amount with offset', except: {browser: %i[safari safari_preview]} do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame.html') scroll_origin = WheelActions::ScrollOrigin.viewport(10, 10) diff --git a/rb/spec/integration/selenium/webdriver/manager_spec.rb b/rb/spec/integration/selenium/webdriver/manager_spec.rb index 582d39c51837f..5e3b095f41f87 100644 --- a/rb/spec/integration/selenium/webdriver/manager_spec.rb +++ b/rb/spec/integration/selenium/webdriver/manager_spec.rb @@ -26,7 +26,7 @@ module WebDriver before { driver.navigate.to url_for('xhtmlTest.html') } after do - if GlobalTestEnv.rbe? && GlobalTestEnv.browser == :chrome || GlobalTestEnv.browser == :safari + if (GlobalTestEnv.rbe? && GlobalTestEnv.browser == :chrome) || GlobalTestEnv.browser == :safari reset_driver! else driver.manage.delete_all_cookies From 54cea3666d66f143d83981a6ebcf75e6cd2e77d6 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sun, 21 Dec 2025 17:59:52 -0600 Subject: [PATCH 05/11] github won't sudo --- .github/workflows/bazel.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index 71fa7455798f0..a47757b9b89be 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -184,7 +184,7 @@ jobs: run: fsutil 8dot3name set 0 - name: Setup Safari if: inputs.browser == 'safari' - run: sudo safaridriver --enable + run: safaridriver --enable - name: Run Bazel shell: bash env: From 33449e48e4ad03fbc808bf724a693666de685164 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sun, 21 Dec 2025 19:35:42 -0600 Subject: [PATCH 06/11] do not run safari tests on windows --- .github/workflows/bazel.yml | 2 +- .github/workflows/ci-ruby.yml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml index a47757b9b89be..71fa7455798f0 100644 --- a/.github/workflows/bazel.yml +++ b/.github/workflows/bazel.yml @@ -184,7 +184,7 @@ jobs: run: fsutil 8dot3name set 0 - name: Setup Safari if: inputs.browser == 'safari' - run: safaridriver --enable + run: sudo safaridriver --enable - name: Run Bazel shell: bash env: diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index de5f98d1436fc..255972230c3eb 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -91,13 +91,15 @@ jobs: - chrome - edge - firefox - - safari os: - windows - macos exclude: - browser: edge os: macos + include: + - browser: safari + os: macos with: name: Local Tests (${{ matrix.browser }}, ${{ matrix.os }}) browser: ${{ matrix.browser }} From c361a0cb370bacafea339e14fbfb77d964346696 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sun, 21 Dec 2025 23:50:29 -0600 Subject: [PATCH 07/11] stream output to figure out why unit tests are failing in windows --- .github/workflows/ci-ruby.yml | 1 + .../integration/selenium/webdriver/action_builder_spec.rb | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index 255972230c3eb..eba59bcd867fd 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -77,6 +77,7 @@ jobs: bazel test --keep_going --build_tests_only + --test_output=streamed --test_size_filters small //rb/spec/... diff --git a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb index d87e743cc0369..0f8c53ece229c 100644 --- a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb +++ b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb @@ -364,7 +364,8 @@ module WebDriver expect(in_viewport?(checkbox)).to be true end - it 'raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport' do + it 'raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport', + except: {browser: %i[safari safari_preview]} do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html') footer = driver.find_element(tag_name: 'footer') scroll_origin = WheelActions::ScrollOrigin.element(footer, 0, 50) @@ -374,7 +375,7 @@ module WebDriver }.to raise_error(Error::MoveTargetOutOfBoundsError) end - it 'scrolls by given amount with offset', except: {browser: %i[safari safari_preview]} do + it 'scrolls by given amount with offset' do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame.html') scroll_origin = WheelActions::ScrollOrigin.viewport(10, 10) From 31bfdf72e322a4cafb0d4b831038e272f60d34c0 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Mon, 22 Dec 2025 06:53:31 -0600 Subject: [PATCH 08/11] put the guard in the right place --- .../integration/selenium/webdriver/action_builder_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb index 0f8c53ece229c..e86fe47d9d850 100644 --- a/rb/spec/integration/selenium/webdriver/action_builder_spec.rb +++ b/rb/spec/integration/selenium/webdriver/action_builder_spec.rb @@ -364,8 +364,7 @@ module WebDriver expect(in_viewport?(checkbox)).to be true end - it 'raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport', - except: {browser: %i[safari safari_preview]} do + it 'raises MoveTargetOutOfBoundsError when origin offset from element is out of viewport' do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html') footer = driver.find_element(tag_name: 'footer') scroll_origin = WheelActions::ScrollOrigin.element(footer, 0, 50) @@ -390,7 +389,8 @@ module WebDriver }.not_to raise_error end - it 'raises MoveTargetOutOfBoundsError when origin offset is out of viewport' do + it 'raises MoveTargetOutOfBoundsError when origin offset is out of viewport', + except: {browser: %i[safari safari_preview]} do driver.navigate.to url_for('scrolling_tests/frame_with_nested_scrolling_frame.html') scroll_origin = WheelActions::ScrollOrigin.viewport(-10, -10) From 20e7344ba83d3862b9c51ec49652a133ed97e45c Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Mon, 22 Dec 2025 13:46:59 -0600 Subject: [PATCH 09/11] WIP - just for debugging --- .github/workflows/ci-ruby.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index eba59bcd867fd..e2d9cd4c626ea 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -30,21 +30,21 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 - + - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev - + - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: 3.2.8 bundler-cache: true working-directory: rb - + - name: Install RBS collection working-directory: rb run: bundle exec rbs collection install - + - name: Run Steep type check working-directory: rb run: bundle exec rake steep 2>/dev/null || (bundle exec rake steep && exit 1) @@ -90,14 +90,10 @@ jobs: matrix: browser: - chrome - - edge - firefox os: - windows - macos - exclude: - - browser: edge - os: macos include: - browser: safari os: macos From 2d152a44c9aab039802fee3bc2bf7225531794f0 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Mon, 22 Dec 2025 15:22:50 -0600 Subject: [PATCH 10/11] don't let safari go fullscreen on ci --- rb/spec/integration/selenium/webdriver/window_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rb/spec/integration/selenium/webdriver/window_spec.rb b/rb/spec/integration/selenium/webdriver/window_spec.rb index 84e8bc92f6071..0e31382d39240 100644 --- a/rb/spec/integration/selenium/webdriver/window_spec.rb +++ b/rb/spec/integration/selenium/webdriver/window_spec.rb @@ -113,7 +113,7 @@ module WebDriver expect(new_size.height).to be > old_size.height end - it 'can make window full screen', except: {browser: %i[chrome edge], headless: true} do + it 'can make window full screen', except: {browser: %i[safari safari_preview], ci: :github} do window.size = old_size = Dimension.new(700, 700) window.full_screen From c49f3f05256ae2edfbee77096898982fa8c784d1 Mon Sep 17 00:00:00 2001 From: Titus Fortner Date: Sat, 10 Jan 2026 08:45:24 -0600 Subject: [PATCH 11/11] do not stream output --- .github/workflows/ci-ruby.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-ruby.yml b/.github/workflows/ci-ruby.yml index e2d9cd4c626ea..dd682d5cbb8e2 100644 --- a/.github/workflows/ci-ruby.yml +++ b/.github/workflows/ci-ruby.yml @@ -77,7 +77,6 @@ jobs: bazel test --keep_going --build_tests_only - --test_output=streamed --test_size_filters small //rb/spec/...