Skip to content

test: clean up skipped specs and fix the bugs they hid - #662

Merged
route merged 8 commits into
mainfrom
test/skipped-specs-cleanup
Oct 19, 2026
Merged

route merged 8 commits into
mainfrom
test/skipped-specs-cleanup

Conversation

@route

@route route commented Oct 19, 2026

Copy link
Copy Markdown
Member

Goes through every skipped spec on main: un-skips the ones that pass now, fixes or removes the rest, and fixes two bugs the skips were hiding.

Fixed

  • Proxy#rotate to an upstream proxy failed every HTTPS request with ERR_TUNNEL_CONNECTION_FAILED. do_CONNECT was copied from WEBrick and used CRLF, LF and NullReader unqualified, which raised NameError outside module WEBrick. The fake api.ipify.org spec is replaced with one that rotates to a local upstream proxy.
  • When Chrome can't compute content quads, Node#click falls back to the bounding rect, but it added the page scroll offset and missed the element on a scrolled page.

Un-skipped

  • Saving an attachment to an absolute path (Chromium 1444729 is fixed), clicking inside an svg, #position= on headless macOS.
  • Network latency emulation, the change event (fires on blur), whitespace in text/inner_text now assert what Chrome returns. Network#request, #response and #status get real specs instead of empty placeholders.
  • Clicks after scrolling and inside iframes: Node#click stays a plain click like a real user's, so these specs call scroll_into_view first. Quads inside frames were already correct.

Removed

  • Capybara/Cuprite API that Ferrum doesn't have: attach_file, drag_to, native, MouseEventFailed for obscured clicks, image map <area> clicks, headers propagating across windows, and a datepicker spec without a view.

Also clarifies in AGENTS.md that a browser-driven spec with one stub stays a feature spec.

route added 8 commits October 19, 2026 22:11
Unskip specs that pass now: saving an attachment to an absolute path (Chromium 1444729 is fixed),
clicking inside an svg, and window positioning on headless macOS. Fix specs with wrong assertions:
network latency emulation, the change event that fires only on blur, whitespace that Chrome keeps
in text and inner text, and the empty Network#request, #response and #status placeholders.

Remove specs for the Capybara API that Ferrum doesn't have: attach_file, drag_to, native,
MouseEventFailed for obscured clicks, and a datepicker spec with no view.
When Chrome can't compute content quads, Node#click falls back to the bounding rect, but it added
the page scroll offset to it, so on a scrolled page the click missed the element.
do_CONNECT was copied from WEBrick, where CRLF, LF and NullReader resolve inside module WEBrick. In
Ferrum::Proxy::HTTPProxyServer they raised NameError, so every CONNECT to an upstream proxy failed with
ERR_TUNNEL_CONNECTION_FAILED, and the request line after a CONNECT was never cleared.
@route
route merged commit e19c24d into main Oct 19, 2026
7 checks passed
@route
route deleted the test/skipped-specs-cleanup branch October 19, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant