qutebrowser/tests/end2end/features/history.feature
2018-07-24 19:56:34 +02:00

132 lines
5.1 KiB
Gherkin

# vim: ft=cucumber fileencoding=utf-8 sts=4 sw=4 et:
Feature: Page history
Make sure the global page history is saved correctly.
Background:
Given I run :history-clear --force
Scenario: Simple history saving
When I open data/numbers/1.txt
And I open data/numbers/2.txt
Then the history should contain:
http://localhost:(port)/data/numbers/1.txt
http://localhost:(port)/data/numbers/2.txt
Scenario: History item with title
When I open data/title.html
Then the history should contain:
http://localhost:(port)/data/title.html Test title
Scenario: History item with redirect
When I open redirect-to?url=data/title.html without waiting
And I wait until data/title.html is loaded
Then the history should contain:
r http://localhost:(port)/redirect-to?url=data/title.html Test title
http://localhost:(port)/data/title.html Test title
Scenario: History item with spaces in URL
When I open data/title with spaces.html
Then the history should contain:
http://localhost:(port)/data/title%20with%20spaces.html Test title
@unicode_locale
Scenario: History item with umlauts
When I open data/äöü.html
Then the history should contain:
http://localhost:(port)/data/%C3%A4%C3%B6%C3%BC.html Chäschüechli
@flaky @qtwebengine_todo: Error page message is not implemented
Scenario: History with an error
When I run :open file:///does/not/exist
And I wait for "Error while loading file:///does/not/exist: Error opening /does/not/exist: *" in the log
Then the history should contain:
file:///does/not/exist Error loading page: file:///does/not/exist
@qtwebengine_todo: Error page message is not implemented
Scenario: History with a 404
When I open 404 without waiting
And I wait for "Error while loading http://localhost:*/404: NOT FOUND" in the log
Then the history should contain:
http://localhost:(port)/404 Error loading page: http://localhost:(port)/404
# Hangs a lot on AppVeyor
@posix
Scenario: History with invalid URL
When I run :tab-only
And I open data/javascript/window_open.html
And I run :click-element id open-invalid
Then "Changing title for idx 1 to 'about:blank'" should be logged
Scenario: History with data URL
When I open data/data_link.html
And I run :click-element id link
And I wait until data:;base64,cXV0ZWJyb3dzZXI= is loaded
Then the history should contain:
http://localhost:(port)/data/data_link.html data: link
@qtwebkit_skip
Scenario: History with view-source URL
When I open data/title.html
And I run :view-source
And I wait for regex "Changing title for idx \d+ to 'view-source:(http://)?localhost:\d+/data/title.html'" in the log
Then the history should contain:
http://localhost:(port)/data/title.html Test title
# Hangs a lot on AppVeyor
@posix
Scenario: Clearing history
When I run :tab-only
And I open data/title.html
And I run :history-clear --force
Then the history should be empty
Scenario: Clearing history with confirmation
When I open data/title.html
And I run :history-clear
And I wait for "Asking question <* title='Clear all browsing history?'>, *" in the log
And I run :prompt-accept yes
Then the history should be empty
Scenario: History with yanked URL and 'add to history' flag
When I open data/hints/html/simple.html
And I hint with args "--add-history links yank" and follow a
Then the history should contain:
http://localhost:(port)/data/hints/html/simple.html Simple link
http://localhost:(port)/data/hello.txt
@flaky
Scenario: Listing history
When I open data/numbers/3.txt
And I open data/numbers/4.txt
And I open qute://history
And I wait 2s
Then the page should contain the plaintext "3.txt"
Then the page should contain the plaintext "4.txt"
# Hangs a lot on AppVeyor
@posix @flaky
Scenario: Listing history with qute:history redirect
When I open data/numbers/3.txt
And I open data/numbers/4.txt
And I open qute:history without waiting
And I wait until qute://history is loaded
And I wait 2s
Then the page should contain the plaintext "3.txt"
Then the page should contain the plaintext "4.txt"
Scenario: XSS in :history
When I open data/issue4011.html
And I open qute://history
Then the javascript message "XSS" should not be logged
@skip # Too flaky
Scenario: Escaping of URLs in :history
When I open query?one=1&two=2
And I open qute://history
And I wait 2s # JS loads the history async
And I hint with args "links normal" and follow a
And I wait until query?one=1&two=2 is loaded
Then the query parameter two should be set to 2