Commit Graph

339 Commits

Author SHA1 Message Date
Florian Bruhin
107934e4e1 bdd: Wait a bit in "No crash should happen" step
If we don't do this, the qutebrowser process will be terminated and exit
before it actually has a chance to crash.

See #1510
2016-05-20 16:03:52 +02:00
Florian Bruhin
a0d0b6464f Use typing.py-like annotations for command args
This means:

- An annotation like (int, str) is now typing.Union[int, str].
- utils.typing got expanded so it acts like the real typing.py, with
  issubclass() working properly with typing.Union and __union_params__
  being set.
- A literal string doesn't exist anymore as annotation, instead
  @cmdutils.argument now has a 'choices' argument which can be used like
  @cmdutils.argument('arg', choices=['val1', 'val2']).
- Argument validating/converting is now entirely handled by
  argparser.type_conv instead of relying on python's argparse, i.e.
  type/choices is now not passed to argparse anymore.
2016-05-18 06:55:17 +02:00
Florian Bruhin
ee579b4bc3 Add a script to strip trailing whitespace
Obsoletes #1498
2016-05-18 06:37:26 +02:00
Florian Bruhin
9b28d90543 Improve output if :messages is used without errors 2016-05-15 11:50:29 +02:00
Florian Bruhin
b704c911ae Fix running qute:log and qute:plainlog
This failed because dict.get('level') returned None with no level
parameter, and the subsequent [0] raised:

    Traceback (most recent call last):
      File ".../qutebrowser/utils/utils.py", line 624, in wrapper
        return func(*args, **kwargs)
      File ".../qutebrowser/browser/network/networkmanager.py", line 445, in createRequest
        op, req, outgoing_data)
      File ".../qutebrowser/browser/network/qutescheme.py", line 107, in createRequest
        data = handler(self._win_id, request)
      File ".../qutebrowser/browser/network/qutescheme.py", line 189, in qute_log
        level = urllib.parse.parse_qs(request.url().query()).get('level')[0]
    TypeError: 'NoneType' object is not subscriptable
2016-05-15 11:33:30 +02:00
Florian Bruhin
e21039094d Merge branch 'messages' of https://github.com/rcorre/qutebrowser into rcorre-messages 2016-05-15 11:20:06 +02:00
Ryan Roden-Corrent
fcd233a675 Clean up :messages implementation.
- Add log.LOG_LEVELS to map names to levels (instead of using
  logging._levelToName)
- Test that log pages do not contain messages below the requested level
- Use pythons urllib.parse.parse_qs instead of Qt's UrlQuery
- Document tab, bg, window args for :messages
- Clean up style
2016-05-14 12:45:22 -04:00
Panagiotis Ktistakis
9527712daa Add tests for {url:pretty} in :set-cmd-text 2016-05-14 18:44:05 +03:00
Ryan Roden-Corrent
c36f760114 Add bdd test for page not containing plaintext.
You can now use 'the page should not contain the plaintext ...' in a
feature test.
2016-05-14 07:10:58 -04:00
Ryan Roden-Corrent
800c1c3cf8 Add :messages command to show past messages.
This adds a 'level' query parameter to qute://log and qute://plainlog.
For example, qute://log?level=warning will show an html page containing
log entries with severity warning or greater.
If the query is omitted, the original behavior of qute://log is
preserved.

:messages [level] is a command that opens qute://log?level=<level>.
By default, level defaults to 'error' as an easy way to see missed
error messages.
2016-05-14 07:10:58 -04:00
Panagiotis Ktistakis
38edb1b16d Properly replace variables in set-cmd-text command
This fixes #123 and allows variables like {url:pretty} to be used with
set-cmd-text
2016-05-13 18:12:53 +03:00
Florian Bruhin
cb27dbbfb5 Fix error message check for :bind test 2016-05-10 23:47:16 +02:00
Florian Bruhin
ea243ae022 Renumber keybindings in keyinput.feature
An unique keybinding for each test means we have some level of
isolation and can understand error messages more easily.

As we're >10 now, let's use a leading zero to avoid shadowed
keybindings.
2016-05-10 23:46:02 +02:00
Florian Bruhin
24d16dd0a7 Merge branch 'show_binding2' of https://github.com/rcorre/qutebrowser into rcorre-show_binding2 2016-05-10 23:39:32 +02:00
Florian Bruhin
f7dc9b54bd Add a test for #846 2016-05-09 07:06:58 +02:00
Florian Bruhin
165504c1f2 bdd: Fix clipboard_contains_multiline 2016-05-08 22:09:19 +02:00
Florian Bruhin
3e6ac28c66 Fix ;Y on systems not supporting primary selection
Instead we paste clipboard like we already do with some other commands
when primary selection is not supported.

Fixes #1336
2016-05-08 21:59:25 +02:00
Florian Bruhin
4d9a98a11d Paste clipboard with :paste-primary on Windows 2016-05-08 21:18:57 +02:00
Daniel Schadt
dcac832f5e netmanager: fix crash when asking with no tab_id
Issue 1413

This happens when the networkmanager is used by something that has no
tab_id, like the generic DownloadManager. In this case, we should just
skip the webview connection (as it makes no sense) instead of crashing
(which is the last thing we want to do).
2016-05-05 00:34:16 +02:00
Florian Bruhin
3f66ea1a10 Stabilize buffer test, attempt 2
"Current tab changed" actually waited for an unrelated earlier event.
2016-05-04 20:56:54 +02:00
Ryan Roden-Corrent
2536766cac Run :bind <key> to print the current binding.
The <command> arg is now optional. If omitted, :bind prints the current
binding as a message. If --mode is given, the binding for that mode is
printed.
2016-05-03 23:29:34 -04:00
Florian Bruhin
4e333d61cd Clean up failed userscripts correctly 2016-05-01 22:13:52 +02:00
Florian Bruhin
7b575460d5 Fix URL for :quickmark-save test
We never noticed this because CherryPy handled this incorrectly in
versions < 5.3.0
2016-04-30 19:08:36 +02:00
Florian Bruhin
2b890901ae Unskip :stop test on OS X
CherryPy now ignores EPROTOTYPE on OS X with 5.3.0, so we can safely
reenable the test.
2016-04-30 18:43:31 +02:00
Florian Bruhin
89caf3f497 Add a test for #1464 2016-04-30 14:29:55 +02:00
Florian Bruhin
ebfcce172b Stabilize :buffer tests 2016-04-27 21:08:16 +02:00
Florian Bruhin
7c3361d8da Stabilize :download-delete test 2016-04-26 22:56:06 +02:00
Florian Bruhin
32d64b1a9a Merge branch 'undo_crash' of https://github.com/rcorre/qutebrowser into rcorre-undo_crash 2016-04-25 19:19:08 +02:00
Florian Bruhin
d6c72c5821 Merge branch 'develop' of https://github.com/kanikaa1234/qutebrowser into kanikaa1234-develop 2016-04-25 19:03:20 +02:00
Florian Bruhin
6349c00c72 Fix crash with :tab-{prev,next,focus} with 0 tabs
When using :tab-prev/:tab-next (or :tab-focus which uses :tab-next
internally) immediately after the last tab, those functions could be
called with 0 tabs open, which caused a ZeroDivisionError when trying to
do % 0.

Fixes #1448.
2016-04-25 18:55:15 +02:00
Florian Bruhin
ef91fa3821 Merge branch 'marks' of https://github.com/rcorre/qutebrowser into rcorre-marks 2016-04-21 20:05:41 +02:00
Florian Bruhin
46a525d0d7 bdd: Improve test IDs for :buffer tests 2016-04-21 19:47:26 +02:00
Florian Bruhin
10fe9cf32d Stabilize test_buffer_two_window_index_present
Fixes #1440
I'm not sure if this was the case, but probably it was.
2016-04-21 19:34:39 +02:00
Ryan Roden-Corrent
399cddf7ac Actually test double-undo. 2016-04-21 08:04:20 -04:00
Ryan Roden-Corrent
ccd04ca548 Don't crash when undoing twice on default page.
Avoid a crash when undoing twice on the default page with last-close set to
default-page.
This was caused by logic to reuse the current tab if it is on the default page
and has no history. The fix is using openurl rather than removeTab/tabopen.
2016-04-21 08:04:20 -04:00
Ryan Roden-Corrent
600b5082a9 Touch up tests and add pyqtSlot for marks.
Small code review changes.
2016-04-20 21:53:12 -04:00
Florian Bruhin
a55952375b bdd: Improve output when comparing sessions
See #1440.
2016-04-21 00:15:37 +02:00
Florian Bruhin
e18b056877 Merge branch 'pretty_url' of https://github.com/forkbong/qutebrowser into forkbong-pretty_url 2016-04-20 22:15:54 +02:00
Florian Bruhin
6a6285495a Merge branch 'pretty_url_2' of https://github.com/forkbong/qutebrowser into forkbong-pretty_url_2 2016-04-20 20:56:24 +02:00
Panagiotis Ktistakis
8550fb3401 Add tests for {url:pretty} variable 2016-04-20 17:58:14 +03:00
Florian Bruhin
1579f27564 bdd: Add sections to log
See #1418
2016-04-20 07:38:12 +02:00
Ryan Roden-Corrent
0755e163bb Only set the ' mark on normal/current hinting.
Don't set ' for downloading, hovering, or opening a link in a tab.
2016-04-19 21:18:20 -04:00
kanikaa1234
fae005ab7f :navigate: command and test feature 2016-04-19 20:30:20 +05:30
Florian Bruhin
e860d8cfea Add a custom-headers setting
Supersedes #1132
Closes #1020.
2016-04-19 06:35:32 +02:00
Panagiotis Ktistakis
bd6783c7e6 Add --pretty flag to :yank
With --pretty, the URL is yanked in a "pretty form", with most
percent-encoded characters decoded. Partially fixes #1372.
2016-04-18 23:10:53 +03:00
Ryan Roden-Corrent
2b68aaa311 Make set_mark searching tests less flaky.
Replace all the html numbers with a few widely spaced divs to guarantee the
search will move the viewport on almost and reasonable screen size.
2016-04-18 12:30:16 -04:00
Ryan Roden-Corrent
a924144d9a Set ' mark after searching.
Allow jumping back to the previous position after a search jumps you around.
2016-04-17 21:04:08 -04:00
Ryan Roden-Corrent
be6308534f Store both x and y position for marks.
Previously only stored/used y.
2016-04-17 21:04:08 -04:00
Ryan Roden-Corrent
e684cfa03f Trivial fixes for marks based on code review.
- Fix a docstring copy-paste
- Add own name/copyright date to new file
- Simplify a bdd expression (no need for regex)
- Scroll to a pixel position in a single operation
2016-04-17 21:04:08 -04:00
Ryan Roden-Corrent
540f4af225 Set the ' mark after following a link.
This moves mark storage from CommandDispatcher to TabbedBrowser, so it can also
be accessed by the HintManager.
2016-04-17 21:04:08 -04:00