Add a :window-only for some qt5 end2end tests

A couple of tests seem to be failing because there is two windows open and
they don't expect it. I haven't fixed the root cause, I looked through the
logs and couldn't see why a second window was open. But if this makes the
tests pass, I guess we can address that if someone reports it.

Also changed `_get_scroll_values()` to handle multiple tabs/windows being open
too while I was there.

Example logs: https://github.com/qutebrowser/qutebrowser/actions/runs/8548730512/job/23422922448
Sessions file from the test logs:

  Current session data:
  windows:
  - geometry: !!binary |
      AdnQywADAAAAAAAyAAAAMgAAA1EAAAKJAAAAMgAAADIAAANRAAACiQAAAAAAAAAAAyAAAAAyAAAA
      MgAAA1EAAAKJ
    tabs:
    - active: true
      history:
      - active: true
        last_visited: '2024-04-04T03:21:00'
        pinned: false
        scroll-pos:
          x: 0
          y: 0
        title: about:blank
        url: about:blank
        zoom: 1.0
  - active: true
    geometry: !!binary |
      AdnQywADAAAAAAAyAAAAMgAAA1EAAAKJAAAAMgAAADIAAANRAAACiQAAAAAAAAAAAyAAAAAyAAAA
      MgAAA1EAAAKJ
    tabs:
    - active: true
      history:
      - active: true
        last_visited: '2024-04-04T03:21:03'
        pinned: false
        scroll-pos:
          x: 0
          y: 40
        title: Scrolling
        url: http://localhost:39235/data/scroll/simple.html
        zoom: 1.0
This commit is contained in:
toofar 2024-04-06 12:05:31 +13:00
parent b812ec2628
commit 26dcc4a7a9
2 changed files with 10 additions and 2 deletions

View File

@ -684,8 +684,15 @@ def should_quit(qtbot, quteproc):
def _get_scroll_values(quteproc):
data = quteproc.get_session()
pos = data['windows'][0]['tabs'][0]['history'][-1]['scroll-pos']
return (pos['x'], pos['y'])
def get_active(things):
return next(thing for thing in things if thing.get("active"))
active_window = get_active(data["windows"])
active_tab = get_active(active_window["tabs"])
current_entry = get_active(active_tab["history"])
pos = current_entry["scroll-pos"]
return (pos["x"], pos["y"])
@bdd.then(bdd.parsers.re(r"the page should be scrolled "

View File

@ -3,6 +3,7 @@ Feature: Miscellaneous utility commands exposed to the user.
Background:
Given I open data/scroll/simple.html
And I run :tab-only
And I run :window-only
## :cmd-later