Merge branch 'mlochbaum-bookmark-load-delete'

This commit is contained in:
Florian Bruhin 2016-07-26 21:28:24 +02:00
commit 414f09f648
6 changed files with 62 additions and 49 deletions

View File

@ -22,6 +22,8 @@ Changed
- `:bookmark-add` now has a `--toggle` flag which deletes the bookmark if it - `:bookmark-add` now has a `--toggle` flag which deletes the bookmark if it
already exists. already exists.
- `:bookmark-load` now has a `--delete` flag which deletes the bookmark after
loading it.
v0.8.0 v0.8.0
------ ------

View File

@ -163,8 +163,8 @@ Contributors, sorted by the number of commits in descending order:
* Nathan Isom * Nathan Isom
* Thorsten Wißmann * Thorsten Wißmann
* Kevin Velghe * Kevin Velghe
* Austin Anderson
* Marshall Lochbaum * Marshall Lochbaum
* Austin Anderson
* Jimmy * Jimmy
* Alexey "Averrin" Nabrodov * Alexey "Averrin" Nabrodov
* avk * avk

View File

@ -145,7 +145,7 @@ Delete a bookmark.
[[bookmark-load]] [[bookmark-load]]
=== bookmark-load === bookmark-load
Syntax: +:bookmark-load [*--tab*] [*--bg*] [*--window*] 'url'+ Syntax: +:bookmark-load [*--tab*] [*--bg*] [*--window*] [*--delete*] 'url'+
Load a bookmark. Load a bookmark.
@ -156,6 +156,7 @@ Load a bookmark.
* +*-t*+, +*--tab*+: Load the bookmark in a new tab. * +*-t*+, +*--tab*+: Load the bookmark in a new tab.
* +*-b*+, +*--bg*+: Load the bookmark in a new background tab. * +*-b*+, +*--bg*+: Load the bookmark in a new background tab.
* +*-w*+, +*--window*+: Load the bookmark in a new window. * +*-w*+, +*--window*+: Load the bookmark in a new window.
* +*-d*+, +*--delete*+: Whether to delete the bookmark afterwards.
==== note ==== note
* This command does not split arguments after the last argument and handles quotes literally. * This command does not split arguments after the last argument and handles quotes literally.

View File

@ -1162,7 +1162,8 @@ class CommandDispatcher:
@cmdutils.register(instance='command-dispatcher', scope='window', @cmdutils.register(instance='command-dispatcher', scope='window',
maxsplit=0) maxsplit=0)
@cmdutils.argument('url', completion=usertypes.Completion.bookmark_by_url) @cmdutils.argument('url', completion=usertypes.Completion.bookmark_by_url)
def bookmark_load(self, url, tab=False, bg=False, window=False): def bookmark_load(self, url, tab=False, bg=False, window=False,
delete=False):
"""Load a bookmark. """Load a bookmark.
Args: Args:
@ -1170,12 +1171,15 @@ class CommandDispatcher:
tab: Load the bookmark in a new tab. tab: Load the bookmark in a new tab.
bg: Load the bookmark in a new background tab. bg: Load the bookmark in a new background tab.
window: Load the bookmark in a new window. window: Load the bookmark in a new window.
delete: Whether to delete the bookmark afterwards.
""" """
try: try:
url = urlutils.fuzzy_url(url) qurl = urlutils.fuzzy_url(url)
except urlutils.InvalidUrlError as e: except urlutils.InvalidUrlError as e:
raise cmdexc.CommandError(e) raise cmdexc.CommandError(e)
self._open(url, tab, bg, window) self._open(qurl, tab, bg, window)
if delete:
self.bookmark_del(url)
@cmdutils.register(instance='command-dispatcher', scope='window', @cmdutils.register(instance='command-dispatcher', scope='window',
maxsplit=0) maxsplit=0)

View File

@ -0,0 +1 @@
nineteen

View File

@ -103,33 +103,38 @@ Feature: quickmarks and bookmarks
And I run :bookmark-add --toggle And I run :bookmark-add --toggle
Then the bookmark file should not contain "http://localhost:*/data/numbers/7.txt " Then the bookmark file should not contain "http://localhost:*/data/numbers/7.txt "
Scenario: Loading a bookmark with --delete
When I run :bookmark-add http://localhost:(port)/data/numbers/8.txt "eight"
And I run :bookmark-load -d http://localhost:(port)/data/numbers/8.txt
Then the bookmark file should not contain "http://localhost:*/data/numbers/8.txt "
## quickmarks ## quickmarks
Scenario: Saving a quickmark (:quickmark-add) Scenario: Saving a quickmark (:quickmark-add)
When I run :quickmark-add http://localhost:(port)/data/numbers/8.txt eight When I run :quickmark-add http://localhost:(port)/data/numbers/9.txt nine
Then the quickmark file should contain "eight http://localhost:*/data/numbers/8.txt"
Scenario: Saving a quickmark (:quickmark-save)
When I open data/numbers/9.txt
And I run :quickmark-save
And I wait for "Entering mode KeyMode.prompt (reason: question asked)" in the log
And I press the keys "nine"
And I press the keys "<Enter>"
Then the quickmark file should contain "nine http://localhost:*/data/numbers/9.txt" Then the quickmark file should contain "nine http://localhost:*/data/numbers/9.txt"
Scenario: Saving a duplicate quickmark (without override) Scenario: Saving a quickmark (:quickmark-save)
When I run :quickmark-add http://localhost:(port)/data/numbers/10.txt ten When I open data/numbers/10.txt
And I run :quickmark-add http://localhost:(port)/data/numbers/10_2.txt ten And I run :quickmark-save
And I wait for "Entering mode KeyMode.yesno (reason: question asked)" in the log And I wait for "Entering mode KeyMode.prompt (reason: question asked)" in the log
And I run :prompt-no And I press the keys "ten"
And I press the keys "<Enter>"
Then the quickmark file should contain "ten http://localhost:*/data/numbers/10.txt" Then the quickmark file should contain "ten http://localhost:*/data/numbers/10.txt"
Scenario: Saving a duplicate quickmark (with override) Scenario: Saving a duplicate quickmark (without override)
When I run :quickmark-add http://localhost:(port)/data/numbers/11.txt eleven When I run :quickmark-add http://localhost:(port)/data/numbers/11.txt eleven
And I run :quickmark-add http://localhost:(port)/data/numbers/11_2.txt eleven And I run :quickmark-add http://localhost:(port)/data/numbers/11_2.txt eleven
And I wait for "Entering mode KeyMode.yesno (reason: question asked)" in the log And I wait for "Entering mode KeyMode.yesno (reason: question asked)" in the log
And I run :prompt-no
Then the quickmark file should contain "eleven http://localhost:*/data/numbers/11.txt"
Scenario: Saving a duplicate quickmark (with override)
When I run :quickmark-add http://localhost:(port)/data/numbers/12.txt twelve
And I run :quickmark-add http://localhost:(port)/data/numbers/12_2.txt twelve
And I wait for "Entering mode KeyMode.yesno (reason: question asked)" in the log
And I run :prompt-yes And I run :prompt-yes
Then the quickmark file should contain "eleven http://localhost:*/data/numbers/11_2.txt" Then the quickmark file should contain "twelve http://localhost:*/data/numbers/12_2.txt"
Scenario: Adding a quickmark with an empty name Scenario: Adding a quickmark with an empty name
When I run :quickmark-add about:blank "" When I run :quickmark-add about:blank ""
@ -141,38 +146,38 @@ Feature: quickmarks and bookmarks
Scenario: Loading a quickmark Scenario: Loading a quickmark
Given I have a fresh instance Given I have a fresh instance
When I run :quickmark-add http://localhost:(port)/data/numbers/12.txt twelve When I run :quickmark-add http://localhost:(port)/data/numbers/13.txt thirteen
And I run :quickmark-load twelve And I run :quickmark-load thirteen
Then data/numbers/12.txt should be loaded Then data/numbers/13.txt should be loaded
And the following tabs should be open: And the following tabs should be open:
- data/numbers/12.txt (active) - data/numbers/13.txt (active)
Scenario: Loading a quickmark in a new tab Scenario: Loading a quickmark in a new tab
Given I open about:blank Given I open about:blank
When I run :tab-only When I run :tab-only
And I run :quickmark-add http://localhost:(port)/data/numbers/13.txt thirteen And I run :quickmark-add http://localhost:(port)/data/numbers/14.txt fourteen
And I run :quickmark-load -t thirteen And I run :quickmark-load -t fourteen
Then data/numbers/13.txt should be loaded Then data/numbers/14.txt should be loaded
And the following tabs should be open: And the following tabs should be open:
- about:blank - about:blank
- data/numbers/13.txt (active) - data/numbers/14.txt (active)
Scenario: Loading a quickmark in a background tab Scenario: Loading a quickmark in a background tab
Given I open about:blank Given I open about:blank
When I run :tab-only When I run :tab-only
And I run :quickmark-add http://localhost:(port)/data/numbers/14.txt fourteen And I run :quickmark-add http://localhost:(port)/data/numbers/15.txt fifteen
And I run :quickmark-load -b fourteen And I run :quickmark-load -b fifteen
Then data/numbers/14.txt should be loaded Then data/numbers/15.txt should be loaded
And the following tabs should be open: And the following tabs should be open:
- about:blank (active) - about:blank (active)
- data/numbers/14.txt - data/numbers/15.txt
Scenario: Loading a quickmark in a new window Scenario: Loading a quickmark in a new window
Given I open about:blank Given I open about:blank
When I run :tab-only When I run :tab-only
And I run :quickmark-add http://localhost:(port)/data/numbers/15.txt fifteen And I run :quickmark-add http://localhost:(port)/data/numbers/16.txt sixteen
And I run :quickmark-load -w fifteen And I run :quickmark-load -w sixteen
And I wait until data/numbers/15.txt is loaded And I wait until data/numbers/16.txt is loaded
Then the session should look like: Then the session should look like:
windows: windows:
- tabs: - tabs:
@ -184,15 +189,15 @@ Feature: quickmarks and bookmarks
- active: true - active: true
history: history:
- active: true - active: true
url: http://localhost:*/data/numbers/15.txt url: http://localhost:*/data/numbers/16.txt
Scenario: Loading a quickmark which does not exist Scenario: Loading a quickmark which does not exist
When I run :quickmark-load -b doesnotexist When I run :quickmark-load -b doesnotexist
Then the error "Quickmark 'doesnotexist' does not exist!" should be shown Then the error "Quickmark 'doesnotexist' does not exist!" should be shown
Scenario: Loading a quickmark with -t and -b Scenario: Loading a quickmark with -t and -b
When I run :quickmark-add http://localhost:(port)/data/numbers/16.txt sixteen When I run :quickmark-add http://localhost:(port)/data/numbers/17.txt seventeen
When I run :quickmark-load -t -b sixteen When I run :quickmark-load -t -b seventeen
Then the error "Only one of -t/-b/-w can be given!" should be shown Then the error "Only one of -t/-b/-w can be given!" should be shown
Scenario: Deleting a quickmark which does not exist Scenario: Deleting a quickmark which does not exist
@ -200,9 +205,9 @@ Feature: quickmarks and bookmarks
Then the error "Quickmark 'doesnotexist' not found!" should be shown Then the error "Quickmark 'doesnotexist' not found!" should be shown
Scenario: Deleting a quickmark Scenario: Deleting a quickmark
When I run :quickmark-add http://localhost:(port)/data/numbers/17.txt seventeen When I run :quickmark-add http://localhost:(port)/data/numbers/18.txt eighteen
And I run :quickmark-del seventeen And I run :quickmark-del eighteen
Then the quickmark file should not contain "seventeen http://localhost:*/data/numbers/17.txt " Then the quickmark file should not contain "eighteen http://localhost:*/data/numbers/18.txt "
Scenario: Deleting the current page's quickmark if it has none Scenario: Deleting the current page's quickmark if it has none
When I open about:blank When I open about:blank
@ -210,17 +215,17 @@ Feature: quickmarks and bookmarks
Then the error "Quickmark for 'about:blank' not found!" should be shown Then the error "Quickmark for 'about:blank' not found!" should be shown
Scenario: Deleting the current page's quickmark Scenario: Deleting the current page's quickmark
When I open data/numbers/18.txt When I open data/numbers/19.txt
And I run :quickmark-add http://localhost:(port)/data/numbers/18.txt eighteen And I run :quickmark-add http://localhost:(port)/data/numbers/19.txt nineteen
And I run :quickmark-del And I run :quickmark-del
Then the quickmark file should not contain "eighteen http://localhost:*/data/numbers/18.txt" Then the quickmark file should not contain "nineteen http://localhost:*/data/numbers/19.txt"
Scenario: Listing quickmarks Scenario: Listing quickmarks
When I run :quickmark-add http://localhost:(port)/data/numbers/15.txt fifteen When I run :quickmark-add http://localhost:(port)/data/numbers/20.txt twenty
And I run :quickmark-add http://localhost:(port)/data/numbers/14.txt fourteen And I run :quickmark-add http://localhost:(port)/data/numbers/21.txt twentyone
And I open qute:bookmarks And I open qute:bookmarks
Then the page should contain the plaintext "fifteen" Then the page should contain the plaintext "twenty"
And the page should contain the plaintext "fourteen" And the page should contain the plaintext "twentyone"
Scenario: Listing bookmarks Scenario: Listing bookmarks
When I open data/title.html When I open data/title.html