This really tripped me up yesterday, My "Vim default" is to use tabs. This (where `!···` is a tab) does not work as you'll hope it works: Scenario: Retrying a failed download when the directory didn't exist (issue 2445) When I download http://localhost:(port)/data/downloads/download.bin to <path> And I wait for the error "Download error: No such file or directory: *" And I make the directory <mkdir> And I run :download-retry !···!···And I wait until the download is finished Then the downloaded file <expected> should exist Examples: | path | mkdir | expected | | asd/zxc/ | asd/zxc | asd/zxc/download.bin | Unfortunately, pytest-bdd uses the "Python 2 behaviour" of "expand all tabs to 8 spaces", and doesn't give any errors on strange/inconsistent whitespace. It can cause very confusing errors.
124 lines
4.8 KiB
Gherkin
124 lines
4.8 KiB
Gherkin
# vim: ft=cucumber fileencoding=utf-8 sts=4 sw=4 et:
|
|
|
|
Feature: Setting positional marks
|
|
|
|
Background:
|
|
Given I open data/marks.html
|
|
And I run :tab-only
|
|
|
|
## :set-mark, :jump-mark
|
|
|
|
Scenario: Setting and jumping to a local mark
|
|
When I run :scroll-px 5 10
|
|
And I wait until the scroll position changed to 5/10
|
|
And I run :set-mark a
|
|
And I run :scroll-px 0 20
|
|
And I wait until the scroll position changed to 5/30
|
|
And I run :jump-mark a
|
|
And I wait until the scroll position changed to 5/10
|
|
Then the page should be scrolled to 5 10
|
|
|
|
Scenario: Jumping back after jumping to a particular percentage
|
|
When I run :scroll-px 10 20
|
|
And I wait until the scroll position changed to 10/20
|
|
And I run :scroll-perc 100
|
|
And I wait until the scroll position changed
|
|
And I run :jump-mark "'"
|
|
And I wait until the scroll position changed to 10/20
|
|
Then the page should be scrolled to 10 20
|
|
|
|
Scenario: Setting the same local mark on another page
|
|
When I run :scroll-px 5 10
|
|
And I wait until the scroll position changed to 5/10
|
|
And I run :set-mark a
|
|
And I open data/marks.html
|
|
And I run :scroll-px 0 20
|
|
And I wait until the scroll position changed to 0/20
|
|
And I run :set-mark a
|
|
And I run :jump-mark a
|
|
Then the page should be scrolled to 0 20
|
|
|
|
Scenario: Jumping to a local mark after returning to a page
|
|
When I run :scroll-px 5 10
|
|
And I wait until the scroll position changed to 5/10
|
|
And I run :set-mark a
|
|
And I run :scroll-px 0 20
|
|
And I wait until the scroll position changed to 5/30
|
|
And I open data/numbers/1.txt
|
|
And I run :set-mark a
|
|
And I open data/marks.html
|
|
And I run :jump-mark a
|
|
And I wait until the scroll position changed to 5/10
|
|
Then the page should be scrolled to 5 10
|
|
|
|
Scenario: Setting and jumping to a global mark
|
|
When I run :scroll-px 5 20
|
|
And I wait until the scroll position changed to 5/20
|
|
And I run :set-mark A
|
|
And I open data/numbers/1.txt
|
|
And I wait until the scroll position changed to 0/0
|
|
And I run :jump-mark A
|
|
And I wait until the scroll position changed to 5/20
|
|
Then data/marks.html should be loaded
|
|
And the page should be scrolled to 5 20
|
|
|
|
Scenario: Jumping to an unset mark
|
|
When I run :jump-mark b
|
|
Then the error "Mark b is not set" should be shown
|
|
|
|
Scenario: Jumping to a local mark that was set on another page
|
|
When I run :set-mark b
|
|
And I open data/numbers/1.txt
|
|
And I run :jump-mark b
|
|
Then the error "Mark b is not set" should be shown
|
|
|
|
@qtwebengine_todo: Does not emit loaded signal for fragments? @flaky
|
|
Scenario: Jumping to a local mark after changing fragments
|
|
When I open data/marks.html#top
|
|
And I run :scroll 'top'
|
|
And I wait until the scroll position changed to 0/0
|
|
And I run :scroll-px 10 10
|
|
And I wait until the scroll position changed to 10/10
|
|
And I run :set-mark a
|
|
When I open data/marks.html#bottom
|
|
And I run :jump-mark a
|
|
And I wait until the scroll position changed to 10/10
|
|
Then the page should be scrolled to 10 10
|
|
|
|
@qtwebengine_todo: Does not emit loaded signal for fragments?
|
|
Scenario: Jumping back after following a link
|
|
When I hint with args "links normal" and follow s
|
|
And I wait until data/marks.html#bottom is loaded
|
|
And I run :jump-mark "'"
|
|
And I wait until the scroll position changed to 0/0
|
|
Then the page should be scrolled to 0 0
|
|
|
|
Scenario: Jumping back after searching
|
|
When I run :scroll-px 20 15
|
|
And I wait until the scroll position changed to 20/15
|
|
And I run :search Waldo
|
|
And I wait until the scroll position changed
|
|
And I run :jump-mark "'"
|
|
And I wait until the scroll position changed to 20/15
|
|
Then the page should be scrolled to 20 15
|
|
|
|
# FIXME:qtwebengine
|
|
@qtwebengine_skip: Does not find Grail on Travis for some reason?
|
|
Scenario: Jumping back after search-next
|
|
When I run :search Grail
|
|
And I run :search-next
|
|
And I wait until the scroll position changed
|
|
And I run :jump-mark "'"
|
|
And I wait until the scroll position changed to 0/0
|
|
Then the page should be scrolled to 0 0
|
|
|
|
Scenario: Hovering a hint does not set the ' mark
|
|
When I run :scroll-px 30 20
|
|
And I wait until the scroll position changed to 30/20
|
|
And I run :scroll-perc 0
|
|
And I wait until the scroll position changed
|
|
And I hint with args "links hover" and follow s
|
|
And I run :jump-mark "'"
|
|
And I wait until the scroll position changed to 30/20
|
|
Then the page should be scrolled to 30 20
|