Commit Graph

4343 Commits

Author SHA1 Message Date
Ryan Roden-Corrent
1929883485 Fix bind completion for bindings with arguments.
When a key is bound to a command line that includes one or more
arguments to a command, bind completion should show the whole command
for the "Current" category, and use only the command name to look up the
description.

Fixes #2859, where a crash was caused by looking up the description by
the full command text rather than just the name.
2017-07-25 12:55:44 -04:00
Florian Bruhin
5ecda25fdb Fix renderer process test for older Qt versions 2017-07-25 17:35:42 +02:00
Florian Bruhin
792a01ba6d Try to stabilize renderer process test 2017-07-25 16:56:38 +02:00
Ryan Roden-Corrent
f09423efe5 Abort resizeEvent if model is None.
Some reports came in that a resizeEvent was causing a crash due to the
model being none in the CompletionView.

Fixes #2854.
2017-07-24 08:16:14 -04:00
Florian Bruhin
07b2fde2de Mark test_version as flaky
Sometimes it fails on Travis with empty output for no apparent reason
2017-07-24 08:05:51 +02:00
Florian Bruhin
df3ba278e9 Merge pull request #2852 from rcorre/fix-max-items
Fix web-history-max-items-crash.
2017-07-24 07:29:15 +02:00
Florian Bruhin
837ee5c626 Merge pull request #2846 from rcorre/completion-fixes
Completion fixes
2017-07-24 07:27:11 +02:00
Ryan Roden-Corrent
2ad4cdd729 Fix web-history-max-items-crash.
Fixes #2849, where pressing 'o' with web-history-max-items set and no
history items would cause a crash as the query result is empty.
2017-07-23 21:17:22 -04:00
Ryan Roden-Corrent
ff9efe22ae Fix unused imports and removeRow override.
Override removeRows instead of removeRow.

> removeRow is not virtual in C++, so if this gets called by Qt
> internally for some reason, it wouldn't use the overloaded version -
> so I think it'd be better to implement removeRows and then use
> removeRow without overloading that

- The-Compiler
2017-07-23 17:30:09 -04:00
Florian Bruhin
56b4989f44 Fix tests for QProcess changes 2017-07-23 22:10:50 +02:00
Ryan Roden-Corrent
b61691684e Clear selection when setting completion pattern.
It doesn't make sense to have an active selection while you are
filtering by entering text. You should be in one of two states:

1. Tabbing through completions (valid selection)
2. Entering a filter pattern (invalid selection)

Fixes #2843, where a crash would occur after the following:

1. tab to an item other than the first
2. <backspace>
3. re-type last character
4. <ctrl-d>

This would try to delete an out of range index.
2017-07-22 18:06:16 -04:00
Ryan Roden-Corrent
bc21904fef Fix completion-item-del on undeletable item.
Even though no item was deleted, it was manipulating the completion
model because beginRemoveRows was called before the exception was
raised.

This fixes that problem by moving the removal logic (and delete_func
check) into the parent model, so it can check whether deletion is
possible before calling beginRemoveRows.

Fixes #2839.
2017-07-22 17:16:35 -04:00
Florian Bruhin
118a7942a5 Add maximum bound for web-history-max-items
sqlite can't handle values bigger than uint64_t for LIMIT.
2017-07-21 18:30:12 +02:00
Florian Bruhin
544094ba72 Use simpler way of preventing History completion 2017-07-21 17:55:47 +02:00
Florian Bruhin
6660297871 Fix new completion with web-history-max-items set to 0
We get no last_atime limit at all otherwise:

qutebrowser.misc.sql.SqlException: Failed to prepare query "SELECT url, title,
strftime('%Y-%m-%d', last_atime, 'unixepoch', 'localtime') FROM
CompletionHistory WHERE (url LIKE :pat escape '\' or title LIKE :pat escape '\')
AND last_atime >= ORDER BY last_atime DESC": "near "ORDER": syntax error Unable
to execute statement"
2017-07-21 17:11:38 +02:00
Florian Bruhin
fba25338be Merge pull request #2295 from rcorre/really_complete
Completion refactor V3
2017-07-21 15:05:43 +02:00
Ryan Roden-Corrent
0eb347186c Add 'localtime' to sql history query.
We need to tell sqlite to convert the timestamps to localtime during
formatting, otherwise it formats them as though you are in UTC.

Also fix up a few uses of mktime.
2017-07-20 09:06:29 -04:00
Florian Bruhin
0f85898137 Add a config version to the YAML file 2017-07-19 08:22:00 +02:00
Ryan Roden-Corrent
c32d452786 Add LIMIT to history query.
For performance, re-introduce web-history-max-items.
As the history query has now become a very specific multi-part query and
history completion was the only consumer of SqlCategory, SqlCategory is
now replaced by a HistoryCategory class.
2017-07-16 18:13:51 -04:00
Florian Bruhin
cbf9da0b7e Set window.navigator.languages correctly 2017-07-13 21:24:17 +02:00
Ryan Roden-Corrent
8745f80d90 Fix qute://history SQL bug.
The javascript history page was requesting the new start_time in ms, but
the python code was expecting seconds. This is fixed by removing all the
millisecond translations in the python code and only translating to
milliseconds in the javascript code that formats dates.
2017-07-13 08:54:21 -04:00
Ryan Roden-Corrent
1aed2470e5 SQL code review.
- Fix flake8
- history.clear should also clear completion table
- call _resize_columns in set_model, not set_pattern
- add more unit-testing for the history completion table
2017-07-12 22:14:27 -04:00
Ryan Roden-Corrent
ea459a1eca SQL code review fixes.
- Ignore invalid variable name in flake8 (pylint already checks this and
  we don't want to have to double-ignore)
- Fix and test completion bug with `:set asdf `
- Remove unused import
- Use `assert not func.called` instead of `func.assert_not_called` for
  backwards compatibility
2017-07-12 08:19:31 -04:00
Ryan Roden-Corrent
182d067ff8 SQL code review fixes.
- Fix comment and empty line check in _parse_entry
- connect layoutAboutToBeChanged signal
- assert sort_order is None if sort_by is None
- modify sql init failure message to ask about Qt sqlite support.
2017-07-11 08:07:48 -04:00
Florian Bruhin
1e58c87380 Improve test for messageview timeout 2017-07-11 09:25:53 +02:00
Florian Bruhin
a91e6c3405 Fix test_adblock on Windows
We can't simply have an absolute filename as URL path there, so we only deal
with paths relative to tmpdir in the URLs now.
2017-07-10 22:22:44 +02:00
Florian Bruhin
237362663a Fix test_configfiles.test_init on Windows 2017-07-10 20:37:36 +02:00
Florian Bruhin
ac8fb03b80 Fix lint 2017-07-10 20:37:30 +02:00
Yashar Shahi
a631c971d9 Add tests for show messages longer
Add tests for "Show messages longer if there are multiple of them."
2017-07-10 20:52:42 +04:30
Florian Bruhin
135fb042da Make settings from qute://settings persistent 2017-07-10 18:04:39 +02:00
Florian Bruhin
e81dcccace Add a test for a None currentWidget with backforward widget 2017-07-10 09:29:45 +02:00
Florian Bruhin
5fb6cb713b Hide back/forward widget when there's no text 2017-07-10 07:59:56 +02:00
Florian Bruhin
0e8175b8eb Update docstrings/docs 2017-07-09 23:27:34 +02:00
Daniel Hahler
b3a9e09d6c Add statusline widget for back/forward indicator
Fixes https://github.com/qutebrowser/qutebrowser/issues/2737.
2017-07-09 22:38:44 +02:00
Florian Bruhin
bb567a61b6 Fix ipc test coverage 2017-07-09 22:09:31 +02:00
Florian Bruhin
84c2289aa5 Merge branch 'master' of https://github.com/iordanisg/qutebrowser 2017-07-09 12:56:52 +02:00
Florian Bruhin
cd063c74d9 Why is my commit -a broken 2017-07-09 12:54:19 +02:00
Florian Bruhin
6a2163d36f ipc: Remove support for connecting to legacy servers 2017-07-09 12:49:47 +02:00
Florian Bruhin
915cd5f016 Fix long lines 2017-07-09 11:51:22 +02:00
Ryan Roden-Corrent
cf4ac1a5b7 SQL code review changes.
- use mocker.Mock instead of mock.Mock to avoid an extra import
- attach model to validator sooner so it can validate changes in the
  model during the test
2017-07-08 16:34:38 -04:00
Iordanis Grigoriou
c9fd182dba Adjust suggested_fn_from_title, add tests 2017-07-08 16:28:58 +02:00
Ryan Roden-Corrent
f9f8900fe9 More sql code review fixes.
- remove outdated comment
- fix sql init error message
- clean up history text import code
- fix test_history file path in coverage check
- use real web history, not stub, for completion model tests
- use qtmodeltester in sql/list_category tests
- test url encoding in history tests
- fix test_clear by using a callable mock
- remove test_debug_dump_history_oserror as the check is now the same as
  for the file not existing
- rename nonempty to data in test_completionmodel
- add more delete_cur_item tests
- test empty option/value completion
2017-07-08 09:57:32 -04:00
Florian Bruhin
ad615941a2 Replace OS X with macOS 2017-07-08 11:12:43 +02:00
Ryan Roden-Corrent
515e82262d Merge remote-tracking branch 'upstream/master' into really_complete 2017-07-07 20:42:21 -04:00
Florian Bruhin
215503ba59 Remove now useless suppression 2017-07-07 15:21:18 +02:00
Iordanis Grigoriou
82d194cf2e Improve function docstring, add more tests 2017-07-06 21:37:11 +02:00
Iordanis Grigoriou
3bfafb5e50 Refactor suggested_fn_from_title, add unit tests 2017-07-06 17:41:54 +02:00
Florian Bruhin
338d62204e Make TestModuleVersions in test_version more maintainable 2017-07-06 12:36:11 +02:00
Florian Bruhin
66168a5b49 Add test ids to test_version_output 2017-07-06 12:25:11 +02:00
Florian Bruhin
911e59b0f4 Improve version output without SSL support 2017-07-06 12:23:08 +02:00
Florian Bruhin
94951d92a1 Simplify arg handling in test_version_output 2017-07-06 12:15:42 +02:00
Iordanis Grigoriou
57e4d4978b Use page title only for whitelisted extensions 2017-07-06 11:59:02 +02:00
Ryan Roden-Corrent
dc4472470e Merge remote-tracking branch 'upstream/master' into really_complete 2017-07-05 08:45:57 -04:00
Ryan Roden-Corrent
81f5b7115f Add spec=[] to two mock functions in tests. 2017-07-05 08:44:56 -04:00
Florian Bruhin
28410b8533 Release v0.11.0 2017-07-04 18:02:34 +02:00
Florian Bruhin
45b1285402 Merge pull request #2765 from jgkamat/jay/tab-crashes
Refactor set_tab_pinned to take a tab widget.
2017-07-04 17:24:10 +02:00
Florian Bruhin
0cdd3ff82f Update some more references to old config options 2017-07-04 16:46:02 +02:00
Florian Bruhin
770c879410 Bring back searchengine BDD tests 2017-07-04 15:39:07 +02:00
Florian Bruhin
cff61fa0bc Fix pylint
This also reverts commit 8df0b063be.
2017-07-04 15:34:10 +02:00
Florian Bruhin
88b878098d Implement pretty-printing of configtypes for the doc
This is also needed to make the docs environment work on Travis - as otherwise,
doc generation wasn't deterministic because of changing dict key order.
2017-07-04 15:09:23 +02:00
Florian Bruhin
f98b8a240e Fix flake8 2017-07-04 15:09:23 +02:00
Florian Bruhin
acf85eb96b Stabilize qute://settings test 2017-07-04 15:09:23 +02:00
Florian Bruhin
79c11d6008 Skip test_configdata.test_init_benchmark on Travis in Docker
See #2777
2017-07-04 15:09:23 +02:00
Florian Bruhin
65585b313d test_configtypes: Rename test_to_py to _valid for consistency 2017-07-04 15:09:23 +02:00
Florian Bruhin
9ac2dbcc80 Disallow surrogate escapes in dicts and lists in the config
In Dict.to_str() and List.to_str() we use json.dump to get a value. However,
JSON includes surrogate escapes in the dumped values, which breaks round trips.

>>> yaml.load(json.dumps({'\U00010000': True}))
{'\ud800\udc00': True}

>>> yaml.load(json.dumps({'\U00010000': True}, ensure_ascii=False))
yaml.reader.ReaderError: unacceptable character #x10000: special characters are not allowed

See:
https://stackoverflow.com/a/38552626/2085149
https://news.ycombinator.com/item?id=12798032
2017-07-04 15:09:23 +02:00
Florian Bruhin
fa0f4e1101 Improve test_configtypes.TestDict
We didn't have to_py tests there before.
2017-07-04 15:09:23 +02:00
Florian Bruhin
f00e91e85e Don't set valid_values in test_configtypes.TestList
Most of the time we want to check values without them being outright rejected by
ValidValues.
2017-07-04 15:09:23 +02:00
Florian Bruhin
05f4f2e742 Fix TestDict.test_hypothesis_text for unordered dicts 2017-07-04 15:09:23 +02:00
Florian Bruhin
ea2b9f5596 Remove old comment
The recursion is caught in test_config
2017-07-04 15:09:15 +02:00
Florian Bruhin
0528a800f2 Fix config things relying on dict order 2017-07-04 15:08:04 +02:00
Florian Bruhin
8933b4c5da Avoid calling configdata.init() in tests
It takes unnecessary time (20ms without C extensions) to initialize it over and
over again - and for some reason, it takes 20s (!) on Travis.
2017-07-04 15:08:04 +02:00
Florian Bruhin
9db4a8cb43 Clean up test_cache 2017-07-04 15:08:04 +02:00
Florian Bruhin
9dfe4429d7 Import qutebrowser.app in conftest 2017-07-04 15:08:04 +02:00
Florian Bruhin
b42265212b Update test_keyhints for new config
This also makes the keyhint display things sorted
2017-07-04 15:08:04 +02:00
Florian Bruhin
4bebfd8d5f Update test_modeparsers for new config 2017-07-04 15:08:04 +02:00
Florian Bruhin
d5cd0b19b0 Update test_basekeyparser for new config 2017-07-04 15:08:04 +02:00
Florian Bruhin
22b0f2fd24 Various simple test updates for new config
test_cache
test_cookies
test_webkitelem
test_cmdutils
test_runners
test_completionwidget
test_messageview
test_editor
test_miscwidgets
test_sessions
test_urlutils
test_utils
test_prompt
statusbar/test_*
test_cmdhistory
test_tabwidget
test_tab
test_downloads
test_networkmanager
2017-07-04 15:08:04 +02:00
Florian Bruhin
1663280f53 Update test_shared for new config
Also, make accept_language none_ok=True like it was in the old configdata.py
2017-07-04 15:08:04 +02:00
Florian Bruhin
7dd5e4b2e6 Skip broken completion tests
This skips test_completer and test_models - we'll reintroduce them when merging
the new completion.
2017-07-04 15:08:04 +02:00
Florian Bruhin
ff05560047 Update test_adblock for new config
This required some changes on how URLs are handled during those tests. Before,
we simply could return a path and (since we had a patched QNAM), nobody
complained.

Now this actually needs to be a valid URL, so we use
https://www.example.com/path everywhere instead.
2017-07-04 15:08:04 +02:00
Florian Bruhin
78d7ac311f Use fonts.monospace properly 2017-07-04 15:08:04 +02:00
Florian Bruhin
a36f5bafc1 Rename content.javascript.can_*_windows to _tabs 2017-07-04 15:08:04 +02:00
Florian Bruhin
5ada3606d8 Allow to not send the DNT header 2017-07-04 15:08:04 +02:00
Florian Bruhin
202b8445f6 Move content.accept_language under headers 2017-07-04 15:08:04 +02:00
Florian Bruhin
8712fc6fd3 Move new_instance_open_target out of url.
It doesn't really fit there really...
See 3cf028db23cbfe256e499d8881c3c2856f224d94
2017-07-04 15:08:04 +02:00
Florian Bruhin
d641652a92 More test_config improvements 2017-07-04 15:08:04 +02:00
Florian Bruhin
c214acd899 Remove config from objreg 2017-07-04 15:08:04 +02:00
Florian Bruhin
f8a88ae042 Clean up objreg properly in config tests 2017-07-04 15:08:04 +02:00
Florian Bruhin
54adf3898a Add test_configfiles.py 2017-07-04 15:08:04 +02:00
Florian Bruhin
1a492e9f4a Re-add backend checks to new config 2017-07-04 15:08:04 +02:00
Florian Bruhin
556f49d367 Add PACFetcher.fetch
Let's not try to download proxies during tests...
2017-07-04 15:08:04 +02:00
Florian Bruhin
215fd2f055 More test_config fixes/tests 2017-07-04 15:08:04 +02:00
Florian Bruhin
009ed3584d Reorder tests 2017-07-04 15:08:04 +02:00
Florian Bruhin
2b9b54cf6b Tests and improvements for ConfigContainer 2017-07-04 15:08:03 +02:00
Florian Bruhin
4495e721d8 Tests and fixes for config.Config 2017-07-04 15:08:03 +02:00
Florian Bruhin
2c3981e57e Get rid of Config.read_configdata()
No need for this indirection
2017-07-04 15:08:03 +02:00
Florian Bruhin
07d0ea6a54 Unit tests and improvements for :bind/:unbind 2017-07-04 15:08:03 +02:00
Florian Bruhin
353c10aee7 Add a separate qutescheme BDD file 2017-07-04 15:08:03 +02:00
Florian Bruhin
3edebce833 Add tests for :set 2017-07-04 15:08:03 +02:00
Florian Bruhin
31b999ea59 Tests and improvements for KeyConfig 2017-07-04 15:08:03 +02:00
Florian Bruhin
725ffef5f3 Use a real config object in unit tests 2017-07-04 15:08:03 +02:00
Florian Bruhin
978013e750 Fix CommandParser and don't use a generator 2017-07-04 15:08:03 +02:00
Florian Bruhin
a8c7e8ba05 Add first config tests 2017-07-04 15:08:03 +02:00
Florian Bruhin
28670f8e48 Move config.style into config.config and refactor it 2017-07-04 15:08:03 +02:00
Florian Bruhin
81d6406e14 Update test_stylesheet 2017-07-04 15:08:03 +02:00
Florian Bruhin
a5c8a52dd5 Update config_stub for tests 2017-07-04 15:08:03 +02:00
Florian Bruhin
0dc95aceed Clean up old test_config.py 2017-07-04 15:08:03 +02:00
Florian Bruhin
df1685905e Add content.headers and content.cache groups 2017-07-04 15:08:03 +02:00
Florian Bruhin
50602cbf26 Add an url. group to settings 2017-07-04 15:08:03 +02:00
Florian Bruhin
065f82f485 Fix endless recursion while validating aliases 2017-07-04 15:08:03 +02:00
Florian Bruhin
ac78039171 Use aliases for :w and :q 2017-07-04 15:08:03 +02:00
Florian Bruhin
ac64ea287a Rename tabs.new_position/_explicit to .related/.unrelated 2017-07-04 15:08:03 +02:00
Florian Bruhin
441b3a4df4 Allow missing fixed_keys for configtypes.Dict
We just fill them up with a None value for the value type, so we can e.g. only
specify a subset of modes for bindings and the rest is {}.
2017-07-04 15:08:03 +02:00
Florian Bruhin
9d8b76e497 Simplify _none_value for List/Dict configtypes
We don't need to check for fixed_keys/required_keys in get_obj (only get_py),
and we don't need to care about mutability in get_py.
2017-07-04 15:08:03 +02:00
Florian Bruhin
da0a2b8578 Handle {} and [] with none_ok for configtypes.Dict/List 2017-07-04 15:08:03 +02:00
Florian Bruhin
2ba637891a Add required_keys for configtypes.Dict 2017-07-04 15:08:03 +02:00
Florian Bruhin
7ee222af88 Return [] for none-values for configtypes.List 2017-07-04 15:08:03 +02:00
Florian Bruhin
c141c33b32 Clean up start_pages setting
The value is now of type FuzzyUrl, and the setting is renamed to start_pages.
2017-07-04 15:08:03 +02:00
Florian Bruhin
9cbacf3264 Use {} for none-dicts and fix keybindings 2017-07-04 15:08:03 +02:00
Florian Bruhin
127db2fe42 Be a bit more relaxed about values for Perc
We now allow float/int for objects, and strings without a trailing % sign.
2017-07-04 15:08:03 +02:00
Florian Bruhin
9bd438618a Add a test for DuplicateKeyError 2017-07-04 15:08:03 +02:00
Florian Bruhin
2a40401398 Fix config tests for new Command type 2017-07-04 15:08:03 +02:00
Florian Bruhin
ad919fc972 Add a test for :bind with a wrong mode 2017-07-04 15:08:03 +02:00
Florian Bruhin
23d30d4fc0 Fix remaining :bind/:unbind issues 2017-07-04 15:08:03 +02:00
Florian Bruhin
ba1bc29a97 Initial :bind/:unbind implementation 2017-07-04 15:08:02 +02:00
Florian Bruhin
d9f1c4595e Make "the option ... should be set to ..." unambiguous
Otherwise, it'd collide with the cookie check.
2017-07-04 15:08:02 +02:00
Florian Bruhin
3c2d568a2e Add an ID for qute://settings inputs 2017-07-04 15:08:02 +02:00
Florian Bruhin
ceca99a99c Fix :help with new config 2017-07-04 15:08:02 +02:00
Florian Bruhin
383968d948 Add a Key config type
Make sure any key we get from the config is normalized).
2017-07-04 15:08:02 +02:00
Florian Bruhin
0d062b28bf Comment out failing test 2017-07-04 15:08:02 +02:00
Florian Bruhin
bd9b45bb96 tests: Fix more issues with new config 2017-07-04 15:08:02 +02:00
Florian Bruhin
089e1ee91b Rewrite various references to old settings 2017-07-04 15:08:02 +02:00
Florian Bruhin
88fb5bbd82 tests: Fix various issues with new config 2017-07-04 15:08:02 +02:00
Florian Bruhin
ab1b80967f Disable tests which won't work yet
They are re-enabled in later commits.
2017-07-04 15:08:02 +02:00
Florian Bruhin
f27978e268 Rename input.insert_mode.auto_focused to _load 2017-07-04 15:08:02 +02:00
Florian Bruhin
3470e9bf5d Fix invocation with -s 2017-07-04 15:08:02 +02:00
Florian Bruhin
d0904a9f67 Adjust test settings 2017-07-04 15:08:02 +02:00
Florian Bruhin
bc8176ff21 Remove most legacy config code 2017-07-04 15:08:02 +02:00
Florian Bruhin
f5d2c48bbb Fix new keyconfig issues 2017-07-04 15:08:02 +02:00
Florian Bruhin
dc74a55b84 Fix remaining configtypes issues 2017-07-04 15:08:02 +02:00
Florian Bruhin
3392ccc58b test_configtypes fixes 2017-07-04 15:08:02 +02:00
Florian Bruhin
ecba175b16 Test and fix configtypes to_str. 2017-07-04 15:08:02 +02:00
Florian Bruhin
d69c6d0c66 Reorganize how configtypes store their data
Now the "object" kind of value (like in YAML) is stored internally, and that's
the canonical value. The methods changed their meaning slightly, see the
docstring in configtypes.py for details.
2017-07-04 15:08:02 +02:00
Florian Bruhin
1cbb4ece4b Force configtype.Dict keys to be strings 2017-07-04 15:08:02 +02:00
Florian Bruhin
41655e7852 Fix handling of none_ok in List/Dict
We now always return None (and '' as string) when the user configured an empty
list or dict.
2017-07-04 15:08:01 +02:00
Florian Bruhin
8ea3d92697 Initial implementation of to_str for configtypes 2017-07-04 15:08:01 +02:00
Florian Bruhin
0c1f480fc1 Remove TODO for qute://settings on webengine 2017-07-04 15:08:01 +02:00
Florian Bruhin
fede64ba7a Add test for configdata.is_valid_prefix 2017-07-04 15:08:01 +02:00
Florian Bruhin
18eb133811 configdata: Make sure default values are valid 2017-07-04 15:08:01 +02:00
Florian Bruhin
0857a45b0a configtypes: parse regex flags properly 2017-07-04 15:08:01 +02:00
Florian Bruhin
6733e92b50 Handle files correctly in utils.yaml_dump 2017-07-04 15:08:01 +02:00
Florian Bruhin
001312ca82 Disallow Booleans for configtypes.Int.from_py 2017-07-04 14:42:56 +02:00
Florian Bruhin
4e729bb9ec Back to using json in test_configtypes
It returns one-line data and is YAML compatible
2017-07-04 14:42:56 +02:00
Florian Bruhin
dfee857466 Make utils.yaml_dump return str 2017-07-04 14:42:56 +02:00
Florian Bruhin
05dc94ccc4 Improve configtypes tests 2017-07-04 14:42:56 +02:00
Florian Bruhin
7416164aca Rename old validate tests 2017-07-04 14:42:56 +02:00
Florian Bruhin
71f2e8c577 None validation fixups for test_configtypes 2017-07-04 14:42:56 +02:00
Florian Bruhin
61ba92ae18 configtypes: Separate str/py basic validation
This also ensures the behavior for none_ok is consistent.
2017-07-04 14:42:56 +02:00
Florian Bruhin
cdbd64a30d Move test_configtypes_hypothesis to test_configtypes 2017-07-04 14:42:56 +02:00
Florian Bruhin
7e7fbf106b Fix lint and old config options 2017-07-04 14:42:56 +02:00
Florian Bruhin
63bdee8b55 Initial configtype tests update 2017-07-04 14:42:56 +02:00
Ryan Roden-Corrent
1e1335aa5e Make various SQL code review changes.
- Fix outdated comments
- Use mock specs when possible
- More precise error message check in test_import_txt_invalid.
- Fix copyright message
- Tweak missing pyqt error message
- Dead code: remove group_by and where from sqlcategory.
  With the new separate completion table, these are no longer used.
- Move test_history out of webkit/. History is no longer purely webkit
  related, it could be webengine.
2017-07-03 09:45:08 -04:00
Ryan Roden-Corrent
a34df34208 Fix various test/flake8/pylint errors. 2017-07-03 08:12:47 -04:00
Florian Bruhin
3b53ec1cb6 Skip tests with permission changes if they didn't work
This e.g. wouldn't work inside of a Docker container otherwise.
2017-07-03 10:07:40 +02:00
Florian Bruhin
1022b7ea32 Make jinja templating more strict
This ensures we actually know when an AttributeError happens.

It also changes most external code to use the correct environment, rather than
simply creating a jinja2.Template, which wouldn't use the more tightened
environment.
2017-07-02 22:17:33 +02:00
Florian Bruhin
aa6f229e6b Add utils.yaml_{load,dump} 2017-07-02 22:17:33 +02:00
Florian Bruhin
3e3685b68b Initial configexc refactoring 2017-07-02 22:17:33 +02:00
Florian Bruhin
5ec47da127 Get rid of configtypes.AutoSearch and IgnoreCase 2017-07-02 22:17:33 +02:00
Florian Bruhin
938946c48b configdata: Add check for shadowing keys 2017-07-02 22:17:33 +02:00
Florian Bruhin
52f6ea2525 Initial parsing 2017-07-02 22:17:33 +02:00
Jay Kamat
2fbadc46d2 Remove error when count is invalid to :tab-pin 2017-06-30 09:57:39 -07:00
Jay Kamat
596dee69d6
Clean up pin_tab
Also add a test case for :pin-tab with an invalid count
2017-06-29 20:04:02 -07:00
Ryan Roden-Corrent
22880926b1 Fix WebHistoryStub for delete argument change 2017-06-29 21:46:09 -04:00
Ryan Roden-Corrent
c1f5e77fc6 Implement "Current" completion for bind.
When binding a key, the first row will be the current binding if the key
is already bound. This should make it easier for users to tell when they
are binding a key that is already bound, and what it is bound to.
2017-06-29 21:44:44 -04:00
Ryan Roden-Corrent
262b028ee9 Match error message in lineparser test. 2017-06-29 20:49:05 -04:00
Ryan Roden-Corrent
c007f592b3 Use more intuitive argument order in sql.delete. 2017-06-29 20:43:42 -04:00
Florian Bruhin
d132b6ed71 Fix :scroll-page with --bottom-navigate on QtWebEngine
There were two issues here:

- The comparison was backwards, causing scroller.at_bottom() to always return
  true.
- When zoomed in, jsret['px']['y'] can be a float, which means we can be
  slightly off when checking the difference - math.ceil() fixes that.
2017-06-29 22:39:48 +02:00
Ryan Roden-Corrent
6ac940fa32 Fix pylint/coverage errors.
Ensure 100% coverage for sqlcategory and history, and fix some linter
errors
2017-06-27 12:33:51 -04:00
Ryan Roden-Corrent
f06880c6e2 Fix history completion delete function.
In order to update SqlQueryModel's rowCount after re-running the query,
we must call setQuery again.
2017-06-27 08:42:10 -04:00
Iordanis Grigoriou
0a09758be1 Add file path to download 2017-06-27 12:21:25 +02:00
Florian Bruhin
5ec94f96fd Allow a trailing % for :zoom 2017-06-26 21:51:35 +02:00
Ryan Roden-Corrent
62a849c2db Fix bugs introduced in test_models 2017-06-26 12:41:48 -04:00
Ryan Roden-Corrent
46161c3af0 Refactor delete_cur_item.
Taking the completion widget as an argument was overly complex.
The process now looks like:

1. CompletionView gets deletion request
2. CompletionView passes selected index to CompletionModel
3. CompletionModel passes the row data to the owning category
4. The category runs its custom completion function.

This also fixes a bug. With the switch to the hybrid (list/sql)
completion model, the view was no longer updating when items were
deleted. This fixes that by ensuring the correct signals are emitted.

The SQL model must be refreshed by running the query. We could try using
a SqlTableModel so we can call removeRows instead.

The test for deleting a url fails because qmodeltester claims the length
of the query model is still 3.
2017-06-26 08:57:36 -04:00
Iordanis Grigoriou
a24d7f6686 Use page title for filename with :download 2017-06-26 12:25:03 +02:00
Ryan Roden-Corrent
866f4653c7 Fix spelling existant -> existent. 2017-06-25 22:14:38 -04:00
Ryan Roden-Corrent
0f585eda4f Bring history.py back to 100% coverage.
The code of debug_dump_history was tweaked to handle a possible
OSException that can be thrown by open, which I noticed while trying to
test it.
2017-06-20 21:41:43 -04:00
Florian Bruhin
cb5cd1a910 Remove old test_commands.py 2017-06-20 15:20:32 +02:00
Florian Bruhin
994e8c692f Merge different FakeTabbedBrowser objects 2017-06-20 15:19:53 +02:00
Florian Bruhin
750ef834dc Make PyOpenGL a required dependency
Looks like the "black screen" issue isn't the only thing going wrong, some
people even report segfaults since the vendor check was added.
2017-06-20 13:05:53 +02:00
Florian Bruhin
06d4a24bd1 Merge branch 'master' of https://github.com/iordanisg/qutebrowser 2017-06-20 12:45:21 +02:00
Iordanis Grigoriou
f0ff02fcb2 Avoid throwing exception when no last focused tab exists 2017-06-19 15:48:17 +02:00
Florian Bruhin
4296a61b9a tests: Clean up check_history 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
891a6bcf14 Fix flake8 errors 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
c7a18a8b8d Fix tests for recent sql changes 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
4e87773d89 Use a dict instead of named params for insert.
This allows replace to be a named parameter and allows consolidating
some duplicate code between various insert methods.

This also fixes some tests that broke because batch insert was broken.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
f4f52ee204 Remove history.Entry.
No longer needed with sql backend. Query results build their own
namedtuple from the returned columns, and inserting new entries is just
done with named parameters.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
1fe1813431 Fix pylint errors. 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
cf23f42b99 Use splitlines in test_history_bdd again.
Just using read() returns a single string, and iterating over that
iterates over each character.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
679e001a48 Separate sqlcategory title from table name.
Also fix a number of sql/completion tests that were failing.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
fa39b82b3c Backup old history file after import.
Instead of removing it, move it to history.bak.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
a6a9ad72f9 Fix test_history_interface.
This was still using a history dict instead of SQL history.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
22b7b21d5a Use named placeholders for sql queries. 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
3a4ef09f58 More sql code review fixes 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
6fc61d12fc Assorted small fixes for sql code review. 2017-06-19 07:44:11 -04:00
Florian Bruhin
57d96a4512 Add a CompletionHistory instead of HistoryVisits table 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
309b6ba32c Move _import_history to history.py.
Also adjusts the history import test to operate at a higher level and
ensure the old text file is removed (or isn't, in the case of an error).
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
478a719f77 Use a prepared query for historyContains.
This is called often, hopefully a prepared query will speed it up.
This also modifies Query.run to return self for easier chaining, so you
can use `query.run.value()` instead of `query.run` ; query.value()`.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
565ba23f8c Don't instantiate completion models nedlessly.
For real this time. A mistake on the last commit like this meant models
were still spuriously instantiated.
Now that the completion model is reused, the layoutChanged signal needs
to be forwarded through, otherwise the view will not update.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
42243d3d97 Add more performance logging to completion. 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
a01c76db54 Remove 'group by' from url completion query.
This seemed to have a significant performance impact. Removing it means
that instead of just seeing the most recent atime for a given url, you
will see multiple entries.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
c297f047d2 Don't regenerate completion model needlessly.
If the completion model would stay the same, just keep it and update the
filter pattern rather than instantiating a new model each time the
pattern changes.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
2cd02be7b1 Remove CompletionModel.columns_to_filter.
Instead set this on inidividual categories, as that is where it actually
gets used. This makes it easier for SqlCompletionCategory to reuse a
prepared query (as it gets the filter field names in its constructor).
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
8fb6f45bec Don't set pattern in SqlCategory constructor.
This will be called by the Completer after construction anyways, this
was a duplicate call that could be expensive.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
cf89ffa971 Fix pylint/flake8 errors 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
2c501f7fb7 Fix url completion benchmark.
Still had old code from pre-SQL era.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
39b561a182 Fix BaseLineParser::test_double_open.
Don't tie the test to a particular error message. Ths failed because a
typo was fixed (AppendLineParser -> LineParser).
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
b1b521e0c2 Fix two history tests added recently.
These were added on master and needed to be adjusted slightly for the
new history check (which doesn't rely on reading a history file
anymore).
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
e67da51662 Use prepared SQL queries. 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
20000088de Add debug-dump-history and fix sql history tests.
Trying to read from the sql database from another process was flaky.
This adds a debug-dump-history command which is used by the history BDD
tests to validate the history contents.

It outputs history in the old pre-SQL text format, so it might be
useful for those who want to manipulate their history as text.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
87643040a4 Fix test_history for python < 3.6.
Mock.assert_called is only in python 3.6. For earlier versions we must
use `assert m.called`.

Weird errors only appearing in CI, trying to debug...
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
882da71397 Remove unused imports 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
eb61269068 Fix qute://history javascript for SQL.
Returning "next" was no longer possible as the SQL query does not fetch
more items than necessary. This is solved by using a start time, a
limit, and an offset. The offset is needed to prevent fetching duplicate
items if multiple entries have the same timestamp.

Two of the history tests that relied on qute://history were changed to
rely on qute://history/data instead to make them less failure-prone.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
71191f10a2 Only complete most recent atime for url.
The history completion query is extended to pick only the most recent item for
a given url.

The tests in test_models now check for ordering of elements.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
9d4888a772 Optimize qute://history for SQL backend.
The old implementation was looping through the whole history list, which for
SQL was selecting every row in the database. The history benchmark was taking
~2s. If this is rewritten as a specialized SQL query, the benchmark takes
~10ms, an order of magnitude faster than the original non-SQL implementation.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
784d9bb043 Remove code rendered dead by sql implementation.
Vulture exposed the following dead code:

- AppendLineParse was only used for reading the history text file, which is now
  a sql database (and the import code for the old text file is simpler and does
  not need a complex line parser)

- async_read_done is no longer used as importing the history text file is
  synchronous (and should only happen once)

- config._init_key_config is unused as it was moved to keyconf.init
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
a8ed9f1c2f Fix qute://version sql init bug.
Calling sql.init() in version.version() would replace the existing sql
connection and cause a crash when accessed by opening qute://version.

Now version relies on sql already being initted, and app.py inits sql early if
the --version arg is given.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
231bbe7c2b Fix race condition on history tests.
Two history end2end tests are failing because sqlite is not flushing to disk in
time to be read by the test process. My understanding is that sqlite should
take an exclusive lock while writing, so it is difficult to understand why this
is happening. This can be fixed by adding a delay, but that seems flaky.

I'm fixing it by checking qute://history instead of reading the database file.

See:
https://github.com/qutebrowser/qutebrowser/pull/2295#issuecomment-292786138
and the following discussion.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
44080b8ad4 Fix flake8 errors in test_history 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
e661fb7446 Fix test_history.
History doesn't depend on standarddir anymore, the history file path get passed
by app.py.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
f110cf4d53 Fix long hang after importing history.
Turns out historyContains was getting called for the webkit backend multiple
times when the browser starts. This was calling `url in history`, which was
enumerating the entire history as `__contains__` was not defined.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
024386d189 Fail on history file parsing errors.
Instead of skipping bad history lines during the import to sql, fail hard. We
don't want to delete the user's old history file if we couldn't parse all of
the lines.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
6412c88277 Clean up history module.
Eliminate out-of-date docstring and remove an unused signal.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
3e63b62d6e Fix pylint/flake8 for sql work. 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
8ff45331df Clean up sql implementation.
Now that sql is only used for history (not quickmarks/bookmarks) a number of
functions are no longer needed. In addition, primary key support was removed as
we actually need to support multiple entries for the same url with different
access times. The completion model will have to handle this by selecting
something like (url, title, max(atime)).

This also fixes up a number of tests that were broken with the last few
sql-related commits.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
80647b062a Convert old history file to sqlite.
If qutebrowser detects a history text file when it starts
(~/.local/share/qutebrowser/history by default on Linux), it will import this
file into the new sqlite database, then delete it.

The read is done as a coroutine as it can take some time.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
de5be0dc5a Store history in an on-disk sqlite database.
Instead of reading sqlite history from a file and storing it in an in-memory
database, just directly use an on-disk database. This resolves #755, where
history entries don't pop in to the completion menu immediately as they are
still being read asynchronously for a few seconds after the browser starts.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
b47c3b6a60 Test deleting a history entry from completion.
Deleting a history entry should do nothing, but we want a test to ensure this
and get 100% branch coverage for urlmodel.

This also un-skips the bookmark/quickmark tests.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
2eea115b3a Rename sqlcategory and add to perfect_files.
There was a typo in the file name.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
4296eed429 Fix test_history cleanup failure.
The test may be skipped if the PyQt5.QtWebKitWidget import fails, but the
cleanup was still running and trying to delete a nonexistant web-history.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
5dce6fa494 Fix pylint/flake8 errors 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
f95dff4d9e Decouple categories from completionmodel.
Instead of add_list and add_sqltable, the completion model now supports
add_category, and callees either pass in a SqlCategory or ListCategory. This
makes unit testing much easier.

This also folds CompletionFilterModel into the ListCategory class.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
1d54688b0b Revert "Use SQL completer for quickmarks/bookmarks."
This reverts commit bcf1520132df84552f69419f3b1cbf3ede20ccad.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
e3a33ca427 Implement a hybrid list/sql completion model.
Now all completion models are of a single type called CompletionModel.
This model combines one or more categories. A category can either be a
ListCategory or a SqlCategory.

This simplifies the API, and will allow the use of models that combine simple
list-based and sql sources. This is important for two reasons:

- Adding searchengines to url completion
- Using an on-disk sqlite database for history, while keeping bookmarks and
  quickmars as text files.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
921211bbaa Remove web-history-max-items.
This was a performance optimization that shouldn't be needed with the new SQL
history backend. This also removes support for the LIMIT feature from SqlTable
as it only existed to support web-history-max-items.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
99c9b2d396 Fix two small mistakes after SQL code review.
urlmodel is now sorted, so the test had to be adjusted. Also remove one unused
import.
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
c4c5723a61 Sort history completion entries by atime. 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
56f3b3a027 Small review fixups for SQL implementation.
Respond to the low-hanging code review fruit:

- Clean up some comments
- Remove an acidentally added duplicate init_autosave
- Combine two test_history tests
- Move test_init cleanup into a fixture to ensure it gets called.
- Name the _ argument of bind(_) to _key
- Ensure index is valid for first_item/last_item
- Move SqlException to top of module
- Rename test_index to test_getitem
- Return QItemFlags.None instead of None
- Fix copyright dates (its 2017 now!)
- Use * to force some args to be keyword-only
- Make some returns explicit
- Add sql to LOGGER_NAMES
- Add a comment to explain the sql escape statement
2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
3c676f9562 Fix pylint/flake8 errors for SQL work. 2017-06-19 07:44:11 -04:00
Ryan Roden-Corrent
a050cb94f6 Report sqlite version with --version. 2017-06-19 07:44:11 -04:00
Florian Bruhin
df0bd23d79 Make pylint shut up about test_version 2017-06-19 13:42:19 +02:00
Ryan Roden-Corrent
c6645d47ba Remove newest_slice and StatusBar._option.
newest_slice is no longer needed after the completion refactor. Now that
history is based on the SQL backend, LIMIT is used instead.

StatusBar._option is not used, though I'm not sure why vulture only caught it
now.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
fc5fd6096a Revert "Initialize SQL for two failing tests."
This reverts commit 386e227ce7534f1e427db7ba6d4e53dc153a49f3.
The problem was really state leakage, initializing sql for these tests isn't
necessary.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
788babbb61 Further prevent state leakage from test_init.
test_history.test_init also leaked state by leaving the instantiated history as
the parent of the QApp, which was causing test_debug to fail because it was
trying to dump the history object left from test_history.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
d658378af3 Eliminate test interference from webkit history.
Initializing the qtwebkit history backend left some global state that was
leaking into other tests.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
490250f5be Initialize SQL for two failing tests.
test_selectors and test_get_all_objects were running fine on my machine, but
for some reason is failing with "Driver not loaded" on Travis. Let's try
initializing SQL and see what happens.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
be07107b1c Fix end2end completion tests for SQL backend.
Change the logging to report the completion function name and have the end2end
tests check for this.

Remove the tests for realtime completion, as it was decided this is not an
important feature and the code is much simpler without it.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
ffd044b52b Fix pylint and flake8 for SQL work.
Vanity commit. This also touches up a few comments.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
ea9217a61f Fix qutescheme for new SQL backend.
The qute://history and qute://bookmarks handlers were added during my work, and
had to be adapted to the SQL-based history backend.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
0e650ad719 Return namedtuples from SqlTable.
Instead of returning a regular tuple and trying to remember which index maps to
which field, return named tuples that allow accessing the fields by name.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
d89898ef7d Implement delete_cur_item for sql completion.
This re-enables bookmark/quickmark deletion for url completions via the new SQL
interface.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
fe80878788 Implement custom where clause in SQL.
Allow categories to specify a WHERE clause that applies in addition to the
pattern filter. This allows the url completion model to filter out redirect
entries.

This also fixed the usage of ESCAPE so it applies to all the LIKE statements.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
9f27a9a5d7 Implement column selectors for sql completion.
A SQL completion category can now provide a customized column expression for
the select statement. This enables the url model to format timestamps, as well
as rearrange the name and url in the quickmark section.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
3f6f03e325 Respect web-history-max-items with SQL.
Use a LIMIT with the sql competion model to limit history entries as the old
completion implementation did.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
df995c02a3 Get rid of varargs in sql.run_query.
Things are clearer when just passing a list.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
b70d5ba901 Use QSqlQueryModel instead of QSqlTableModel.
This allows setting the query as a QSqlQuery instead of a string, which allows:

- Escaping quotes
- Using LIMIT (needed for history-max-items)
- Using ORDER BY (needed for sorting history)
- SELECTing columns (needed for quickmark completion)
- Creating a custom select (needed for history timestamp formatting)
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
52d7d1df0c Use SQL completer for quickmarks/bookmarks. 2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
839d49a8ac Fix up pylint/flake8 for completion revamp. 2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
b381148e06 Unittest CompletionView.completion_item_del.
There were no unit tests for this and the various ways it can fail, and I'm
about to screw with it a bit.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
a774647c26 Get test_models mostly working again.
- Adjust _check_completions to work for CompletionModel and SqlCompletionModel
- Move sql initialization into a reusable fixture
- Remove the bookmark/quickmark/history stubs, as they're now handled by sql
- Disable quickmark/bookmark model tests until their completion is ported to
  sql.
- Disable urlmodel tests for features that have to be implemented in SQL:
    - LIMIT (for history-max-items)
    - Configurable column order (for quickmarks)
    - Configurable formatting (for timestamp-format
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
3005374ada Simplify sorting logic in sortfilter.
For URL completion, time-based sorting is handled by the SQL model.
All the other models use simple alphabetical sorting. This allowed cleaning up
some logic in the sortfilter, removing DUMB_SORT, and removing the
completion.Role.sort.

This also removes the userdata completion field as it was only used in url
completion and is no longer necessary with the SQL model.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
acea0d3c67 Use SQL completion for the open command.
Now that history, bookmark, and quickmark storage are SQL-backed, use
a sql completion model to serve url completions.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
6e1ea89ca1 Implement SQL completion model.
This model wraps one or more SQL tables and exposes data in a tiered
manner that can be consumed by the tree view used for completion.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
9477a2eeb2 Use SQL for history storage.
The browser-wide in-memory web history is now stored in an in-memory sql
database instead of a python dict. Long-term storage is not affected, it
is still persisted in a text file of the same format.

This will set the stage for SQL-based history completion.
See #1765.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
f43f78c40f Implement SQL interface.
When qutebrowser starts, it creates an in-memory sqlite database. One
can instantiate a SqlTable to create a new table in the database. The
object provides an interface to query and modify the table.

This intended to serve as the base class for the quickmark, bookmark,
and history manager objects in objreg. Instead of reading their data
into an in-memory dict, they will read into an in-memory sql table.

Eventually the completion models for history, bookmarks, and quickmarks
can be replaced with SqlQuery models for faster creation and filtering.

See #1765.
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
3b30b42211 Remove completion.instances, usertypes.Completion.
The new completion API no longer needs either of these. Instead of
referencing an enum member, cmdutils.argument.completion now points to
a function that returnsthe desired completion model.
This vastly simplifies the addition of new completion types. Previously
it was necessary to define the new model as well as editing usertypes
and completion.models.instances. Now it is only necessary to define a
single function under completion.models.

This is the next step of Completion Model/View Revamping (#74).
2017-06-19 07:42:12 -04:00
Ryan Roden-Corrent
08bb3f4f19 Implement completion models as functions.
First step of Completion Model/View revamping (#74). Rewrite the
completion models as functions that each return an instance of a
CompletionModel class.

Caching is removed from all models except the UrlModel. Models other
than the UrlModel can be generated very quickly so caching just adds
needless complexity and can lead to incorrect results if one forgets to
wire up a signal.
2017-06-19 07:42:12 -04:00
Florian Bruhin
4ae8e247d0 Show 'legacy QtWebKit' in version output 2017-06-19 10:24:33 +02:00
Florian Bruhin
df6c4c6e73 Fix earlyinit.qt_version issues 2017-06-19 09:42:49 +02:00
Florian Bruhin
9b5227b987 Improve test_version output 2017-06-19 09:06:18 +02:00
Florian Bruhin
fdba676933 Move version.qt_version() to earlyinit
Importing version in earlyinit is a bad idea, as it already pulls in a lot of
stuff we don't want.
2017-06-19 08:57:29 +02:00
Florian Bruhin
9cc688ea2b Fix initial tab sizing with vertical tabbar 2017-06-16 23:00:16 +02:00
Iordanis Grigoriou
e14477375b Fix typo in test 2017-06-16 12:41:30 +02:00
Iordanis Grigoriou
f28d523225 Select the last focused tab when running ':tab-focus <current tab number>' 2017-06-16 12:28:56 +02:00
Florian Bruhin
54154e2434 Mark :stop test as flaky
Looks like the requests sometimes aren't updated, but I have no idea why.
2017-06-12 18:15:05 +02:00
Florian Bruhin
38d54cb112 Stabilize history tests
Get current URL right away in :view-source, and wait until source is shown in
the test.
2017-06-12 18:13:17 +02:00
Florian Bruhin
57fbfbd606 Set an initial window size for background tabs
When we open a background tab, it gets a hardcoded size (800x600 or so) because
it doesn't get resized by the layout yet.

By resizing it to the size it'll actually have later, we make sure scrolling to
an anchor in an background tab works, and JS also gets the correct size for
background tabs.

Fixes #1190
Fixes #2495
See #1417
2017-06-11 17:48:01 +02:00
Florian Bruhin
ad260366ef Remove ":messages without messages" test
We can never know for sure there aren't any messages - for example, on Travis we get a message about XDG_RUNTIME_DIR being unset on Qt 5.9.
2017-06-09 11:04:21 +02:00
Florian Bruhin
250da212cd Adjust tests for new QtWebKit-NG 2017-06-09 10:28:41 +02:00
Florian Bruhin
ddf4521305 Fix :messages tests 2017-06-08 14:16:30 +02:00
Florian Bruhin
8df0b063be Get rid of utils.unused because it's unused 2017-06-06 17:04:21 +02:00
Florian Bruhin
a5af98b063 Add a few tests for qutebrowser.is_ignored_chromium_message 2017-06-06 16:26:01 +02:00
Florian Bruhin
cb03fb7d80 Make process/thread ID optional for Chromium messages
Looks like at least on Travis they're not always there.
2017-06-06 16:18:53 +02:00
Florian Bruhin
6d175fbb4b Get rid of configtypes.WebKitBytes 2017-06-06 16:17:44 +02:00
Florian Bruhin
998f93dfd3 tests: Properly parse Chromium logging messages
Closes #2519
2017-06-06 10:01:45 +02:00
Florian Bruhin
73249d8abe Adjust ignored Chromium messages for Qt 5.9 debug builds 2017-06-05 21:57:53 +02:00
Florian Bruhin
27ea9a6954 Fix test_debug_trace 2017-06-05 20:17:39 +02:00
Florian Bruhin
eac284d880 Skip test_opengl_vendor without QtOpenGL
The test fails on Ubuntu Xenial because QtOpenGL is not installed.
This isn't a problem with real-life usage though, as we only call it with
QtWebEngine, and that ensures that QtOpenGL is available.
2017-05-31 10:29:46 +02:00
Florian Bruhin
912cea6e7d Improve version.opengl_vendor()
On Windows with OpenGL ES we can't use versionFunctions, so we just return None
early.

Also, this fixes some lint and adds a smoke test.
2017-05-30 19:23:27 +02:00
Florian Bruhin
eb9a0c01ba Set backend-warning-shown in test_invocations 2017-05-30 16:49:39 +02:00
Florian Bruhin
4cb82af11e Add QUTE_FAKE_OS_RELEASE envvar 2017-05-30 07:37:10 +02:00
Florian Bruhin
7186dcb98f Send crash reports to private pastebin
Fixes #481
2017-05-29 09:20:10 +02:00
Florian Bruhin
b32223acc7 Only inherit private mode when window is set
Otherwise, everything calling _open in a private window (like :quickmark-load)
will open a new window.
2017-05-29 06:37:28 +02:00
Florian Bruhin
8bd6974042 Open a window with an empty session
With general -> save-session on and only private windows open, we can easily get
a session file with "windows: []" in it. If we loaded such a file, we got no
windows at all when qutebrowser started.

Fixes #2664
2017-05-28 11:15:51 +02:00
Florian Bruhin
0f3a17ae88 Fix raw string prefix 2017-05-23 10:09:06 +02:00
Florian Bruhin
ea2fbc427a tests: Use match= for pytest.raises 2017-05-23 09:36:00 +02:00
Florian Bruhin
af7923de4d tests: Use pytest.param 2017-05-23 08:08:46 +02:00
Florian Bruhin
c32c01ffc0 Merge commit '419793c0b9ff4f293babea7623dcaf4787bbaa35' 2017-05-22 07:55:44 +02:00
Jay Kamat
00f001729b
Fix undo with pinned tabs
Add tests for undo with a pinned tab
Add tests for clone with a pinned tab
2017-05-21 21:03:33 -07:00
Florian Bruhin
aa8e6c8d17 Add parsed distribution to version info
Fixes #2369
2017-05-20 23:26:00 +02:00
Florian Bruhin
fe145b66c1 Add a version.distribution()
See #2369
2017-05-20 23:26:00 +02:00
Florian Bruhin
964b06bf7e Fix shadowed import 2017-05-19 09:26:48 +02:00
Florian Bruhin
f66c1a0e44 Merge commit '3d9729839d6d9b5ee5d38afdf6ddf410dfca2027' into abbradar/pac-fix 2017-05-19 08:36:39 +02:00
Florian Bruhin
c4fb2bc609 Fix URL/renderer crash tests with Qt 5.9
The behavior in Qt changed there (in a good way), so we need to adjust the tests
accordingly.

Fixes #2514
2017-05-19 08:10:17 +02:00
Nikolay Amiantov
3d9729839d Fix crash on PAC evaluation error 2017-05-18 16:54:49 +03:00
Florian Bruhin
e3f5e8ca9a Disable local storage test for now
It also seems to run unstable on Windows (AppVeyor), so we probably need to wait
for qutewm to run it.
2017-05-17 20:38:30 +02:00
Florian Bruhin
00a7a0cee6 Reorganize pylint config
This removes various stuff we don't need anymoe, and also re-enables and fixes
the import order check.
2017-05-17 20:20:12 +02:00
Florian Bruhin
12520bf4ba Install PyQt from PyPI for pylint
This means we can be sure to have QtWebEngine available and won't have QtWebKit.
2017-05-17 19:08:59 +02:00
Florian Bruhin
dd15b4b953 Fix local storage test
Looks like it needs a window manager to run properly...
2017-05-17 13:38:21 +02:00
Florian Bruhin
e0ff2d98fe Test for private browsing differently
In a48ea597d0 we fixed settings in private
QtWebEngine windows.

However, this means we also enable local storage for private windows, which was
disabled in QtWebEngine by default:

4ef5831a39 (diff-44ac7d27348388501944f6a8e2e67d8dR207)

It should be safe to enable it, as we get the same behavior as in Chromium, i.e.
a working local storage which entirely lives in RAM.

This also makes those tests work on QtWebKit-NG, presumably because private
browsing for cookies is implemented there.

It also adds a test to at least check whether local storage is isolated from
non-private tabs. I tried writing a test which ensures nothing lands on the hard
disk, but due to QTBUG-52121 this might not happen at all:

https://bugreports.qt.io/browse/QTBUG-52121
2017-05-17 09:42:28 +02:00
Florian Bruhin
a48ea597d0 Set websettings on each profile's setting object
Turns out QWebEngineSettings.globalSettings() only sets things on the default
profile. We now get everything from the default profile settings, but set it on
both the default and the private profile.

Fixes #2638

(cherry picked from commit b11a4388cd10b6ff2fd917fca689ebdc50d581ae)
2017-05-17 06:31:51 +02:00
Jay Kamat
5e3c68530a
Regenerate documentation 2017-05-16 21:03:33 -07:00
Jay Kamat
1142a19de9
Add (pinned) keyword to 'following tabs open' tests 2017-05-16 20:16:43 -07:00
Florian Bruhin
407537dbe6 tests: Wait until window is closed after :close
If we don't wait here, we might end up running the subsequent commands (like
:command-history-prev) on the old window while it's still closing, causing an
exception at least on AppVeyor:

    Traceback (most recent call last):
      File "C:\projects\qutebrowser\qutebrowser\app.py", line 110, in <lambda>
        target_arg=target_arg))
      File "C:\projects\qutebrowser\qutebrowser\app.py", line 265, in process_pos_args
        win_id = mainwindow.get_window(via_ipc, force_tab=True)
      File "C:\projects\qutebrowser\qutebrowser\mainwindow\mainwindow.py", line 89, in get_window
        window.setWindowState(window.windowState() & ~Qt.WindowMinimized)
    RuntimeError: wrapped C/C++ object of type MainWindow has been deleted
2017-05-16 15:46:20 +02:00
Florian Bruhin
9408babef5 Also remove test for removed assertion 2017-05-16 12:56:25 +02:00
Florian Bruhin
d0dd1644af Set user agent correctly on QtWebEngine 2017-05-16 06:46:45 +02:00
Florian Bruhin
086139110d Merge branch 'new-private-browsing' 2017-05-16 06:32:15 +02:00
Florian Bruhin
c4307c9f03 Fix lint 2017-05-15 11:07:43 +02:00
Florian Bruhin
3f8b9fb1a5 tests: Improve matching of exceptions to show verbose output
In some situations we can get a TypeError without a stack
2017-05-15 11:07:43 +02:00
Florian Bruhin
3c3f695af4 Fix things pointed out in reviews 2017-05-15 11:07:43 +02:00
Florian Bruhin
8993667479 Remove unused imports 2017-05-15 11:02:29 +02:00
Florian Bruhin
c3ac3ccdee Add tests for new private browsing 2017-05-15 11:02:29 +02:00
Florian Bruhin
9805b43c85 Handle private browsing in sessions 2017-05-15 11:02:29 +02:00
Florian Bruhin
157a0af908 Hopefully fix failing history test on old Qt 2017-05-15 10:29:13 +02:00
Florian Bruhin
5b1d35bef9 Don't add data: URLs to history 2017-05-15 09:04:16 +02:00
Jay Kamat
17169812be
Misc cleanup and fixes 2017-05-14 00:21:51 -07:00
Jay Kamat
a5eb3e27f8
Fix some bugs in session saving test case 2017-05-12 17:48:38 -07:00
Jay Kamat
2ae1bfc033
Keep pinned tabs in place rather than moving them. 2017-05-12 13:09:22 -07:00
Jay Kamat
3e3f4b4164
Add :tab-only tests for --force 2017-05-12 11:06:17 -07:00
Jay Kamat
66dfb1b1c9
Fix a bug with titles not being refreshed when pinning tabs 2017-05-12 09:53:25 -07:00
Florian Bruhin
65952ca290 Fix webkitelem tests 2017-05-12 13:57:33 +02:00
Florian Bruhin
9e2aa65c02 Remove webelem.Group.prevnext
Apart from checking for buttons with an href attribute (which made no sense at
all and should never return any element) this was identical to
webelem.Group.links.
2017-05-12 09:41:12 +02:00
Florian Bruhin
203a5dff74 Get rid of webelem.FILTERS
There's actually no good reason to filter javascript links as we might want to
click them (or copy their URL) just like any other link - this fixes #2404.

With that being gone, we don't need FILTERS at all anymore, as we can check for
existence of the href attribute in the CSS selector instead.
2017-05-12 09:41:12 +02:00
Jay Kamat
4c28487fd0
Warn user if pinned tab is closed via tab-only 2017-05-11 14:30:45 -07:00
Jay Kamat
cb654225fd
Add a test case for loading/saving pinned tabs in sessions 2017-05-11 14:05:25 -07:00
Jay Kamat
3317834b36
Fix a bug where pinned tabs were occasionally miscounted
Example case: :tab-only. This should cover other cases, but currently those
cases (such as :tab-only) do NOT have a warning message when popping up.
2017-05-11 13:28:26 -07:00
Jay Kamat
725bafea54
Merge branch 'master' into jay/pintab 2017-05-10 23:51:33 -07:00
Florian Bruhin
c6e31391de Fix most tests/lint 2017-05-10 09:19:24 +02:00
Florian Bruhin
1c50377c0a Initial work on new private browsing 2017-05-10 07:00:21 +02:00
Florian Bruhin
822623f2ed Finally update copyrights... 2017-05-09 21:37:03 +02:00
Jay Kamat
a3d41c0467
Refactor search method of AbstractBrowserTab into a field 2017-05-09 00:24:13 -07:00
Jay Kamat
02f79c2990
Add tests for manual selection 2017-05-09 00:11:25 -07:00
Jay Kamat
5ba81e3611
Add tests for follow_selected 2017-05-08 22:32:53 -07:00
Florian Bruhin
8052249b1b Make check_coverage.py work with coverage 4.4
With coverage 4.4, the source name (qutebrowser/) is not added to the filename
anymore. To adjust for that, we remove qutebrowser/ from all paths, and also
make sure to remove it from what coverage returns (in case someone is running an
older version).
2017-05-09 06:13:35 +02:00
Florian Bruhin
789aebd742 Merge commit '120379dd217d8daaa6b48cb21c8cb3de7679bbec' into rcorre/benchmark_history 2017-05-03 23:15:36 +02:00
Florian Bruhin
90b0af97ce Improve serialization crash check
It now works correctly with view-source URLs and is disabled on Qt 5.9.

Fixes #2289
See #2458
2017-05-03 23:15:17 +02:00
Florian Bruhin
ea2d5e97e2 Disable serialization crash check on Qt 5.9 2017-05-03 21:31:09 +02:00
Ryan Roden-Corrent
120379dd21 Benchmark url completion.
This benchmark simulates what I expect to be the most common use-case for url
completion: opening completion and entering several letters.
2017-05-03 07:43:02 -04:00
Florian Bruhin
7c6981e512 Remove unused imports 2017-05-02 10:41:51 +02:00
Florian Bruhin
d5c5d09b18 Hopefully stabilize test_version
When using QuteProcess here, we fight with it over who can read the output.
Just use a raw QProcess instead.
2017-05-02 09:12:06 +02:00
Florian Bruhin
7b4ab901e9 tests: Fix Chromium message matching 2017-05-02 08:24:57 +02:00
Florian Bruhin
bffdea6719 Read qWebKitVersion in qtutils.is_webkit_ng.
This means we need to try and import qWebKitVersion in qtutils, but better there
than at every place which calls it.
2017-04-28 21:36:02 +02:00
Florian Bruhin
8101fe99a8 Fix starting with Python 2
Fixes #2567
2017-04-28 20:51:38 +02:00
Florian Bruhin
421aa0d319 Also try harder to get text content 2017-04-28 19:11:02 +02:00
Florian Bruhin
c8090b5388 Don't wait for click message in webelem tests
Looks like we get this sometimes:

----> Waiting for 'Clicked non-editable element!' in the log
14:02:14.976 DEBUG    webview    webkittab:find_at_pos:618 Hit test result element is null!
14:02:14.976 DEBUG    mouse      mouse:_mousepress_insertmode_cb:149 Got None element, scheduling check on mouse release
14:02:14.977 DEBUG    mouse      webview:mousePressEvent:299 Normal click, setting normal target
14:02:14.978 DEBUG    mouse      mouse:mouserelease_insertmode_cb:173 Element vanished!
2017-04-28 17:29:19 +02:00
Florian Bruhin
20da495376 Add missing file 2017-04-28 15:22:29 +02:00
Florian Bruhin
a2c8e093f4 Move webelement checks to javascript.feature 2017-04-28 15:16:36 +02:00
Florian Bruhin
6458c692cb Improve JS value type checks 2017-04-28 15:15:32 +02:00
Florian Bruhin
0c653c4703 Handle elem.className in webelem.js 2017-04-28 14:48:30 +02:00
Florian Bruhin
513f83d446 Try harder to get tag name from element
This could happen for any of the attributes, but for tagName this actually
happens in the wild... Since elem.tagName is equal to elem.nodeName we just try
to use this.

Fixes #2569
2017-04-28 14:48:30 +02:00
Florian Bruhin
d8bfa6d6b7 Merge commit '6549fd84ce461d3098c13818219df4e4bfd6b444' 2017-04-27 21:15:09 +02:00
Florian Bruhin
d62ebdb926 Make most of search BDD tests work with QtWebEngine 2017-04-27 21:02:26 +02:00
Florian Bruhin
4cd977cab6 Fix zero handling in qflags_key 2017-04-27 20:14:51 +02:00
Niklas Haas
6549fd84ce
Add tabs->favicon-scale setting
This allows users to change the size of the favicon independently from
the size of the font/tab, in order to adjust the balance between
favicons and text. The drawing code is also adjusted to place the icon
relative to the text center, rather than the text top.

Works as expected even for values of 0.0 (which is equivalent to hiding
the favicon completely).

Closes #2549.
2017-04-27 08:53:51 +02:00
Florian Bruhin
046401c489 Clean up search.feature 2017-04-27 08:20:55 +02:00
Florian Bruhin
11c026bf4c Reenable QtWebKit cache with Qt 5.9.
This was fixed here:
https://codereview.qt-project.org/#/c/190818/

See #2427
2017-04-24 12:27:00 +02:00
Florian Bruhin
1539301d64 Fix test coverage for statusbar.url 2017-04-24 08:41:29 +02:00
Florian Bruhin
52f31ed15c Rename urlutils.safe_display_url to safe_display_string 2017-04-24 07:49:12 +02:00
Florian Bruhin
b632fe3285 Fix invalid URL handling in statusbar 2017-04-24 07:47:58 +02:00
Florian Bruhin
195d0ea207 Show Punycode URL for IDN pages in addition to decoded one
This helps when Unicode homographs are used for phishing purposes.
Fixes #2547
2017-04-24 06:58:41 +02:00
Florian Bruhin
a1de313aa3 Add qapp to test_proxy_from_url_pac 2017-04-23 23:10:29 +02:00
Ryan Roden-Corrent
6151b43c47 Fix qute_history benchmark.
This benchmark was running very quickly due to an improper setup.
The current history implementation expects that a newly inserted entry must
be more recent than any existing entries and sorts according to this
assumption.

The benchmark test inserts increasingly older entries, breaking this invariant.
When run in the benchmark, the qute://history/data implementation would
see an entry older than the oldest time in the time window and would
immediately return with a single "next" entry.

This patch inserts data in an order that mantains history's invariant and adds
a sanity-check at the end of the test. It does not check for the exact length
as not all entries will be within the time window. The length will be some
values <= 100000, the check just ensures that there is at least something more
than a "next" entry.

Before:
---------------------------------------------- benchmark: 1 tests ----------------------------------------------
Name (time in us)                  Min      Max    Mean  StdDev  Median     IQR  Outliers(*)  Rounds  Iterations
----------------------------------------------------------------------------------------------------------------
test_qute_history_benchmark     9.3050  21.9250  9.6143  0.2454  9.5880  0.1070      230;360    9930           1
----------------------------------------------------------------------------------------------------------------

After:
-------------------------------------------------- benchmark: 1 tests -------------------------------------------------
Name (time in ms)                    Min       Max      Mean  StdDev    Median     IQR  Outliers(*)  Rounds  Iterations
-----------------------------------------------------------------------------------------------------------------------
test_qute_history_benchmark     220.7040  223.1900  221.7536  1.1070  221.1939  1.8803          1;0       5           1
-----------------------------------------------------------------------------------------------------------------------
2017-04-17 12:15:49 -04:00
Florian Bruhin
db8b6d3e68 Add test for QNetworkReply.abort 2017-04-17 16:02:57 +02:00
Florian Bruhin
ad9e82b91e Adjust bookmark tests 2017-04-16 21:13:01 +02:00
Florian Bruhin
1d0f187fab Adjustments for new pylint version 2017-04-13 18:22:16 +02:00
Florian Bruhin
4a480e6f5f Ignore Chromium NETLINK message 2017-04-12 13:24:10 +02:00
Fritz Reichwald
68c655bd9c Add period at end of docstring to make flake happy 2017-04-12 10:21:03 +02:00
Fritz Reichwald
b00c1dc906 Add docstring 2017-04-12 09:23:29 +02:00
Fritz Reichwald
ff767dd965 Add neccessary metadata to py script 2017-04-12 08:47:39 +02:00
Fritz Reichwald
c38dc95c23 Add posix to stdin test beacause the py script fails on windows 2017-04-12 07:59:40 +02:00
Fritz Reichwald
b784ddeddd Also test stdin close for detached start 2017-04-12 07:40:11 +02:00
Fritz Reichwald
590a9b4f78 Indent with spaces and minor changes 2017-04-12 07:32:40 +02:00
Fritz Reichwald
424d0aec5a change test_stdinclose.py to stdinclose.py 2017-04-12 07:31:24 +02:00
Fritz Reichwald
75f8d2a1d1 Test if stdin gets closed when starting QProcess 2017-04-12 06:54:39 +02:00
Florian Bruhin
fc37223d1b Regenerate docs properly for qute:help test 2017-04-09 11:36:13 +02:00
Florian Bruhin
778832a813 Set path when redirecting qute:* URLs
Fixes #2513
2017-04-08 23:04:10 +02:00
Florian Bruhin
28e6158a04 Stabilize some tests with Qt 5.9 QtWebEngine 2017-04-08 20:38:23 +02:00
Florian Bruhin
6051f93c02 Avoid checking for scroll position in macro tests
This makes them simpler and more stable.
2017-04-08 19:54:30 +02:00
Florian Bruhin
e23318fe91 Mark failing test as flaky on QtWebEngine
It consistently fails on Qt 5.9 now while waiting the page to be scrolled to
0/20, but I can't figure out why that is happening.

See #2514, #2410
2017-04-08 19:29:46 +02:00
Florian Bruhin
a081d4184d tests: Adjust percent-encoding tests for Qt 5.9 changes
See #2514
2017-04-08 19:25:55 +02:00
Florian Bruhin
c23e4b1c5f tests: Allow @qt<... marker for BDD tests 2017-04-08 19:20:53 +02:00
Florian Bruhin
4ec5700cbf Redirect qute:foo to qute://foo
Before, we just returned the same data for both, but then we'll run into
same-origin restrictions as qute:history and qute:history/data are not the same
host.
2017-04-06 21:18:58 +02:00
Florian Bruhin
760dca475e Merge commit 'be254be13a61171d4109224450db9e67d1076080' into imransobir/fix-webkit-history 2017-04-06 20:34:49 +02:00
Martin Tournoij
e7755f5d9f
Add :debug-log-filter none
This allows us to clear any filters. Useful for users, and needed for
the tests.
2017-04-04 20:51:14 +01:00
Martin Tournoij
200e439a30
Fix crash of :debug-log-filter when --filter wasn't given
There was no `LogFilter`. The fix is to always initialize a
`LogFilter()` with `None`. as the "filter".

Fixes #2303.
2017-04-04 17:45:23 +01:00
Florian Bruhin
0de3b5460e Only disable the cache on Qt 5.7.1
I ended up bisecting it, and https://codereview.qt-project.org/#/c/153977/
causes this, which is not in 5.7.0.
2017-04-04 08:24:50 +02:00
Florian Bruhin
2eb365b146 Also disable cache on Qt 5.7 2017-04-03 20:22:54 +02:00
Florian Bruhin
b6642e66fa Fix cache tests on Qt 5.8 2017-04-03 19:41:37 +02:00
Florian Bruhin
2c3fcda18e Remove qtutils.ensure_not_null
It's not used anymore.
2017-04-03 09:32:13 +02:00
Martin Tournoij
7f13c9a3c3
Relax commandline parsing a bit
Problem 1: Entering a command of `:::save` gives an error.
Problem 2: Entering a command of `:save\n` gives an error.

Both scenarios may seem a bit silly at first, but I encountered both by
copy/pasting a command:

1. Enter `:` in qutebrowser.
2. Copy a full line from a terminal starting with `:`.
3. You will now have both of the above problems.

Solution: Trim all whitespace and `:` of a command. This is also what
Vim does, by the way.
2017-03-31 17:14:11 +01:00
Florian Bruhin
05059b4a5e Merge commit '8af5cfb4ac9e6d928cfeb0522fa729ba616df70a' 2017-03-31 17:47:34 +02:00
Martin Tournoij
8af5cfb4ac
Add a modeline to all the *.feature files
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.
2017-03-31 16:16:31 +01:00
Florian Bruhin
189c1721af Don't wait for download.bin in windows downloads 2017-03-31 14:46:29 +02:00
Florian Bruhin
6c3abadb32 Stabilize :repeat-command test 2017-03-31 13:05:34 +02:00
Florian Bruhin
004eb742f6 Stabilize test_guiprocess 2017-03-31 13:05:34 +02:00
Florian Bruhin
43155b0cc8 Stabilize history.replaceState tests 2017-03-31 13:05:34 +02:00
Florian Bruhin
eb202d761c Stabilize dumping bookmarks test
For some reason, with QtWebEngine on Windows, sometimes the :debug-dump-page
callback does not get called if we try to dump the same page again...
2017-03-31 13:05:34 +02:00
Florian Bruhin
1eda2b0ea4 Fallback to clipboard when primary selection is unsupported 2017-03-31 13:05:34 +02:00
Florian Bruhin
2884277dbd Fix Shift-Insert without it being supported 2017-03-31 13:05:34 +02:00
Florian Bruhin
dc405ec3a8 Skip QtWebEngine SSL tests on Windows 2017-03-31 13:05:34 +02:00
Florian Bruhin
a4619d07db tests: Wait until about:blank is loaded 2017-03-31 13:03:40 +02:00
Florian Bruhin
bf66bb221f Ignore getrlimit error during tests 2017-03-31 13:03:40 +02:00
Florian Bruhin
708b46d6c0 Fix text with empty primary selection 2017-03-31 13:03:40 +02:00
Florian Bruhin
4d49d9da09 Skip renderer process crash test on Windows 2017-03-31 13:03:40 +02:00
Florian Bruhin
c551c62c27 Stabilize JS tests 2017-03-31 13:03:40 +02:00
Florian Bruhin
dc0a782839 Run python in hints tests 2017-03-31 13:03:40 +02:00
Florian Bruhin
2c4e549d80 Close temporary download file for QtWebEngine
Otherwise, Chromium won't be able to write on it on Windows - and we only
need the name anyways.
2017-03-31 13:03:18 +02:00
Florian Bruhin
edb197b028 Make waiting for download prompt more robust 2017-03-31 13:03:18 +02:00
Florian Bruhin
e28eabe5eb Add marker for #2478 2017-03-31 13:03:17 +02:00
Florian Bruhin
5a16133685 Fix prompt with SSL error test 2017-03-31 13:03:17 +02:00
Florian Bruhin
a55d1b1ee8 Save old socket for IPC
At least on Windows with Qt 5.8, we get readyRead notifications *after*
disconnect...
2017-03-31 13:03:17 +02:00
Florian Bruhin
3b351d9066 Run more invocation tests with QtWebEngine 2017-03-31 06:18:43 +02:00
Florian Bruhin
6939f81de7 Merge commit '563a5431e35831cb0a8c418835c54d0264d92c78' into Kingdread/windows-drive-cwd 2017-03-30 10:48:39 +02:00
Florian Bruhin
6a144ef7bd Merge branch 'Kingdread/windows-drive-cwd' 2017-03-30 10:41:58 +02:00
Daniel Schadt
186eab8eb1 use message.error instead of a tooltip 2017-03-29 17:07:53 +02:00
Florian Bruhin
93a12797aa Fix quteprocess tests with Python 3.6 on Windows
Values smaller than 86400 would result in a negative unsupported timestamp and
thus throw ValueError in Python 3.6
2017-03-28 20:53:11 +02:00
Florian Bruhin
fe81f153cf tests: Ignore "Unable to locate theme engine" messages 2017-03-28 20:41:23 +02:00
Imran Sobir
4a4c7b96d1 Add nojs history page. 2017-03-28 18:34:47 +05:00
Florian Bruhin
5a4d11be68 Fix lint 2017-03-27 07:16:10 +02:00
Florian Bruhin
a8bc531eee Add a test for :open with -s 2017-03-27 07:09:55 +02:00
Florian Bruhin
37d22a7cfd Merge commit '9dccd00ebb2483fd0bb6c6447f57c76a4b40d335' into Kingdread/windows-drive-cwd 2017-03-26 22:14:47 +02:00
Florian Bruhin
39b09f7822 Improve messageview hide code 2017-03-26 15:03:44 +02:00
Florian Bruhin
2181e1ddc4 Merge commit '13677d3563dbd01ae188a2b1a79c7dd840a5dc5e' into pkill-nine/upstream-master-close_message_on_click 2017-03-26 14:59:08 +02:00
pkill9
13677d3563 Add mouse back button to click test. 2017-03-25 21:16:51 +00:00
pkill9
bf2493c1c4 Add test. 2017-03-25 20:06:58 +00:00
Daniel Schadt
a011034ff7 fix tests 2017-03-24 13:21:09 +01:00
Daniel Schadt
df83f7aa99 also add path transformations to :download 2017-03-24 12:30:29 +01:00
Daniel Schadt
07b3a7db7c add integration tests for reserved filenames 2017-03-24 11:57:05 +01:00
Daniel Schadt
3da21a32d2 treat E: and E:\ the same when downloading
Fixes #2305
2017-03-23 18:16:15 +01:00
Ryan Roden-Corrent
a68f997d95 Make keyhint delay configurable.
ui.keyhint-delay controls the time from starting a keychain to showing the
keyhint dialog. Resolves #2462.
2017-03-22 21:50:26 -04:00
Daniel Schadt
6319363614 add a test for downloading a 500 inline attachment 2017-03-22 13:38:03 +01:00
Florian Bruhin
3fbb9a14e0 Fix continuing a search after clearing it
Fixes #2438
2017-03-20 21:34:33 +01:00
Florian Bruhin
4b6b9c2d21 Add missing file 2017-03-20 11:28:01 +01:00
Florian Bruhin
3e2ba32240 Fix retrying downloads with QtWebEngine
Fixes #2298
2017-03-20 09:35:53 +01:00
Florian Bruhin
7652b6ae03 Merge commit '724e6b29c38a55f722f17997379f1ebe190fa6db' 2017-03-20 09:11:47 +01:00
thuck
20d058741e Merge branch 'pintab' of https://github.com/thuck/qutebrowser into pintab 2017-03-19 14:43:36 +01:00
thuck
650b1de3b6 Merge branch 'master' of https://github.com/The-Compiler/qutebrowser into pintab 2017-03-19 14:26:48 +01:00
Florian Bruhin
069f908a61 Get rid of run_pytest.py
Fixes #2452
2017-03-18 21:03:52 +01:00
Imran Sobir
fb97c6dffc Send history item atime in milliseconds. 2017-03-16 12:03:40 +05:00
Florian Bruhin
ecec836111 Fix adblock UTF-8 test on Windows 2017-03-13 07:01:13 +01:00
Imran Sobir
a1bec12b2e Ensure qute:javascript throws QuteSchemeOSError on 404. 2017-03-09 22:07:55 +05:00
Imran Sobir
50bca33618 Use OSError instead of IOError. 2017-03-09 21:47:12 +05:00
Florian Bruhin
0b5838f9fd Fix BDD version check operators 2017-03-08 20:56:30 +01:00
Florian Bruhin
4278cd5e3e Remove unused operator imports 2017-03-08 19:10:29 +01:00
Florian Bruhin
7d7f5350c5 Add test for utils.get_clipboard with empty clipboard 2017-03-08 09:33:36 +01:00
Florian Bruhin
7ba01e6764 Get rid of utils.actute_warning
Only Ubuntu Trusty still uses Qt < 5.3, and the issue seems to be fixed there by
now.
2017-03-08 09:25:46 +01:00
Florian Bruhin
f86f9cd92a Refactor qtutils.version_check API
Fixes #2423
2017-03-08 08:41:18 +01:00
Florian Bruhin
dfb4374ae1 Release v0.10.1 2017-03-08 06:26:22 +01:00
Florian Bruhin
7c9d004bbc Fix compiled version check
Fixes #2412
2017-03-07 22:05:17 +01:00
Florian Bruhin
ace4006179 Stringify py.path.local in adblock tests 2017-03-07 20:36:50 +01:00
Florian Bruhin
c45019f0a0 Handle invalid UTF8 data in hostblock lists
Fixes #2301
2017-03-07 20:25:13 +01:00
Florian Bruhin
d42dff67f2 Reorder initialization
marcos.init() really belongs into _init_modules, and we need to do _process_args
after everything has been initialized.

Fixes #2408.
2017-03-07 06:46:35 +01:00
Florian Bruhin
5fb6d26465 Stabilize some tests 2017-03-06 06:28:26 +01:00
Florian Bruhin
fa89fff668 Stabilize session tests 2017-03-05 15:15:12 +01:00
Florian Bruhin
199a2ffe27 Remove unneeded deleted attribute for FakeSocket 2017-03-05 15:15:12 +01:00
Florian Bruhin
5ccafd62d4 Fix initial keyboard focus with QtWebEngine
Fixes #2321.
2017-03-04 18:11:34 +01:00
Florian Bruhin
75bc400e74 Add Chromium version to version output
This also restructures things a bit to show the backend version together with
the backend.

Fixes #2380
2017-03-02 20:22:17 +01:00
Imran Sobir
907d94591d Make a now fixture to hold time of test. 2017-03-02 23:55:59 +05:00
Imran Sobir
895620b536 Don't assume 'next' appears last. 2017-03-02 22:40:24 +05:00
Florian Bruhin
65a701a180 Stabilize existing text test 2017-03-02 08:38:07 +01:00
Florian Bruhin
d6f47bd3fb Fix lint 2017-03-02 08:29:43 +01:00
Florian Bruhin
81a36ffd7d Strip QtWebEngine download suffixes properly
Fixes #2386
2017-03-01 23:43:04 +01:00
Florian Bruhin
88904864c9 Skip failing tests on Qt < 5.8 2017-03-01 20:24:34 +01:00
Florian Bruhin
1f12b4c1c1 Relax validation of QssColor values
Fixes #2370
2017-03-01 18:11:53 +01:00
Florian Bruhin
65f407e926 Remove webelem.style_property()
It's not used anymore, and not possible to support with QtWebEngine without a
massive performance hit when serializing elements.
2017-03-01 17:54:27 +01:00
Florian Bruhin
b4af966167 Make stubbed methods fail tests again
Only some caret browsing stuff and a few webelement methods are stubbed out now.
Make them fail tests so we notice when we use a stub.
2017-03-01 17:43:33 +01:00
Florian Bruhin
bc0a9cd94d Move cursor to end with input elements on QtWebEngine 2017-03-01 17:30:48 +01:00
Florian Bruhin
1e1ba34b60 Fix selecting text fields with QtWebKit
Using focus() in JS there means that existing text in the field gets selected.
Move the cursor to the end after focusing it to prevent that.

Fixes #2359
2017-03-01 17:13:02 +01:00
Florian Bruhin
deb59fc66e Don't strip info when loading PAC from a file 2017-03-01 14:19:23 +01:00
Florian Bruhin
9bb5c9fdab Remove UserInfo and path/query for PAC URLs 2017-03-01 14:19:13 +01:00
Florian Bruhin
5d0c9440f6 Fix monkeypatch 2017-03-01 12:12:40 +01:00
Florian Bruhin
ca4f249c30 Use three-argument form of monkeypatch.*attr 2017-03-01 11:33:41 +01:00
Florian Bruhin
1e42fd1319 Fix lint 2017-03-01 11:12:28 +01:00
Florian Bruhin
47a9c8e17c Also check compiled Qt version in version checks 2017-02-28 21:01:47 +01:00
Florian Bruhin
67dfbc7e5f Don't create QWebEngine profile at import time
Fixes #2378
2017-02-28 17:24:48 +01:00
Imran Sobir
cb6c6b814e Fix pylint errors. 2017-02-28 20:11:51 +05:00
Florian Bruhin
4f90fd952d Skip test_qt_arg on Qt 5.2 2017-02-28 08:22:06 +01:00
Imran Sobir
3b3846c9dc Add qute:javascript to serve JS files. 2017-02-27 22:37:24 +05:00
Imran Sobir
783769d302 Load new history items from next item's time. 2017-02-27 21:44:23 +05:00
Imran Sobir
c223f6c69d Style/misc fixes. 2017-02-27 21:39:51 +05:00
Florian Bruhin
8d22991d03 Fix test_qt_args 2017-02-27 15:12:38 +01:00
Florian Bruhin
07a20bd1ad Add an end2end test for --qt-arg 2017-02-27 14:02:13 +01:00
Florian Bruhin
2bb4c2fb6e Fix --qt-arg tests 2017-02-27 13:49:13 +01:00
Imran Sobir
845f21b275 New qute:history page. 2017-02-26 17:07:30 +05:00
Florian Bruhin
9b58a4523d Add v0.10.0 default config 2017-02-25 21:32:19 +01:00
Florian Bruhin
fc2250b3b2 Merge branch 'session-save-only-active-window' of https://github.com/danfis/qutebrowser into danfis-session-save-only-active-window 2017-02-25 17:55:42 +01:00
Florian Bruhin
9656449545 Merge branch 'master' of https://github.com/kiryl/qutebrowser into kiryl-master 2017-02-25 17:53:05 +01:00
Florian Bruhin
1eab108323 Merge branch 'upstream-master-jseval-file' of https://github.com/pkill-nine/qutebrowser into pkill-nine-upstream-master-jseval-file 2017-02-25 17:26:12 +01:00
Florian Bruhin
3cc32e0b6a Fix lint 2017-02-25 17:24:27 +01:00
pkill9
6cb48ba2b6 Adds a --file flag to :jseval 2017-02-25 13:11:53 +00:00
Florian Bruhin
02c913238b Fix test_webkitelem 2017-02-24 13:51:45 +01:00
Florian Bruhin
3feb4211fe Don't show hints for opacity: 0 elements
Fixes #2347
2017-02-24 09:13:25 +01:00
Florian Bruhin
06c4a100cc Fix QtWebKit-NG private-browsing tests 2017-02-23 08:15:18 +01:00
Florian Bruhin
ce3c0a0f55 Mark more private-browsing tests as xfail with QtWebKit-NG 2017-02-23 08:13:40 +01:00
Florian Bruhin
6004bfa72f Don't lose warnings shown in early init phases 2017-02-23 06:48:58 +01:00
Daniel Fiser
81a24bdbef Fixed test of :session-save --only-active-window 2017-02-22 17:04:57 +01:00
Daniel Fiser
76bb11c6aa Added test for :session-save --only-active-window 2017-02-22 14:16:46 +01:00
Florian Bruhin
5379138c17 Merge branch 'pac+file' of https://github.com/kiryl/qutebrowser into kiryl-pac+file 2017-02-22 07:35:06 +01:00
Florian Bruhin
77f475991d tests: Ignore CreatePlatformSocket() errors 2017-02-21 20:52:46 +01:00
Florian Bruhin
71f7b01ea7 Bring back PyQt (but not Qt) 5.7.0 support with QtWebEngine
This was originally removed in a86170f45, however Debian testing (Stretch) comes
with Qt 5.7.1, but PyQt 5.7.
2017-02-21 19:25:18 +01:00
Kirill A. Shutemov
de088c18b9 Allow pac+file proxy scheme to load PAC file from local filesystem
Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
2017-02-21 12:57:18 +03:00
Kirill A. Shutemov
13213724b0 PAC: fix isPlainHostName()
Fix isPlainHostName() implementation and add test-case for it.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
2017-02-21 12:16:46 +03:00
Florian Bruhin
389501deb9 Merge branch 'navigate-fix' of https://github.com/EliteTK/qutebrowser into EliteTK-navigate-fix 2017-02-19 20:22:27 +01:00
Florian Bruhin
5b4b226186 Add Qt library/data paths to version info 2017-02-19 14:02:40 +01:00
Tomasz Kramkowski
1fcba72958 tests navigate: Add tests for rel attributes with nofollow
Add two extra tests for checking navigation on pages with rel "next" and
"prev" links which are also rel "nofollow" to test for the correct
functionality of navigating pages with rel "next" and "prev" links with
multiple rel attributes.
2017-02-19 12:32:19 +00:00
Florian Bruhin
01db59ff36 Handle all uerscript errors when hinting with userscript-target 2017-02-19 13:15:15 +01:00
Florian Bruhin
399b02a367 Fix subtle issue in hint bdd tests
- We need to clean open tabs to avoid reusing target=_blank child tabs
- We don't check the active tab with target=_blank anymore
- Remove some weird :tab-close
2017-02-17 22:07:59 +01:00
Florian Bruhin
ac9b0e5c59 bdd: Allow checking open tabs without (active) 2017-02-17 22:07:23 +01:00
Florian Bruhin
6ac7e61e0e Add testcase for #2311 2017-02-17 21:32:40 +01:00
Florian Bruhin
0deb422cfd Remove unused imports 2017-02-17 15:44:25 +01:00
Florian Bruhin
006378923e Skip geolocation tests on Qt 5.8
https://bugreports.qt.io/browse/QTBUG-58985
2017-02-17 14:45:36 +01:00
Florian Bruhin
a86170f45d Drop PyQt < 5.7.1 support for QtWebEngine 2017-02-17 14:42:57 +01:00
Florian Bruhin
f718b66c48 Disable mhtml tests for Qt 5.6 2017-02-17 14:32:38 +01:00
Florian Bruhin
ba21fb3784 webengine: Use _click_href for hinting target=_blank links
Fixes #2311
2017-02-17 06:57:31 +01:00
Florian Bruhin
a4f04db848 Cap scroll count to 5000
Fixes #1694
2017-02-11 22:26:37 +01:00
Florian Bruhin
bd8ead2279 Detect rel-attributes on <a> elements for :navigate 2017-02-11 20:48:48 +01:00
Florian Bruhin
c3153273f5 Merge branch 'master' of https://github.com/imransobir/qutebrowser into imransobir-master 2017-02-11 17:05:57 +01:00
Imran Sobir
37c3b79b9b Add :history command. 2017-02-10 17:47:20 +05:00
Florian Bruhin
f063d4be6f Add a benchmark for qute:history 2017-02-10 11:39:07 +05:00
Florian Bruhin
46c02bf5ae Refactor qute:history unittests 2017-02-10 11:39:07 +05:00
Imran Sobir
100f90d9b3 Fix pylint errors. 2017-02-09 18:28:10 +05:00
Florian Bruhin
97982df1cb Adjust history unittest 2017-02-09 13:40:44 +01:00
Florian Bruhin
85d8d45e19 Ask for confirmation with :history-clear 2017-02-09 13:20:00 +01:00
Imran Sobir
a15aa9eade Hide next links to future. 2017-02-09 17:18:57 +05:00
Imran Sobir
920fb81377 Use pytest's tmpdir fixture. 2017-02-09 16:39:21 +05:00
Imran Sobir
49271b7ce1 Generate and cleanup fake web-history in own fixture. 2017-02-09 16:32:59 +05:00
Imran Sobir
4eccfd5396 Style fixes. 2017-02-09 15:51:00 +05:00
Imran Sobir
828b0c00b5 Rename test_qutehistory.py to test_qutescheme.py. 2017-02-09 15:39:50 +05:00
Florian Bruhin
601110761d Fix test_history.test_init without QtWebKIt 2017-02-09 00:50:38 +01:00
Florian Bruhin
16ecc043f7 Run unittests with QUTE_BDD_WEBENGINE 2017-02-09 00:50:38 +01:00
Florian Bruhin
708c96f3ce Fix handling of @qt>= BDD tags 2017-02-09 00:50:37 +01:00
Florian Bruhin
0d271eba87 Mark tests using special URLs as Qt >= 5.8 2017-02-09 00:50:37 +01:00
Florian Bruhin
a3caba53d5 Allow single-dot version tags in BDD tests 2017-02-09 00:50:37 +01:00
Florian Bruhin
00c743b3e8 Relax complex mhtml check for QtWebEngine
Turns out the output differs between QtWebEngine versions, probably because it
dumps its parsed files. Let's just do a sanity check for the complex file
instead.
2017-02-09 00:50:37 +01:00
Florian Bruhin
8779a1367e Fix test collection without QtWebKit 2017-02-09 00:50:37 +01:00
Florian Bruhin
038a517c5a Add test for QtWebKit-NG in test_version 2017-02-08 23:46:37 +01:00
Florian Bruhin
ac2fd4a36f Skip special URL tests with QtWebKit 2017-02-08 13:04:38 +01:00
Imran Sobir
0ab7fd4581 Restore original save-manager, web-history at end of test. 2017-02-08 16:18:33 +05:00
Florian Bruhin
7c08444c37 Refuse to serialize chrome:// and view-source:// tabs
Fixes #2289
2017-02-08 11:40:00 +01:00
Florian Bruhin
580648da32 Allow to open chrome:// URLs in BDD tests 2017-02-08 11:32:14 +01:00
Florian Bruhin
1af951fd62 Work around crashes when opening URL after renderer crash
Fixes #2290
2017-02-08 10:56:44 +01:00
Florian Bruhin
2227c037f0 Log ignored lines in end2end tests 2017-02-08 09:45:12 +01:00
Florian Bruhin
208ee04bdc Add simple tests for QtWebEngine renderer crash/kill 2017-02-08 09:41:55 +01:00
Imran Sobir
ec0e95969e Add unit tests for qute://history. 2017-02-08 13:28:04 +05:00
Florian Bruhin
7bb8c854bf tests: Make user-agent download hinting more reliable 2017-02-07 23:33:37 +01:00
Florian Bruhin
4b79280ade tests: Use number hint mode to select download
Other screen sizes will give us other letter hints.
2017-02-07 23:23:59 +01:00
Florian Bruhin
bdcd980572 Fix bdd "Then" collision 2017-02-07 22:27:32 +01:00
Florian Bruhin
3f1433dcf7 Merge branch 'webengine-mhtml' 2017-02-07 22:24:25 +01:00
Florian Bruhin
5981bdbedb Skip test failing on Travis
See #2288
2017-02-07 22:23:55 +01:00
Florian Bruhin
eb7064d083 Fix lint 2017-02-07 22:13:33 +01:00
Florian Bruhin
7aa0e900d7 Add mhtml support for QtWebEngine 2017-02-07 22:13:33 +01:00
Florian Bruhin
bae1f41599 Set user-agent for QtWebKit downloads
See #513
2017-02-07 22:00:03 +01:00
Imran Sobir
216cef8d9f Add basic end-to-end test for qute:history. 2017-02-07 16:18:00 +05:00
Florian Bruhin
29ffa3d134 Add a fullscreen notification overlay
From the spec:

  User agents should ensure, e.g. by means of an overlay, that the end user is
  aware something is displayed fullscreen. User agents should provide a means of
  exiting fullscreen that always works and advertise this to the user. This is
  to prevent a site from spoofing the end user by recreating the user agent or
  even operating system environment when fullscreen.

https://fullscreen.spec.whatwg.org/#security-and-privacy-considerations
2017-02-06 16:22:58 +01:00
Florian Bruhin
98e6ccf548 Add fullscreen support for QtWebEngine 2017-02-06 16:22:58 +01:00
Florian Bruhin
69d8b23923 Fix test_unused 2017-02-06 12:47:27 +01:00
Florian Bruhin
b1894ed7e0 Add a utils.unused() 2017-02-06 10:45:36 +01:00
Florian Bruhin
91bdc00410 Make tests work with QtWebKit-NG
Fixes #1571
2017-02-06 08:48:08 +01:00
Florian Bruhin
99d1636878 Properly implement session support for QtWebKit-NG
See #1571
2017-02-06 08:48:08 +01:00
Florian Bruhin
348a50ad69 Fix inserting text with QtWebEngine
The insertText event doesn't seem to be available with newer Chromium releases,
which means this broke (probably with Qt 5.7.1).

Fixes #2183
Fixes #2217
2017-02-06 08:06:58 +01:00
Florian Bruhin
5e58764326 Fix lint 2017-02-05 19:52:59 +01:00
Florian Bruhin
2193551035 Simplify test_insert_mode
We already check whether insert mode was entered by listening for "contents: *",
and the copying part is unstable with QtWebEngine.
2017-02-05 18:44:39 +01:00
Florian Bruhin
f3b39c55a0 Fix lint 2017-02-05 18:42:34 +01:00
Florian Bruhin
2de0904b07 Fix lint 2017-02-05 17:21:33 +01:00
Florian Bruhin
bcfa84e9f1 Remove QtWebEngine auth test
This now acts differently depending on whether we have sip.assign or not, so
let's just drop this for simplicity.
2017-02-05 17:20:24 +01:00
Florian Bruhin
a5c68babc1 Add backend to version output 2017-02-05 17:16:47 +01:00
Florian Bruhin
b1a95a3930 Add automatic backend selection in earlyinit 2017-02-05 17:09:04 +01:00
Florian Bruhin
a62062af27 Relax font validation in the config
Fixes #2256
2017-02-05 12:51:49 +01:00
Florian Bruhin
288c484cdf Fix mhtml file 2017-02-05 00:29:54 +01:00
Florian Bruhin
4cf974796e Replace remaining mentions of The-Compiler/qutebrowser 2017-02-05 00:14:50 +01:00
Florian Bruhin
de50f30b9b Replace all GitHub links 2017-02-05 00:13:11 +01:00
Florian Bruhin
021b3645cc Don't stack zoom level messages
Fixes #1980
2017-02-04 23:42:55 +01:00
Florian Bruhin
2c46f8ecdb Fix zoom handling with QtWebKit 2017-02-04 23:30:12 +01:00
Florian Bruhin
385969e05f Fix editor.feature with QtWebEngine 2017-02-04 22:16:22 +01:00
Florian Bruhin
e8bbc1adf8 QtWebEngine: Fix insert mode checks with zoom
Fixes #2169
2017-02-04 22:12:41 +01:00
Florian Bruhin
6f0c8245e0 Fix test_insert_mode with QtWebEngine
We can't pretend to enter caret mode now
2017-02-04 22:06:35 +01:00
Florian Bruhin
b6e31d4172 Fix parametrizing 2017-02-04 19:03:59 +01:00
Florian Bruhin
7b0f4e0812 Use mock for open_file tests 2017-02-04 18:41:22 +01:00
Florian Bruhin
e01ac4c41f Merge branch 'issue-2204' of https://github.com/Kingdread/qutebrowser into Kingdread-issue-2204 2017-02-04 18:34:51 +01:00
Florian Bruhin
460389c30d Simplify some utilcmds tests 2017-02-04 18:26:12 +01:00
Florian Bruhin
0cc7f845e6 Simplify test 2017-02-04 18:10:34 +01:00
Florian Bruhin
4c14b2983b Merge branch 'more-pac' of https://github.com/abbradar/qutebrowser into abbradar-more-pac 2017-02-04 18:07:45 +01:00
Florian Bruhin
007065b63c Merge branch 'ignore-invalid-register-keys' of https://github.com/blyxxyz/qutebrowser into blyxxyz-ignore-invalid-register-keys 2017-02-04 17:55:07 +01:00
Florian Bruhin
8cdf2f61c7 Merge branch 'enter-mode-blacklist' of https://github.com/blyxxyz/qutebrowser into blyxxyz-enter-mode-blacklist 2017-02-04 17:52:16 +01:00
Florian Bruhin
c1f2f0ac06 Merge branch 'strip-mailto' of https://github.com/blyxxyz/qutebrowser into blyxxyz-strip-mailto 2017-02-04 17:48:53 +01:00
Florian Bruhin
148b34a50b Fix remaining Qt 5.8 QtWebEngine test failures 2017-02-04 13:28:38 +01:00
Florian Bruhin
66719c5ecc Fix lint 2017-02-03 23:55:14 +01:00
Florian Bruhin
20f83316e0 Fix misc.feature with QtWebEngine
We need to make sure we don't leave any stale prompts open.
2017-02-03 23:41:33 +01:00
Florian Bruhin
1f7e9e6b59 Add a testcase for #1613 2017-02-03 23:32:56 +01:00
Florian Bruhin
545539f28d Do more sophisticated clicking for hints with QtWebEngine
We now use click() or focus() in JS if possible, or manually follow links in a
href attribute.

While this probably introduces some new corner cases, it fixes a handful of
older ones:

- window.open() in JS can now be handled correctly as we don't need hacks in
  createWindow anymore.
- Focusing input fields with images now works - fixes #1613, #1879
- Hinting now works better on QtWebEngine with Qt 5.8 - fixes #2273

Also see #70.
2017-02-03 23:21:57 +01:00
Florian Bruhin
e5176e18bd tests: Fix QtWebEngine focus checking 2017-02-01 12:33:47 +01:00
Florian Bruhin
428e495935 Unconditionally disable test_tab
This now also causes segfaults with Qt 5.8, so something is definitely wrong
here...

See #1638 and #2261
2017-02-01 11:09:08 +01:00
Florian Bruhin
0863c3277c Revert "Disable WebGL for tests"
This reverts commit 2934ffd4d9.
2017-01-25 08:45:18 +01:00
Florian Bruhin
2934ffd4d9 Disable WebGL for tests
See #2250
2017-01-25 08:04:58 +01:00
Florian Bruhin
d9808aefed Switch from CherryPy to cheroot, take 2
This reverts commit 3584eabd6f.
This reverts commit 37dc99c26f.
2017-01-23 07:38:24 +01:00
Jan Verbeek
2700739a3a Strip mailto: when yanking a hint
Resolves #61.
2017-01-21 14:43:50 +01:00
Jan Verbeek
bd3c2f92fc Blacklist some modes for :enter-mode
This disallows using :enter-mode with modes that don't work properly
when entered that way. Fixes #1137.
2017-01-20 19:32:16 +01:00
Jan Verbeek
7e7cac2d48 Ignore non-register keys
Ignore all keys with an empty .text() return value, not just modifier
keys. You can still use unusual things like ß for registers, but
XF86WakeUp is out. Fixes #2125.
2017-01-20 17:34:33 +01:00
Florian Bruhin
37dc99c26f Revert "Switch from CherryPy to cheroot"
This reverts commit 1ab2b3af83.

See https://github.com/cherrypy/cheroot/pull/2
2017-01-20 09:06:49 +01:00
Florian Bruhin
1ab2b3af83 Switch from CherryPy to cheroot
The WSGIServer got split off from CherryPy in a separate project
2017-01-20 08:07:55 +01:00
Florian Bruhin
b74bae2200 Hopefully fix download test on Windows 2017-01-18 08:51:03 +01:00
Florian Bruhin
73f371a956 Release v0.9.1 2017-01-13 18:10:03 +01:00
Florian Bruhin
cc4a8e53df Prevent using %2F as slash in a Content-Disposition header 2017-01-13 18:04:04 +01:00
Florian Bruhin
2f3e671578 Use a tmpdir subdir for download BDD tests 2017-01-13 17:59:03 +01:00
Daniel Schadt
07460832b6 fix open-file tests on windows
Windows filenames have backslashes, so we need to escape them, otherwise
shlex.split will delete them.

Also, we can't prodive our own executable on frozen tests.
2017-01-12 15:38:38 +01:00
Daniel Schadt
ea56ded7fc fix TestOpenFile
pytest doesn't like test classes which define __init__, and pylint
doesn't like attributes defined outside __init__.

We can disable pylint's check, but we can't force pytest to accept our
test class...
2017-01-10 14:14:03 +01:00
Daniel Schadt
bb135a00e6 fix lint 2017-01-06 13:53:05 +01:00
Daniel Schadt
2986f7b615 add tests for utils.open_file 2017-01-06 13:32:46 +01:00
Daniel Schadt
536c76848e add a test for opening mhtml downloads 2017-01-05 19:02:28 +01:00
Daniel Schadt
bd5274af5a fix tests 2017-01-04 17:59:53 +01:00
Nikolay Amiantov
aec002fa29 Add more tests for PAC 2017-01-03 13:47:13 +03:00
Nikolay Amiantov
19966a9b9f proxy_from_url: fix PACFetcher construction 2017-01-03 13:47:13 +03:00
Florian Bruhin
1c4a28e5a0 Add old config for 0.9.0 2016-12-28 23:47:09 +01:00
Florian Bruhin
6d9362028f Merge branch 'jinja-error' of https://github.com/fiete201/qutebrowser into fiete201-jinja-error 2016-12-28 23:31:04 +01:00
Florian Bruhin
d9c8bd7fca Add a test for userscript unicode errors 2016-12-28 23:03:46 +01:00
Fritz Reichwald
ae736da5f7 Fix lint 2016-12-28 22:51:20 +01:00
Fritz Reichwald
8c3d461482 Fix test for logging 2016-12-28 22:35:03 +01:00
Fritz Reichwald
0bd3100de8 Fix test_not_found 2016-12-28 22:11:34 +01:00
Florian Bruhin
473df00ae5 Update ace.js to 1.2.6 2016-12-28 17:39:01 +01:00
Florian Bruhin
2d1d078430 Merge branch 'issue-2173' of https://github.com/Kingdread/qutebrowser into Kingdread-issue-2173 2016-12-22 22:24:19 +01:00
Florian Bruhin
71404a87b9 Fix lint 2016-12-22 15:14:35 +01:00
Daniel Schadt
4b7818589d make test independent of previous tests 2016-12-22 14:22:37 +01:00
Florian Bruhin
6c1b7dcca1 Move proxy/pac out of QtWebKit folder 2016-12-22 13:54:11 +01:00
Florian Bruhin
b220b5438f Add urlutils.proxy_for_url 2016-12-22 13:51:27 +01:00
Florian Bruhin
cd8d179813 Also xfail #2183 tests without Docker/Travis 2016-12-22 09:17:00 +01:00
Florian Bruhin
a3d0ea7e01 Adjust skipped test 2016-12-22 09:04:23 +01:00
Florian Bruhin
5a89ee96d9 Merge branch 'pac' of https://github.com/abbradar/qutebrowser into abbradar-pac 2016-12-22 08:53:10 +01:00
Florian Bruhin
235326d35e Merge branch 'master' of https://github.com/swalladge/qutebrowser into swalladge-master 2016-12-22 07:01:21 +01:00
Florian Bruhin
c7970eb2ee Xfail tests which fail on Docker/Travis
See #2183
2016-12-20 21:32:46 +01:00
Daniel Schadt
a24bcd4243 add a test for remembering the temp download dir 2016-12-20 15:57:00 +01:00
Samuel Walladge
0afa74a9de
remove cat test 2016-12-20 20:48:56 +10:30
Samuel Walladge
a27d7cddb3
fix tests and add another 2016-12-20 20:13:22 +10:30
Samuel Walladge
3d8dedc48b
add tests for default-open-dispatcher 2016-12-20 12:09:30 +10:30
Florian Bruhin
5746337733 Fix downloads without QtWebEngine 2016-12-09 07:29:51 +01:00
Florian Bruhin
d0372f1730 Decode percent sequences in QtWebEngine downloads
Fixes #2122.
2016-12-09 07:08:51 +01:00
Florian Bruhin
03eea7f62a Remove download filename suffixes with QtWebEngine 2016-12-09 07:00:25 +01:00
Florian Bruhin
8116aef77a Fix prompt unittests 2016-12-07 12:55:58 +01:00
Florian Bruhin
57adcea587 Fix QTBUG-54419 workaround with tabs-are-windows set
Fixes #2162
2016-12-07 07:01:06 +01:00
Nikolay Amiantov
27d64d3680 Add tests for PAC resolver and fetcher 2016-12-07 02:01:19 +03:00
Florian Bruhin
1536a3324e Fix lint 2016-12-06 23:09:23 +01:00
Florian Bruhin
e39d6996c6 Fix test_tab 2016-12-06 22:50:25 +01:00
Florian Bruhin
caf1950868 Set the default zoom initially with QtWebEngine
This solves a part of #1993, however when the user navigates to a
different page, the zoom is reset.
2016-12-06 20:28:18 +01:00
Florian Bruhin
df5ce12ed8 Make it possible to cancel authentication with QtWebEngine
Fixes #2156
2016-12-06 07:45:03 +01:00
Florian Bruhin
0ab23a74fb Allow --qt-arg and --qt-flag to be given multiple times
Fixes #2151
2016-12-06 06:47:42 +01:00
Florian Bruhin
7b8af9ebbf Try to stabilize history tests
Sometimes :history-clear would run before about:blank finished loading,
causing the test for :spawn with a history flag to fail.
2016-12-06 06:32:51 +01:00
Florian Bruhin
61ada6ba32 Merge branch 'tab-move' of https://github.com/Raihid/qutebrowser into Raihid-tab-move 2016-12-01 13:25:03 +01:00
Maciej Wołczyk
f6802272c7 Added a test for quopri with spaces at the end of the line 2016-12-01 01:17:00 +01:00
Maciej Wołczyk
2fca442892 Fixed TabbedBrowserStub's tabBar, no longer toggling updates while moving tabs 2016-11-30 15:23:35 +01:00
Maciej Wołczyk
e613d01263 Fixed problems with tab completion after moving tabs (#2141) 2016-11-30 14:17:20 +01:00
Maciej Wołczyk
2cbea50152 Fixed style issues, corrected unit test 2016-11-29 19:10:36 +01:00
Maciej Wołczyk
729cc61152 Fixed mhtml quopri encoding with spaces and tabs (see: #2063) 2016-11-29 04:03:35 +01:00
Florian Bruhin
c17bbd47b8 Fix QTBUG-54419 workaround for invalid URLs 2016-11-26 13:32:37 +01:00
Florian Bruhin
73c608dce7 Allow :open without URL with -t/-b/-w 2016-11-26 12:17:23 +01:00
Florian Bruhin
3ca4916b76 Relax qt_log_ignore pattern
Earlier Qt versions show this:

        QStandardPaths: wrong ownership on runtime directory
        /tmp/pytest-of-user/pytest-0/test_linux_invalid_runtimedir0/does-not-exist,
        -2 instead of 1000
2016-11-24 10:37:56 +01:00
Florian Bruhin
64b47fc3a2 Handle an invalid $XDG_RUNTIME_DIR gracefully
This is probably against the XDG basedir spec, but some people have a
Linux without anything setting $XDG_RUNTIME_DIR correctly.

Fixes #971.
2016-11-24 10:14:02 +01:00
Florian Bruhin
98dc92fe16 Remove unused import 2016-11-24 08:50:54 +01:00
Florian Bruhin
34dd30e984 Fix bad merge 2016-11-24 08:29:31 +01:00
Florian Bruhin
002e30a6ca Remove :set --cycle completion test 2016-11-24 07:34:07 +01:00
Florian Bruhin
8ac16c0c4c Update pattern for completion tests 2016-11-24 07:33:50 +01:00
Niklas Haas
32cc6bea1d Add tests for the completion engine
I tested everything that I thought was interesting enough to warrant a
test: especially the ability to test multiple parameters deep, as well
as testing :set --cycle and some involved example to make sure
completion actually works and updates in realtime
2016-11-24 07:31:26 +01:00
Florian Bruhin
3d140a1353 Get rid of --cycle for :set with multiple values
See https://github.com/The-Compiler/qutebrowser/pull/1840#issuecomment-258714784
2016-11-24 07:23:49 +01:00
Niklas Haas
1b5664b72f Add --cycle flag to :set
Chooses the next value from the provided list of values (string-wise
comparison). Technically, the 'option!' syntax for toggling bools is now
redundant, but a translation from 'option!' to '--cycle option false
true' is kept for backwards compatibility.

The '--cycle' flag could also be technically optionally, since the only
thing that depends on it is preserving the error message for specifying
multiple values. (But I think it's best to keep it explicit, as a
principle-of-least-surprise thing)

Note: The business logic of picking the next value and setting it was
moved out to a separate function to avoid tripping pylint's
too-many-branches detector.

Fixes #47
2016-11-24 07:22:06 +01:00
thuck
a254097558 Using log instead of prompt functions for test 2016-11-24 00:05:17 +01:00
Florian Bruhin
371e779d98 Fix tabs.feature 2016-11-23 13:16:15 +01:00
Florian Bruhin
cc8db65b18 Merge branch 'cancel-register-key' of https://github.com/blyxxyz/qutebrowser into blyxxyz-cancel-register-key 2016-11-23 12:53:50 +01:00
Florian Bruhin
552e0551af Revert zero counts
This initially seemed like a nice feature, but it means 0 can't be bound
as a separate key anymore, and 0<Esc> gives weird error messages...

Reverts #1953.
Fixes #2032.
2016-11-23 08:37:29 +01:00
Florian Bruhin
946e3f93f9 Add --enable-webengine-inspector option
Since the inspector can be a security risk, it's now not linked to
developer-extras anymore until QtWebEngine provides a better way to
access it.

See:

https://bugreports.qt.io/browse/QTBUG-50725
http://bouk.co/blog/hacking-developers/
2016-11-23 08:12:13 +01:00
thuck
05d3631750 Test for accidental url opened in a pinned tab 2016-11-23 08:10:13 +01:00
thuck
9dff4299e8 flake8 fixes 2016-11-23 08:10:13 +01:00
thuck
be980a7268 Including tests for pinned tab prompt
Duplicate function for "I wait for a prompt"
2016-11-23 08:10:13 +01:00
thuck
9547938f79 Fix initial tests 2016-11-23 08:10:13 +01:00
thuck
b920de764f Merge branch 'master' of https://github.com/The-Compiler/qutebrowser into pintab 2016-11-23 08:10:11 +01:00
Florian Bruhin
f0cc1de808 Merge branch 'master' of https://github.com/Raihid/qutebrowser into Raihid-master 2016-11-22 20:32:59 +01:00
Maciej Wołczyk
81cbd4c8a0 Hyphen in variable name fixed 2016-11-22 17:39:13 +01:00
Maciej Wołczyk
9d19c3aee6 Changed add to history option name 2016-11-22 17:27:34 +01:00
Florian Bruhin
caf6b74954 Add missing file 2016-11-22 11:42:01 +01:00
Florian Bruhin
c363982d05 Use per-tab QNAM for QtNetwork downloads again
When starting a download due to unsupportedContent being emitted, we
need to use (and later adopt) the page's QNetworkAccessManager.

Since we need the whole adopting logic for that case anyways, let's keep
things as they were and always run downloads in per-tab QNAMs.

This reverts 53e360ec4b and fixes #2134.
2016-11-22 11:10:37 +01:00
thuck
982e4f46e0 Test for accidental url opened in a pinned tab 2016-11-22 07:24:02 +01:00
thuck
175744761b flake8 fixes 2016-11-22 06:57:00 +01:00
thuck
69c82f8563 Including tests for pinned tab prompt
Duplicate function for "I wait for a prompt"
2016-11-21 20:56:34 +01:00
thuck
41adafdec4 Fix initial tests 2016-11-21 20:56:34 +01:00
thuck
bcb0010fcb Merge branch 'master' of https://github.com/The-Compiler/qutebrowser into pintab 2016-11-21 20:56:31 +01:00
Maciej Wołczyk
918b3e2d12 History flag: test added, short version changed, minor fixes 2016-11-21 15:33:38 +01:00
Florian Bruhin
7c88fe318f Handle cancelled SSL prompts correctly
When the user pressed esc during an SSL prompt, the message.ask call
returned None, which was handled fine by QtWebKit (which simply used an
'if') but failed with QtWebEngine (which returned the value to Qt).

Fixes #2123.
2016-11-16 22:13:57 +01:00
Florian Bruhin
52df867030 Fix test_webkitelem 2016-11-16 13:09:16 +01:00
Florian Bruhin
25358bb5fc Clean up webelem.text/set_text
webelem.text() was only used without use_js=True from webelem.__str__.
Now we instead default to the use_js=True behavior and renamed the
method from text() to value().

The old behavior is instead directly implemented in __str__.

This changes how webelem.value (aka text) handles elements for which
is_content_editable() returns True, but I haven't found any cases where
this makes a difference.

This also fixes getting existing text from elements with QtWebEngine,
which closes #1957.
2016-11-16 12:34:27 +01:00
thuck
e2a6f97c07 Initial tests 2016-11-16 07:48:12 +01:00
Florian Bruhin
3638849257 Fix lint 2016-11-15 23:41:53 +01:00
Florian Bruhin
d64efa6b9b Fix test_tabwidget 2016-11-15 23:40:24 +01:00
Florian Bruhin
fcb955458c Require a filename for user-stylesheet; add hide-scrollbar setting 2016-11-15 22:58:56 +01:00
Florian Bruhin
964ddb472b Add urlutils.data_url 2016-11-15 22:25:51 +01:00
Florian Bruhin
e1928ad991 Mark javascript BDD test as flaky
For some reason it sometimes fails with an error message coming out of
nowhere...
2016-11-15 20:17:51 +01:00
Florian Bruhin
a09a565aea Improve :click-element error message 2016-11-15 19:43:03 +01:00
Florian Bruhin
456ab18f24 Fix double-When in BDD test 2016-11-15 19:36:32 +01:00
Florian Bruhin
d05918ac0b Add custom user-agent support for QtWebEngine 2016-11-15 11:32:05 +01:00
Florian Bruhin
fc7961ae22 Set correct paths for QtWebEngine 2016-11-15 10:51:14 +01:00
Florian Bruhin
96e16d6fe8 Add a test for standarddir.runtime() 2016-11-15 09:12:52 +01:00
Florian Bruhin
671ce67be5 Remove --datadir/--confdir/--cachedir
Closes #2115.
2016-11-15 07:09:46 +01:00
Florian Bruhin
d04534dc33 Reenable @qtwebengine_createWindow tests
Closes #2121
2016-11-15 07:03:13 +01:00
Jan Verbeek
f0d215e07a Change hard-coded escape to leave-mode binding 2016-11-14 23:28:38 +01:00
Florian Bruhin
81d67f8a2c Remove support for an empty data/config/cachedir
See #2115
2016-11-14 23:13:21 +01:00
thuck
abe3c19646 Merge branch 'master' of https://github.com/The-Compiler/qutebrowser into pintab 2016-11-14 19:01:49 +01:00
Florian Bruhin
81e8421f62 Stabilize rapid hinting test more 2016-11-14 10:52:30 +01:00
Florian Bruhin
cd3305b4dd Stabilize :hint --rapid test 2016-11-14 09:42:08 +01:00
Florian Bruhin
69452a9813 Fix hint tests 2016-11-14 09:37:01 +01:00
Florian Bruhin
004d0b7ae5 Add missing rapid.html 2016-11-14 09:14:57 +01:00
Florian Bruhin
30827c1239 Fix rapid hinting with QtWebEngine
There were actually two issues here:

- The override_target was reset too early - now
  acceptNavigationRequest/createWindow is responsible for resetting it.
- The QTBUG-54419 workaround opened any tabs in the background instead
  of preserving their position/focus.

Fixes #2086.
2016-11-14 07:14:44 +01:00
Florian Bruhin
650b9e465c Merge branch 'webengine-prompts' 2016-11-13 21:25:07 +01:00
thuck
84c41c964b First test for tab-pin 2016-11-13 09:40:07 +01:00
thuck
9eb0a85bae Some fixes for pyflake, pylint and remove useless function 2016-11-11 17:10:46 +01:00
Florian Bruhin
4b4bf7ec9e Merge branch 'union-tests' of https://github.com/blyxxyz/qutebrowser into blyxxyz-union-tests 2016-11-11 07:18:23 +01:00
Jan Verbeek
75c996c13e Cancel register key input with escape 2016-11-11 02:45:59 +01:00
Florian Bruhin
2ded5ef6dd tests: Get rid of flaky_once mark 2016-11-10 22:45:27 +01:00
Florian Bruhin
40c5c75a6c tests: Add a js_prompt marker 2016-11-10 22:45:27 +01:00
Florian Bruhin
8d781c68c9 Fix lint 2016-11-10 22:45:27 +01:00
Florian Bruhin
6b14cda5d0 Re-enable SSL download test on QtWebEngine 2016-11-10 22:45:27 +01:00
Florian Bruhin
bbcbb24cb5 Handle feature permissions with QtWebEngine 2016-11-10 22:45:27 +01:00
Florian Bruhin
8f55725555 Fix lint 2016-11-10 22:45:27 +01:00
Florian Bruhin
8a4ca25b8d Avoid circular import 2016-11-10 22:45:27 +01:00
Florian Bruhin
d93bc8b26b Make prompt tests run 2016-11-10 22:45:27 +01:00
Florian Bruhin
6697d692e1 webengine: Initial SSL error support 2016-11-10 22:45:27 +01:00
Florian Bruhin
65625a9dea webengine: Initial support for authentication and javascript prompts 2016-11-10 22:45:27 +01:00
Florian Bruhin
d8d7b42c43 Stabilize macro tests 2016-11-10 09:03:56 +01:00
Florian Bruhin
bddda6b778 Use a data: URL for the broken qutebrowser logo
It blows our HTML up, but we use error.html from various places with
various security policies, so we can't rely on being able to load
file:// URLs.
2016-11-10 08:53:06 +01:00
Florian Bruhin
f1bba45db5 Revert "Serve broken qutebrowser logo via qute:resources"
This reverts commit 37fa7431b0.
2016-11-10 07:51:19 +01:00
Florian Bruhin
2ef85d6c35 Fix macros with a mode-switching command 2016-11-10 07:16:52 +01:00
Florian Bruhin
c7fb99878f Move macro tests to keyinput.feature 2016-11-10 06:51:59 +01:00
Florian Bruhin
5d30105a53 Merge branch 'macros' of https://github.com/blyxxyz/qutebrowser into blyxxyz-macros 2016-11-10 06:50:21 +01:00
Jan Verbeek
80c5e92094 Fix Union tests for newer Python 3.5 versions 2016-11-10 00:54:51 +01:00
Florian Bruhin
ac2df2f253 Merge branch 'webengine-downloads-3' 2016-11-09 19:09:58 +01:00
Florian Bruhin
9bc54ebf97 Merge branch 'insert-text-js' of https://github.com/paretje/qutebrowser into paretje-insert-text-js 2016-11-09 14:52:18 +01:00
Kevin Velghe
c36edfb2ba Wait for text being inserted before testing 2016-11-09 14:36:20 +01:00
Florian Bruhin
d80022f3cd Merge branch 'issue1619' of https://github.com/HolySmoke86/qutebrowser into HolySmoke86-issue1619 2016-11-09 12:32:52 +01:00
Jan Verbeek
e5dec949b0 Merge https://github.com/The-Compiler/qutebrowser into macros 2016-11-09 12:17:04 +01:00
Daniel Karbach
b481dd668d test config migration for tab-{close,only} flags 2016-11-09 09:38:47 +01:00
Florian Bruhin
cf32aac111 Move usertypes.DownloadTarget to downloads module 2016-11-09 08:15:58 +01:00
Florian Bruhin
970e4d3e03 Fix mhtml overwrite prompts
See #2101
2016-11-08 23:23:53 +01:00
Florian Bruhin
19c7d747dd Fix downloads with unknown size with WebEngine 2016-11-08 09:18:10 +01:00
Florian Bruhin
bc1e4385e0 Fix first bunch of download tests 2016-11-08 09:18:09 +01:00
Florian Bruhin
ce1b675a1e Implement :download/hints via QtNetwork 2016-11-08 09:18:09 +01:00
Florian Bruhin
fc6c6d4998 Fix lint 2016-11-08 09:16:47 +01:00
Florian Bruhin
a39fbc8a07 Merge branch 'insert-text-js' of https://github.com/paretje/qutebrowser into paretje-insert-text-js 2016-11-06 22:41:49 +01:00
Florian Bruhin
690633bd87 Release v0.8.4 2016-11-06 00:47:53 +01:00
Florian Bruhin
f7cfb6afc3 Release v0.8.3 2016-11-05 23:08:28 +01:00
Florian Bruhin
6eef79e180 Adjust imports/objreg 2016-11-04 18:49:24 +01:00
Florian Bruhin
7256641288 Prevent questions from being aborted twice
When we abort a question (e.g. by closing a tab with SSL errors) while
another prompt is queued, the right prompt gets closed by the question
being aborted, but that in turn aborts the question again, affecting the
next prompt.
2016-11-04 13:21:22 +01:00
Florian Bruhin
15de465dbe bdd: Add a test for keyboard focus with multiple auth prompts 2016-11-04 08:11:06 +01:00
Florian Bruhin
76728f0f73 tests: Allow more auth paths in end2end.fixtures.webserver 2016-11-04 08:11:06 +01:00
Florian Bruhin
fb9415a809 bdd: Allow multiple "When I open" suffixes 2016-11-04 07:20:48 +01:00
Florian Bruhin
a16d41333b Fix prompts while in command mode 2016-11-04 06:48:32 +01:00
Florian Bruhin
cbf1a44b75 Fix handling of / as path 2016-11-03 08:40:42 +01:00
Florian Bruhin
fa1846ab0e Adjust prompt path when backspacing a path 2016-11-03 08:40:42 +01:00
Florian Bruhin
bbd8cc56a2 Restructure test_prompt 2016-11-03 08:40:42 +01:00
Florian Bruhin
4e793180c1 Fix completion in file prompts 2016-11-03 08:40:42 +01:00
Florian Bruhin
3b7f65d956 Show URL in most questions 2016-11-03 08:40:42 +01:00
Florian Bruhin
fefc8c4eb2 Add more tests for prompts 2016-11-03 08:40:42 +01:00
Florian Bruhin
741ecac9ef More improvements for yesno prompt key hints 2016-11-03 08:40:41 +01:00
Florian Bruhin
67cb3cd23e tests: Fix waiting for questions with a text 2016-11-03 08:40:41 +01:00
Florian Bruhin
a8d1187ba0 Fix keyhint tests 2016-11-03 08:40:41 +01:00
Florian Bruhin
d92674dd04 Remove test_prompt.py 2016-11-03 08:40:41 +01:00
Florian Bruhin
e3581a50ca Remove generated stylesheets again
We can just use jinja logic instead...
2016-11-03 08:40:41 +01:00
Florian Bruhin
b11a1e92cc test requirements: Update pytest-rerunfailures to 2.1.0 2016-11-02 10:12:10 +01:00
Kevin Velghe
7a207f7678 There are no events when javascript is disabled 2016-10-31 19:34:32 +01:00
Kevin Velghe
7a9f80bf9a Use jseval to test insert-text with js disabled 2016-10-31 18:26:50 +01:00
Florian Bruhin
b4872192c3 Merge branch 'more-tests' of https://github.com/HolySmoke86/qutebrowser into HolySmoke86-more-tests 2016-10-30 23:24:15 +01:00
Florian Bruhin
428637746a Merge branch 'insert-text-js' of https://github.com/paretje/qutebrowser into paretje-insert-text-js 2016-10-30 19:51:25 +01:00
Florian Bruhin
620b952bb2 Merge branch 'jseval-2' of https://github.com/paretje/qutebrowser into paretje-jseval-2 2016-10-30 18:48:14 +01:00
Kevin Velghe
5982787651 Enable javascript again after the test 2016-10-30 17:46:12 +01:00
Kevin Velghe
18420c6978 Test content of textarea without javascript 2016-10-30 16:11:48 +01:00
Kevin Velghe
2d6c443b1a Add test for insert-text with javascript disabled 2016-10-30 12:20:49 +01:00
Kevin Velghe
c537b901f0 Add test for jseval when javascript is disabled 2016-10-30 11:39:25 +01:00
Daniel Karbach
cfa9068eed flake...
*quitely shakes fist and then submits*
2016-10-28 11:23:05 +02:00
Daniel Karbach
6fff45daeb check exception messages in utilcmds tests 2016-10-28 10:50:58 +02:00
Daniel Karbach
e167f77d68 separate test for hunter exceptions 2016-10-28 10:44:55 +02:00
Daniel Karbach
6e510372fb more cleanup
jeez, this is getting embarrassing
2016-10-27 15:50:17 +02:00
Daniel Karbach
23a62e952d another lineparser/utilcmds test revision
* verify exception message in lineparser double open
* check for hunter with `pytest.importorskip`
* stricter exception checking in debug_trace test
2016-10-27 14:56:28 +02:00
Daniel Karbach
64cf8fcd39 lineparser/utilcmds test cleanup
* fix date in copyright
* remove redundant class docstrings
* don't rename utilcmds module in unit test
* use `mode_manager` fixture in place of FakeModeMan
* some whitespace
2016-10-27 14:23:01 +02:00
Daniel Karbach
e1c467b3a0 move utilcmds specific tests from misc 2016-10-27 14:20:39 +02:00
Florian Bruhin
96b4ab41c7 Re-add label.show() call
We don't actually show a window (so no need to use
waitForWindowShown/waitExposed), but we still need to make sure the
label is shown.
2016-10-26 14:54:35 +02:00
Florian Bruhin
c7bfefeb08 tests: Remove useless show() call
We add it to a layout anyways, so it will already be shown.
2016-10-26 08:08:00 +02:00
Florian Bruhin
ece3f3a2e1 Update to pytest-qt 2.1.0 2016-10-26 07:42:41 +02:00
Daniel Karbach
442549555b skip segfault test on windows
while technically possible (on both machine and OS level), termination due
to SIGSEGV cannot be prevented
maybe the test could be rewritten to spawn a subprocess and check its exit
status (of 11)
2016-10-25 17:24:14 +02:00
Joel Bradshaw
3fe050f850 Update test for version bump 2016-10-25 07:11:56 -07:00
Daniel Karbach
9038b28ea4 different mocking of open() in lineparser test
apparently, python 3.4 (and less, probably) does not import
builtins into modules
2016-10-25 08:52:08 +02:00
Daniel Karbach
b5ffe979aa "typo" in utilcmds test 2016-10-25 08:48:04 +02:00
Daniel Karbach
e0d1fafe43 tests for misc.utilcmds 2016-10-24 17:13:38 +02:00
Daniel Karbach
863bab3ccf allow multiline matches in log messages 2016-10-24 17:10:47 +02:00
Daniel Karbach
bdb96becd6 unit tests for misc.lineparser 2016-10-24 17:10:47 +02:00
Jan Verbeek
21289a80ad Catch RegisterKeyParser command errors 2016-10-20 17:38:56 +02:00
Daniel Karbach
ef3968c165 setting values tabs->new-tab-position[-explicit]
left -> prev
right -> next
2016-10-18 17:17:17 +02:00
Daniel Karbach
7eafa30084 :tab-close option names
--left -> --prev
--right -> --next
2016-10-18 15:03:08 +02:00
Daniel Karbach
845298ae41 :tab-close option names
--left -> --prev
--right -> --next
2016-10-18 15:03:08 +02:00
Daniel Karbach
828b7d744a setting values tabs->select-on-remove
left -> prev
right -> next
previous -> last-used

refs #1619
2016-10-18 15:03:01 +02:00
Jan Verbeek
2a304d7a6b Merge branch 'master' of https://github.com/The-Compiler/qutebrowser into macros
Conflicts:
	qutebrowser/commands/runners.py
2016-10-17 19:14:58 +02:00
Kevin Velghe
97493b71ad Add test for null element 2016-10-17 15:25:31 +02:00
Florian Bruhin
229faac9cb Stabilize :session-delete tests 2016-10-14 07:24:36 +02:00
Ryan Roden-Corrent
fbc084e416 Remove :<count>:cmd syntax support.
CommandRunner.parse had some logic for handling commands of form
:<count>:cmd. However, this complicated the parsing logic for something
that appears to only be used in tests. One could use it in a
userscript, but this is unlikely as it is undocumented. Removing
support for this simplifies the logic of parse.

The commnd `run-with-count` is added to provide this functionality.
It works like `repeat` but passes the count along to the command
instead of running the command multiple times.

This resolves #1997: Qutebrowser crashes when pasting commands.
This bug was caused by excess stripping of ':' from the command string
by _parse_count.
2016-10-10 08:02:30 -04:00
Florian Bruhin
aba67d0822 Add @qtwebengine_todo 2016-10-10 09:30:05 +02:00
Florian Bruhin
6d6655524c Fix quoting 2016-10-10 08:26:32 +02:00
Florian Bruhin
03c0eb244e Remove whitespace at EOL 2016-10-10 07:34:22 +02:00
Florian Bruhin
40eb875fb6 Add a test for private-browsing mode 2016-10-10 07:33:59 +02:00
Florian Bruhin
f7b5a2c9ff Merge branch 'command-history-tests' of https://github.com/sebastian-frysztak/qutebrowser into sebastian-frysztak-command-history-tests 2016-10-10 07:33:46 +02:00
Jan Verbeek
33ff0ba715 Interactively get macro register 2016-10-08 21:17:47 +02:00
Sebastian Frysztak
a8847eacbe Cover HistoryEndReachedError in command_history_next(). 2016-10-08 18:14:37 +02:00
Florian Bruhin
5eed5eb7f7 commit 5708bb0306fb28549fc47e686790d006398c27fa
Author: Florian Bruhin <git@the-compiler.org>
Date:   Fri Oct 7 07:44:54 2016 +0200

    Turn off private browsing in misc.feature tests
2016-10-07 20:10:39 +02:00
Florian Bruhin
c40539c7e9 Merge branch 'pdfjs-1.6.210' of https://github.com/Kingdread/qutebrowser into Kingdread-pdfjs-1.6.210 2016-10-06 22:52:44 +02:00
Jan Verbeek
7aaaadac1a Add keyboard macros 2016-10-06 22:24:04 +02:00
Sebastian Frysztak
b8156a0c32 BDD tests for :command-history-prev/next
ref #999
2016-10-06 21:02:15 +02:00
Daniel Schadt
a9ac123bfa tests: relax pdfjs tests
Updating the whole snippet in two places is bad, so we relax the testing
code.
2016-10-06 16:18:21 +02:00
Florian Bruhin
53ef16e26b Try to stabilize test_insert_mode 2016-10-06 10:40:28 +02:00
Florian Bruhin
5e6d8e3944 Merge branch 'master' of https://github.com/sebastian-frysztak/qutebrowser into sebastian-frysztak-master 2016-10-05 21:19:17 +02:00
Florian Bruhin
24eb27e385 Merge branch 'completer_unicode' of https://github.com/rcorre/qutebrowser into rcorre-completer_unicode 2016-10-05 21:15:28 +02:00
Florian Bruhin
ae5e2839ae Revert accidental changes 2016-10-05 15:45:30 +02:00
Florian Bruhin
6be4b74c59 tests: Fix redirect-later-continue with timeout 2016-10-05 15:36:25 +02:00
Florian Bruhin
f6729d23d2 Skip auto-follow-timeout test on OS X
This takes way too long on Travis...
2016-10-05 14:36:05 +02:00
Florian Bruhin
40052c1030 Add @qtwebengine_skip to some @no_xvfb tests 2016-10-05 14:35:25 +02:00
Florian Bruhin
08361e7034 Increase timeout for inhibited key test
It seems this fails on the new Travis OS X image.
2016-10-05 13:26:57 +02:00
Florian Bruhin
8fdc609b32 Improve error for inhibited key test 2016-10-05 13:26:44 +02:00
Florian Bruhin
dd537c9119 Really fix test_mthml 2016-10-05 10:12:38 +02:00
Florian Bruhin
8dab1cf58a Fix test_mhtml.py 2016-10-05 09:09:42 +02:00
Sebastian Frysztak
0f84ea2339 Fix TabWidget unit test
(add show-favicons config option)
2016-10-04 16:34:52 +02:00
Ryan Roden-Corrent
2696f9b427 Handle unicode characters in Completer.
Just limit the cursor position to the length of the text to avoid
crashes in this case.

Resolves #2007.
2016-10-04 07:36:49 -04:00
Florian Bruhin
b21f7be03a Remove qtwebengine_todo for position:absolute test 2016-10-03 06:55:58 +02:00
Florian Bruhin
5b11eaad85 Merge branch 'issue1987' of https://github.com/HolySmoke86/qutebrowser into HolySmoke86-issue1987 2016-10-03 06:45:01 +02:00
Florian Bruhin
c7b74edfbe Merge branch 'issue1940' of https://github.com/HolySmoke86/qutebrowser into HolySmoke86-issue1940 2016-10-03 06:41:19 +02:00
Florian Bruhin
c80f18522c Remove now-duplicate test
TestKeychain.test_count_0 now tests the exact same thing.
2016-09-30 18:17:28 +02:00
Florian Bruhin
28c87b5c6b Use right key in test_basekeyparser 2016-09-30 18:15:59 +02:00
Florian Bruhin
083d847316 Add a test for a zero count 2016-09-30 18:14:36 +02:00
Florian Bruhin
6b76d5defa Whitespace changes 2016-09-30 17:54:23 +02:00
Daniel Karbach
dc344989c6 revised missing userscript error messages 2016-09-30 09:50:49 +02:00
Daniel Karbach
bac22629e3 test for yanking queries with both '&' and ';' 2016-09-30 09:15:05 +02:00
Florian Bruhin
822c100f52 Make 0 a usable count for :tab-focus
Fixes #1768
2016-09-30 08:33:16 +02:00
Daniel Karbach
8eb12c6cb9 improved error messages for inexistent userscripts
fixes #1940
2016-09-29 13:29:39 +02:00
Daniel Karbach
ae674bc4ac test for yanking URLs with '&' in query
for completeness' sake
2016-09-29 11:04:38 +02:00
Daniel Karbach
4aa3ea89b3 test for yanking URLs with ';' separated queries
refs #1987
2016-09-29 10:44:05 +02:00
Daniel Karbach
6728bb6430 show webview when caret testing
fixes #1988
2016-09-29 09:26:58 +02:00
Florian Bruhin
5b27e06ce2 Add xfailing test for #1945 2016-09-29 07:16:40 +02:00
Florian Bruhin
b0a2bfa3ee tests: Make scrolling checks stricter 2016-09-29 07:13:34 +02:00
Florian Bruhin
450730df2c Add position_absolute.html test file
Supersedes #1984.
2016-09-29 06:49:41 +02:00
Florian Bruhin
609e206816 Use pytest.fail 2016-09-29 06:37:04 +02:00
Florian Bruhin
9eacf42693 Import modules 2016-09-29 06:36:31 +02:00
Florian Bruhin
42b7d1d10f Add a colon 2016-09-29 06:35:47 +02:00
Daniel Karbach
d00750126e remove superfluous pass statement 2016-09-28 15:50:59 +02:00
Daniel Karbach
7884594f1b simplify checks in version invocation test 2016-09-28 15:31:32 +02:00
Daniel Karbach
73e1460556 test for --version invocation 2016-09-28 14:38:15 +02:00
Daniel Karbach
a3bf53d0cd removed blank lines around function docstring
D201/D202
2016-09-27 16:01:25 +02:00
Daniel Karbach
fb68245f2e unit test for utils.version._path_info()
refs #1947
2016-09-27 15:36:18 +02:00
Daniel Karbach
10a1977459 adjust version unit test
to accomodate for new output from path info

refs #1947
2016-09-27 12:48:19 +02:00
Ryan Roden-Corrent
14f8ec8754 Error on mode/command mismatch with :bind.
Resolves #1964 (:bind should error for mode/command mismatch)
2016-09-26 08:30:28 -04:00
Ryan Roden-Corrent
6fdd007dbb Simplify mode-checking in command.
Rather than maintaining separate _modes and _not_modes lists, just
build a single _modes list in the constructor.
2016-09-26 08:30:28 -04:00
Florian Bruhin
45ce430774 Fix test_check_coverage 2016-09-26 08:11:45 +02:00
Florian Bruhin
27b524300b Improve configtypes tests
This also gets configtypes.py back to 100% coverage
2016-09-26 06:33:14 +02:00
Florian Bruhin
ab7cbfdea0 Improve keyhint tests
This also brings them back to 100% coverage
2016-09-25 16:42:13 +02:00
Florian Bruhin
123aace3e8 Fix keyhint tests 2016-09-23 15:05:01 +02:00
Florian Bruhin
e04e6c51d1 Add generator argument to set_register_stylesheet 2016-09-22 17:29:03 +02:00
Florian Bruhin
750dfd98af Generalize statusbar-attached website overlays
We already had some duplicated logic for completion/keyhint/messageview,
and plan to add prompt overlays too now - so here we refactor related
code to have a list of overlays instead, which are all
resized/positioned by the mainwindow when needed.

This also changes the size management, which gets moved into the
sizeHint of the respective overlay widgets.
2016-09-22 17:04:39 +02:00
Florian Bruhin
57d896e989 Fix hints when zoomed with QtWebEngine
We mutated rect (coming from self._js_dict), which means we used the
already adjusted values the second time we called rect_on_view.

Fixes #1863.
2016-09-21 20:09:31 +02:00
Ryan Roden-Corrent
1d2cf3b648 Completer: don't try to partition search.
Exit before trying to partition if the command prefix is not ':'.

Resolves #1969:
'TypeError with refactored completion when searching for command'
2016-09-21 07:08:34 -04:00
Florian Bruhin
49f8fa6d76 Add some tests for earlyinit.fix_harfbuzz
See #1948
2016-09-16 08:43:12 +02:00
Florian Bruhin
e5b3880b71 Check for spaces in URLs with explicit scheme
Fixes #1954
2016-09-15 22:29:21 +02:00
Florian Bruhin
d0d3245d48 Remove extra blank line 2016-09-15 17:19:53 +02:00
Florian Bruhin
04a891cbf0 Merge branch 'kwonly-default-fix' of https://github.com/Kingdread/qutebrowser into Kingdread-kwonly-default-fix 2016-09-15 17:19:26 +02:00
Florian Bruhin
9db3d3f7c3 Merge branch 'completion_tests' of https://github.com/rcorre/qutebrowser into rcorre-completion_tests 2016-09-15 16:47:32 +02:00
Florian Bruhin
018e9ef4a3 Merge branch 'completion_split' of https://github.com/rcorre/qutebrowser into rcorre-completion_split 2016-09-15 16:44:54 +02:00
Daniel Schadt
eabfdb3c16 tests: make sure the type error is the one we want 2016-09-15 16:42:02 +02:00
Florian Bruhin
6e9501073a Remove @qtwebengine_todo for qute:settings 2016-09-15 16:13:51 +02:00
Florian Bruhin
37fa7431b0 Serve broken qutebrowser logo via qute:resources
This is needed when we want to display an error page after the user
requested a qute:// URL, as qute:// URLs can't access file:// content
with QtWebEngine.
2016-09-15 16:06:25 +02:00
Daniel Schadt
b6d9d3f955 fix tests for new "default required" policy
This test had a keyword only parameter without a default, which is now
disallowed. This caused the test to fail.
2016-09-15 15:46:26 +02:00
Daniel Schadt
0ef5d338bd make sure keyword-only arguments have a default
Fixes #1872.

This prevents inspect.Parameter.empty from slipping through to the
command.
2016-09-15 15:44:33 +02:00
Florian Bruhin
8bdcd49626 Fix lint 2016-09-15 15:10:55 +02:00
Florian Bruhin
44e8296a66 Remove environment variables from version()
We already have those in the report anyways.
2016-09-15 14:59:32 +02:00
Florian Bruhin
e338d4b49c Add MessageView tests 2016-09-15 14:51:22 +02:00
Florian Bruhin
7e30792bfe Fix lint 2016-09-15 14:51:22 +02:00
Florian Bruhin
e32bbfa8f7 Init message.global_bridge at import time 2016-09-15 14:51:22 +02:00
Florian Bruhin
43a5c46d82 Don't use @pyqtSlot for MessageMock 2016-09-15 14:51:22 +02:00
Florian Bruhin
fce9783570 Fix unit tests
Apart from changed parameters, messages now log even when messagemock is
used, so we needed to add a few caplog.at_level calls.
2016-09-15 14:51:22 +02:00
Florian Bruhin
713a74cfd4 Fix end2end tests 2016-09-15 14:51:22 +02:00
Florian Bruhin
a2254b671c Adjust tests/messagemock 2016-09-15 14:51:21 +02:00
Florian Bruhin
f16b96aa28 Initial implementation of new messages 2016-09-15 14:51:21 +02:00
Ryan Roden-Corrent
a7eea6a0c1 Rewrite test_on_next_prev_item after refactoring.
Check the value of the signal emitted after each one of a series of
next/prev_item calls.
2016-09-15 07:41:56 -04:00
Ryan Roden-Corrent
a9771007b1 Pass string, not index from on_selection_changed.
Simplify the CompletionWidget/Completer interface by changing
on_selection_changed to pass the newly selected text rather than the
index of the newly selected item.
This moves the logic from Completer to CompletionWidget but simplifies
the interaction between the two and makes testing easier.
2016-09-14 22:55:07 -04:00
Ryan Roden-Corrent
6646bbfe1f Test config completion with a ValueList.
The help, section, and option completion models behavee differently
with a ValueList than with a KeyValue, but previously we only tested
KeyValue.
2016-09-14 17:26:56 -04:00
Ryan Roden-Corrent
657859524f Make completion/test_models more rigorous.
It was checking that every expected item was in the actual item list,
but not visa-versa. This meant that extra completion items could show
up without failing the test.

This caught one bad test case. Bind completion includes aliases, but
the test did not expect this.
2016-09-14 17:26:56 -04:00
Florian Bruhin
5bef7dc74c Use file with known mimetype for qutescheme test 2016-09-14 16:48:49 +02:00
Florian Bruhin
3a27c45ac9 More cleanup in test_webkitqutescheme 2016-09-14 12:08:35 +02:00
Florian Bruhin
5b527d0f1e Rename test_qutescheme to test_webkitqutescheme 2016-09-14 12:07:26 +02:00
Florian Bruhin
cc1e134f25 Fix test_qutescheme.py 2016-09-14 12:05:15 +02:00
Florian Bruhin
0657eeb8f4 Activate QtWebEngine tests for qute:* 2016-09-14 11:14:04 +02:00
Florian Bruhin
4a14083507 Fix :jseval --world contitional in set_text_field
See #1942
2016-09-13 07:59:21 +02:00
Ryan Roden-Corrent
e23d611b37 Strip quotes from completion pattern.
Given a commandline like:
`:set general editor "gvim -f"|`, the pattern should be 'gvim -f'
rather than '"gvim -f"'.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
e65aba74fd Test pattern for Completion.update_completion.
In the update_completion unit test, verify the `pattern` parameter as
well as the `model`.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
b867b87955 Don't crash Completer on unknown command.
The CommandRunner's fallback parsing behavior treated whitespace
differently than the normal flow. When a user entered an unknown
command, trailing whitespace would be stripped and the cmdline length
would be less than the cursor position.

This is fixed by making the fallback use the ShellLexer just as the
'normal' parsing does.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
52fdad8186 Test on_selection_changed with maxsplit 2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
d651cc75b0 Fix flake8/pylint errors. 2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
808a645b40 Fix quick-complete highlighting quirk.
When the commandline reads ':open |', quick-completing the only offered
completion will set the commandline to ':open some_url |'. Since `open`
has `maxsplit=0`, everything after ':open' is (correctly) treated as
one argument. This means completion is opened again with 'some url '
as the pattern (note trailing whitespace), which makes the comletion
menu 'flicker' and stay open even though it was 'supposed' to quick
compelte.

This is fixed by ignoring the next completion request if we just
completed something after maxsplit (because we don't expect any more
completions after the last split).

Resolves #1519.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
127412d91c Simplify update_completion.
Remove the class variables _cursor_part and _empty_item_index. Instead,
split up the commandline around the cursor whenever that information is
needed. Using locals instead of class variables makes the logic easier
to follow and ends up requiring much less code.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
581d7659ba Clean up Completer.on_selection_changed.
Remove the dependency on the class variables _empty_item_index
and _cursor_part to make the code easier to follow. If
_update_completion is refactored in a similar way these variables can
be removed.
2016-09-12 22:19:44 -04:00
Ryan Roden-Corrent
eb384fdda0 Better Completer.on_selection_changed testing.
Preparation for refactoring.
2016-09-12 22:19:44 -04:00
Florian Bruhin
e4192b5158 Yet another flaky test... 2016-09-12 22:49:55 +02:00
Florian Bruhin
1f10c7ff94 Fix broken hint test
The wait we added a few commits earlier was just plain wrong, filtering
the strings isn't going to print that, and shouldn't happen async
anyways...
2016-09-12 22:00:54 +02:00
Florian Bruhin
11abb642ab Remove downloading test with deleting handler
This actually is kind of tricky, and it makes later tests fail because
the tmpdir is suddenly gone...
2016-09-12 20:53:01 +02:00
Florian Bruhin
54c32cc74e Fix long line 2016-09-12 20:41:51 +02:00
Florian Bruhin
07e67740cc Add missing jseval.html 2016-09-12 20:02:03 +02:00
Florian Bruhin
e6680c3c60 Also redirect $HOME for QtWebEngine tests
See https://github.com/The-Compiler/qutebrowser/pull/1637#issuecomment-243043811
2016-09-12 19:55:31 +02:00
Florian Bruhin
08e95f76a6 QtWebEngine: Stabilize/reactivate two hint tests 2016-09-12 18:59:37 +02:00
Florian Bruhin
516bfb5ba3 Un-flaky another test waiting for scrolling 2016-09-12 18:58:31 +02:00
Florian Bruhin
c40325b510 Stabilize "Jumping back after searching" test
The test was flaky because waiting for scrolling didn't actually wait,
as the page logged a scroll position change to 0/0 directly after
loading.

We work around this by making the generic "And I wait until the scroll
position changed" not wait when it changed to 0/0.
2016-09-12 18:53:56 +02:00
Florian Bruhin
9e20e3a802 Skip :jseval with world tests for PyQt < 5.7.0 2016-09-12 18:30:49 +02:00
Florian Bruhin
c9e3cc04cf Accept a name for --world with :jseval 2016-09-12 18:23:23 +02:00
Florian Bruhin
2281f0c790 Fix :insert-text test for QtWebEngine 2016-09-12 15:59:23 +02:00
Florian Bruhin
b2608d7697 Add --world to :jseval 2016-09-12 15:59:17 +02:00
Florian Bruhin
fa78cc9f69 tests: Allow to mark JS errors as expected 2016-09-12 15:57:02 +02:00
Florian Bruhin
b645a88ade Stabilize :insert-text tests
With QtWebEngine, inserting text into the field is async, so if our
test runs too fast, it would fail. Now we instead log stuff via JS on
changes insteaad, and wait for those log messages in the tests.
2016-09-12 15:25:03 +02:00
Florian Bruhin
d988f919d7 Fix test_quteprocess.py 2016-09-12 12:01:31 +02:00
Florian Bruhin
2388489038 downloads: Be okay with the tmpdir being gone 2016-09-12 11:30:44 +02:00
Florian Bruhin
38a3d118ab Nicer linebreaking in _render_log 2016-09-12 11:24:57 +02:00
Florian Bruhin
469c75662e Fix docstring 2016-09-12 11:24:20 +02:00
Florian Bruhin
8afb02eef7 bdd: Don't log VDEBUG lines without --verbose 2016-09-12 11:23:56 +02:00
Florian Bruhin
fff777404b Use QApplication.postEvent again
We had some funny segfaults reported during scrolling (i.e. with
QApplication.sendEvent), and some code already had to use postpone=True
so there was no segfault...

So now we're back to postEvent again, and eliminated the main reason for
segfaults with it, which was re-using (and -posting) events which had
already been posted.

At least during tests this seems to run stable, let's hope it helps for
the people having crashes as well.
2016-09-11 19:37:09 +02:00
Florian Bruhin
ac7ee5ed8b Stabilize :tab-clone tests
Those were flaky with QtWebEngine on OS X:
https://travis-ci.org/The-Compiler/qutebrowser/jobs/159094434
2016-09-11 16:22:20 +02:00
Florian Bruhin
101d30fe1e Make _get_echo_exe_path() private in bdd conftest 2016-09-11 16:15:27 +02:00
Florian Bruhin
1fe2579bb1 Merge branch 'windows-userscripts' of https://github.com/Kingdread/qutebrowser into Kingdread-windows-userscripts 2016-09-11 16:14:25 +02:00
Florian Bruhin
11ee5befcc Fix download tests on Windows 2016-09-11 15:53:46 +02:00
Florian Bruhin
b949e4d73a Start splitting DownloadModel from DownloadManager
This mostly works, apart from remove_item/remove_items not being
available on the model.
2016-09-11 14:58:07 +02:00
Florian Bruhin
4c55963dc3 Fix lint 2016-09-10 17:32:04 +02:00
Florian Bruhin
b2d8905d68 Remove {downloaddir} in downloads.feature
We can just use (tmpdir) instead which we already use everywhere else as
well.
2016-09-10 16:42:27 +02:00
Florian Bruhin
0ba74ad023 Add Qt model test for download model 2016-09-10 16:42:26 +02:00
Florian Bruhin
d13f88f0ac Add lots of new BDD tests for downloads 2016-09-10 16:42:26 +02:00
Florian Bruhin
dc8396986e FIx expected message in test_invocations 2016-09-10 16:42:26 +02:00
Florian Bruhin
a21cd9f56e Set remove-finished-downloads in download tests 2016-09-10 16:42:26 +02:00
Florian Bruhin
17caf80f2a bdd: Add "I wait for the javascript message" step 2016-09-10 16:42:26 +02:00
Florian Bruhin
9f1aacc4f0 Move pdfjs check to the end2end conftest 2016-09-10 16:24:31 +02:00
Florian Bruhin
230cd40b12 Add a test for a misconfigured XDG_DOWNLOAD_DIR
See #866 and #1269.
2016-09-09 18:46:51 +02:00
Florian Bruhin
a4d0449e19 Use a shorter XDG_RUNTIME_DIR for temp_basedir_env
Otherwise with longer test names, we can't listen to the IPC server as
the filename is too long for a local socket.
2016-09-09 18:46:51 +02:00
Florian Bruhin
143a4af91b Improve :download-open tests 2016-09-09 18:46:51 +02:00
Florian Bruhin
2df971a79c Move short_tmpdir fixture to conftest.py 2016-09-09 18:46:51 +02:00
Florian Bruhin
b5b46332c7 Add test for downloading to an inexistent dir 2016-09-09 18:46:51 +02:00
Florian Bruhin
d64241bed9 Add a test for a download without content-size 2016-09-09 18:46:51 +02:00
Florian Bruhin
2177aa574c Improve download BDD tests
This reorganizes the existing tests a bit and adds some new ones.
2016-09-09 18:46:51 +02:00
Florian Bruhin
7611281563 Add basename to "download finished" message 2016-09-09 18:46:51 +02:00
Florian Bruhin
864ec94cde Fix lint 2016-09-09 17:56:58 +02:00
knaggita
9ff3f6810a Remove --qt-* arguments 2016-09-09 17:55:16 +02:00
Florian Bruhin
d0cf452ec8 Remove :prompt-yes and :prompt-no
Those are replaced by :prompt-accept yes and :prompt-accept no
2016-09-09 15:59:00 +02:00
Florian Bruhin
d579697245 Add a value argument to :prompt-accept 2016-09-09 15:48:42 +02:00
Florian Bruhin
71a89bd418 *Really* fix completion with multiple words.
Turns out re.escape also escapes spaces, so we'd need to replace '(\\ )'
groups after escaping. At this point it's easier to just combine spaces
before escaping the pattern.

Fixes #1934.
Supersedes #1935.
2016-09-09 09:03:18 +02:00
Daniel Schadt
b0114768c7 fix spawn tests on Windows
On Windows, no echo.exe exists normally, so calling echo from the tests
is no good idea, since it relies on Cygwin to be installed and in %PATH%
(so that echo.exe is available).

This fixes this by providing a small echo.bat which is callable from the
tests, and then using a platform-specific path to the executable instead
of the hardcoded "echo". This should ensure that the tests pass even on
systems where echo.exe is not installed.

Note that we can't simply use a do-nothing exe (like rundll or hh.exe),
as we're passing parameters, and those executables may behave
differently in the presence of those parameters.
2016-09-08 23:14:10 +02:00
Daniel Schadt
f6c6f766cd add newline at the end of the file 2016-09-08 23:13:00 +02:00
Florian Bruhin
0a3853fcb7 Fix handling of spaces in completion
This is a regression introduced in
faa052ad6f.

Fixes #1934.
2016-09-08 21:59:18 +02:00
Florian Bruhin
93428c4e2b Skip instead of xfail JS prompt test on WebEngine
We probably get stuck with a visual JS prompt, so for some reason the
following header tests fail.
2016-09-07 20:25:56 +02:00
Florian Bruhin
26025214ed Mark session loading tests with @qtwebengine_flaky 2016-09-07 19:03:41 +02:00
Florian Bruhin
a119e9d5b0 Mark :insert-text with undo test as xfail on OS X 2016-09-07 19:01:24 +02:00
Florian Bruhin
d299fd260c Fix adblock tests 2016-09-07 18:53:11 +02:00
Florian Bruhin
f3d540b375 Fix adblock tests 2016-09-07 18:47:39 +02:00
Florian Bruhin
44d1056e54 QtWebEngine: Implement custom HTTP headers 2016-09-07 18:29:38 +02:00
Florian Bruhin
3ce9e795a1 Add a simple end2end test for :adblock-update 2016-09-07 16:27:27 +02:00
Florian Bruhin
8cef35517f Add a manual test file for uploading files 2016-09-07 13:40:05 +02:00
Florian Bruhin
fca37abf55 QtWebEngine: Implement webelem.classes 2016-09-07 12:31:48 +02:00
Florian Bruhin
522049132b Add a test for hinting with ACE editor 2016-09-07 12:28:12 +02:00
Florian Bruhin
3e1583bb1c Make WebKitElement._is_visible private
It makes a lot of sense for this to be in webkitelem.py, but it should
not be public API as it's only used internally and can't be implemented
here with QtWebEngine.
2016-09-07 11:58:39 +02:00
Florian Bruhin
60c86a08c4 Get rid of WebElement.debug_text 2016-09-07 11:47:39 +02:00
Florian Bruhin
2da827462e Add a test to make sure check_coverage files exist 2016-09-07 11:37:21 +02:00
Florian Bruhin
e700d11447 Add check_vanished() in webkitelem.insert_text 2016-09-07 11:29:26 +02:00
Florian Bruhin
8f9cfcf232 Get rid of webelem.run_js_async 2016-09-07 11:27:37 +02:00
Florian Bruhin
78d64f4791 Get rid of webkitelem.focus_elem 2016-09-07 11:24:28 +02:00
Florian Bruhin
c267776491 Add missing :leave-mode for insert-mode test
Otherwise we hint while still in insert mode - while this seems to work
fine, let's do things the cleaner way.
2016-09-07 11:21:27 +02:00
Florian Bruhin
948fa033c7 Implement :insert-text for QtWebEngine 2016-09-07 11:20:32 +02:00
Florian Bruhin
ee5a972069 Move auto-insert-mode handling to browsertab
This means auto-insert-mode now works correctly with QtWebEngine.
2016-09-07 10:24:27 +02:00
Florian Bruhin
919196714b QtWebEngine: Implement WebEngineScroller.at_bottom 2016-09-07 09:32:51 +02:00
Florian Bruhin
cf6cffeb08 tests: Ignore "Xlib: sequence lost" error 2016-09-06 22:10:34 +02:00
Florian Bruhin
08302c5a5f Apply @qtwebengine_flaky (too) liberally 2016-09-06 22:10:28 +02:00
Florian Bruhin
1106104700 Add a @qtwebengine_flaky marker 2016-09-06 21:43:02 +02:00
Florian Bruhin
37b1c26e1c Don't check active win for WebEngine session test 2016-09-06 21:22:50 +02:00
Florian Bruhin
e3e7366863 Make pylint shut up 2016-09-06 21:21:37 +02:00
Daniel Schadt
22ac19b151 style fixes 2016-09-06 20:33:48 +02:00
Florian Bruhin
c58a0e926f Skip scrolling tests on Qt < 5.7
This fixes tests on OS X on Travis, since Homebrew is still on Qt 5.6.
2016-09-06 20:29:58 +02:00
Florian Bruhin
22d9c49169 Stabilize scrolling in :repeat-command test 2016-09-06 19:34:38 +02:00
Florian Bruhin
010a52efb8 Stabilize :tab-detach test in invoke.feature
When we detach a tab, we need to wait until the page is actually loaded
in the newly detached tab before saving the session.
2016-09-06 19:33:09 +02:00
Florian Bruhin
c59a1535c5 Don't check active window in session test
This is flaky as we don't know which window is actually focused.
2016-09-06 19:29:12 +02:00
Daniel Schadt
0ab1902c98 add an userscript test for Windows 2016-09-06 18:41:24 +02:00
nanjekyejoannah
d3e19ec8fc Add general -> yank-ignored-url-parameters 2016-09-06 18:19:40 +02:00
Florian Bruhin
e77bf62ace Remove unnecessary @qtwebengine_createWindow tags
Since we did now remove the error message, some more tests actually run
fine without the createWindow patch.
2016-09-06 18:04:54 +02:00
Florian Bruhin
7356e32b94 QtWebEngine: Don't search the Holy Grail 2016-09-06 17:38:13 +02:00
Florian Bruhin
fcaadb9352 Stabilize :save-session --force test 2016-09-06 17:04:13 +02:00
Florian Bruhin
c6d6483929 bdd: Show what exactly failed with InvalidLine 2016-09-06 17:00:25 +02:00
Florian Bruhin
7f013b7808 Fix lint 2016-09-06 17:00:25 +02:00
Florian Bruhin
ce1b2e6f15 quteprocess: Only wait for first about:blank load
We accidentally marked all about:blank lines as waited for...
2016-09-06 17:00:25 +02:00
Florian Bruhin
8b3517af7b bdd: Skip another flaky QtWebEngine tabs test 2016-09-06 17:00:25 +02:00
Florian Bruhin
c07ff15b9b bdd: Display milliseconds in log output 2016-09-06 17:00:25 +02:00
Florian Bruhin
52649aea70 bdd: Improve output when line was already found 2016-09-06 15:55:22 +02:00
Florian Bruhin
db7de0d619 tests: Set waited_for for initial about:blank load
Otherwise, subsequent lines where we wait for about:blank will fall back
on the older one and not actually wait.
2016-09-06 15:50:36 +02:00
Florian Bruhin
82180429ed Add missing wait in :undo test 2016-09-06 15:50:27 +02:00
Florian Bruhin
4b431fdf61 Add some more @qtwebengine_createWindow tags 2016-09-06 15:28:30 +02:00
Florian Bruhin
8a5d7455c1 Skip some broken :undo tests with QtWebEngine 2016-09-06 15:28:19 +02:00
Florian Bruhin
7b9b08a167 QtWebEngine: Fix session tests 2016-09-06 15:13:43 +02:00
Florian Bruhin
85b3d08c66 bdd: Fix scrolling tests with QtWebEngine
Scrolling happens async with QtWebEngine, so we add a new log output
when the page was scrolled, and wait for that in various places.
2016-09-06 14:58:33 +02:00
Florian Bruhin
f6392d730f Stabilize test in invoke.feature
When we use about:blank, the wait doesn't actually wait (because we
already did open about:blank earlier), so we need to use another URL or
this test will be flaky.
2016-09-06 14:04:54 +02:00
Florian Bruhin
2e49368b51 Add missing @qtwebengine_createWindow tag 2016-09-06 13:56:41 +02:00
Florian Bruhin
1ed637a906 QtWebEngine: Initial session implementation 2016-09-06 13:55:35 +02:00
Florian Bruhin
4f55b435f0 Move various session unit tests to BDD tests 2016-09-06 13:55:28 +02:00
Florian Bruhin
f6ba859896 Move tabhistory.TabHistoryItem to misc.sessions
This makes browser.webkit.tabhistory contain only QtWebKit-specific
code.
2016-09-06 09:50:55 +02:00
Florian Bruhin
108c091894 Get rid of test_smoke.py
If anything is broken in those tests, other tests are going to be broken
as well, so this is just a waste of time.
2016-09-06 08:05:23 +02:00
Florian Bruhin
26aeff2332 testprocess: Don't fail if it was never started 2016-09-06 08:05:23 +02:00
Florian Bruhin
d819ce1b18 Read --qute-bdd-webengine in test_invocations.py 2016-09-06 08:05:16 +02:00
Florian Bruhin
cf44019475 Don't require QtWebEngine for history tests 2016-09-05 22:25:20 +02:00
Florian Bruhin
ff5bfced9d Skip flaky QtWebEngine :forward test 2016-09-05 22:05:12 +02:00
Florian Bruhin
1e0f97b64d pylint: Disable invalid-name in helpers/fixtures 2016-09-05 21:32:45 +02:00
Florian Bruhin
7592345b6e Make unittests work without QtWebKit 2016-09-05 18:45:50 +02:00
Florian Bruhin
59300cb71e Add tests for js-can-open-windows-automatically 2016-09-05 17:25:52 +02:00
Florian Bruhin
0b3656c446 tests: Don't wait for nonexistant log message 2016-09-05 17:25:41 +02:00
Florian Bruhin
525d5ce922 Mark another flaky test with @qtwebengine_skip 2016-09-05 17:10:30 +02:00
Florian Bruhin
d2a3541d6e Make pylint shut up 2016-09-05 16:54:31 +02:00
Florian Bruhin
22be46e7d3 Skip flaky QtWebEngine test 2016-09-05 16:53:27 +02:00
Florian Bruhin
f26ce3a8ff Only add BDD markers if condition matches
This should make multiple markers on the same test work correctly.
2016-09-05 16:49:17 +02:00
Florian Bruhin
bdc1885f6d Add missing @qtwebengine_createWindow marker 2016-09-05 16:48:21 +02:00
Florian Bruhin
a94cf90842 Fail early when running WebEngine tests without it 2016-09-05 16:33:06 +02:00
Florian Bruhin
61270b8f92 Fix lint 2016-09-05 16:21:30 +02:00
Florian Bruhin
ba718a2b9d end2end: Improve output when subprocess exits
We don't really have the "infrastructure" set up yet to have proper log
output at that point, but we can always just show the log output as part
of the exception.
2016-09-05 16:19:22 +02:00
Florian Bruhin
c6142df3ec bdd: Re-add test for #906 for QtWebEngine 2016-09-05 15:53:31 +02:00
Florian Bruhin
6151a5faa7 bdd: Fix handling of @qtweb{kit_engine}_* tags 2016-09-05 15:53:19 +02:00
Florian Bruhin
21fe8f43f9 tests: Fix handling of QUTE_BDD_WEBENGINE
The tryfirst decorator somehow messed up handling of other pytest
marks... Also we need to do this in the root conftest for it to work
properly.
2016-09-05 15:32:12 +02:00
Florian Bruhin
f2c4cedf61 QtWebEngine: Don't add invalid URLs to history 2016-09-05 15:08:00 +02:00
Florian Bruhin
8115fa2af8 Re-enable some createWindow tests 2016-09-05 15:08:00 +02:00
Florian Bruhin
a52c8d6576 Clean up javascript double-close test
The test for QtWebEngine was removed because something weird happened
with the two pytest-bdd tags, and I'm too annoyed with everything being
broken to investigate now... Future me, I'm sorry.
2016-09-05 15:08:00 +02:00
Florian Bruhin
ce98d89352 Add some (crashing...) window.open/.close tests 2016-09-05 15:08:00 +02:00
Florian Bruhin
cf89204ac3 Only skip because of QTBUG-54419 with WebEngine 2016-09-05 15:08:00 +02:00
Florian Bruhin
141b7c5893 Increase timeout in auto-follow-timeout test 2016-09-05 15:08:00 +02:00
Florian Bruhin
ebf093bb6e tests: Skip unittests with QUTE_BDD_WEBENGINE 2016-09-05 15:08:00 +02:00
Florian Bruhin
aec0e4ca40 tests: Fix applying of end2end marker 2016-09-05 15:08:00 +02:00
Florian Bruhin
19ac488997 tests: Add QUTE_BDD_WEBENGINE environment variable 2016-09-05 15:08:00 +02:00
Florian Bruhin
cf070d48f2 WebEngine: Disable createWindow for Qt < 5.7.1
Fixes #1911.

The bugfix is backported in my qt5-webengine-debug package, and
QUTE_QTBUG54419_PATCHED can be set to force qutebrowser to use
createWindow.
2016-09-05 15:08:00 +02:00
Florian Bruhin
2c2375ff18 Add a separate QtWebEngine test for #906 2016-09-05 15:08:00 +02:00
Florian Bruhin
30327b2acf Move end2end tag handling to end2end/conftest.py 2016-09-05 15:08:00 +02:00
Florian Bruhin
6c6e98aac4 Add a @qtwebkit_skip marker 2016-09-05 15:08:00 +02:00
Florian Bruhin
30c07e9b5c tests: Add url to window_open.html 2016-09-05 15:08:00 +02:00
Florian Bruhin
a4cd0291a6 Implement QWebEngineView.createWindow 2016-09-05 15:08:00 +02:00
Florian Bruhin
a85ea92a21 Merge branch 'open-editor-all-modes' of https://github.com/kobezda/qutebrowser into kobezda-open-editor-all-modes 2016-09-05 10:59:53 +02:00
Ján Kobezda
da65f7234a Allow :open-editor in modes other than insert
':open-editor' can now be run in all modes.

Resolves #1902
2016-09-04 22:23:16 +02:00
Florian Bruhin
ea4f4e197f Handle elements which are out of view correctly
Fixes #1910
2016-09-04 21:09:15 +02:00
Florian Bruhin
faa052ad6f Fix hang with multiple spaces in URL completion 2016-09-04 20:19:16 +02:00
Florian Bruhin
1e601d3419 Add apikey to test_pastebin.py 2016-09-02 06:10:21 +02:00
Florian Bruhin
6798583e91 Merge branch 'test_yanking' of https://github.com/julianuu/qutebrowser into julianuu-test_yanking 2016-09-01 22:05:21 +02:00
arza
9b6541638e Update CHANGED_KEY_COMMANDS and test_migrations for sk-keybinding. 2016-09-01 21:05:44 +03:00
Florian Bruhin
654260dd2e Add blank line 2016-09-01 07:09:06 +02:00
Ryan Roden-Corrent
24a5bffbd8 Test for completion warnings with 1 item.
Add a regression test for #1600: Warnings from completionwidget when it
only has 1 item.

Addresses #1899.
2016-08-31 22:25:34 -04:00
Ryan Roden-Corrent
48fe309a48 Regression test for repeated completion.
Add a completionwidget unit test for #1812: help completion repeatedly
completes.

Addresses #1899.
2016-08-31 22:16:26 -04:00
Julian Weigt
fc3c93d3dd run test for clipboard also if selection is not supported 2016-08-30 11:30:32 +02:00
Florian Bruhin
b9282587d0 Merge branch 'auto-open-fixes' of https://github.com/mlochbaum/qutebrowser into mlochbaum-auto-open-fixes 2016-08-29 07:12:14 +02:00
Florian Bruhin
1c0cbc3269 Improve qute:settings tests 2016-08-29 07:09:14 +02:00
Florian Bruhin
5917f34eab Merge branch 'settings' of https://github.com/lahwaacz/qutebrowser into lahwaacz-settings 2016-08-29 06:52:17 +02:00
Jakub Klinkovský
b272fce2cf fix test for setting an invalid value via qute://settings 2016-08-26 15:33:35 +02:00
Jakub Klinkovský
9ff945c56f add tests for qute://settings 2016-08-26 14:51:40 +02:00
Florian Bruhin
187bfa8fce tests: Use pytest_register_assert_rewrite 2016-08-26 06:22:03 +02:00
Florian Bruhin
2650d9350d bdd: Improve webserver error on unexpected status
pytest 3.0 removed the assertion reinterpretation which made this nice:
https://github.com/pytest-dev/pytest/issues/1871
2016-08-25 22:58:14 +02:00
Florian Bruhin
8823ed2821 Improve cmdutils tests
This would have caught 12061b8bb1.
2016-08-25 22:16:25 +02:00
Florian Bruhin
943dc564b2 Fix choices validation with unannotated args
Something like:

    @cmdutils.argument('foo', choices=['one', 'two'])
    def func(foo):
        # ...

didn't actually validate the foo argument, since the inferred type of
the argument is None, and that skipped all conversion (and thus
validation).

Fixes #1871
See #1885

This is a reworked version of 12061b8bb1
which lets special parameters (count/win_id/flags) through correctly.
2016-08-25 22:16:25 +02:00
Julian Weigt
853e75e3db Split test for yanking 2016-08-25 13:41:47 +02:00
Julian Weigt
193d219eaf Added test for yanking 2016-08-24 17:39:52 +02:00
Florian Bruhin
6b4f719897 Revert "tests: Add a autouse fixture as workaround"
This reverts commit 853f4cd9d8.
2016-08-24 07:23:00 +02:00
Florian Bruhin
445d287955 Revert "Fix choices validation with unannotated args"
This reverts commit 12061b8bb1.
2016-08-23 23:34:02 +02:00
Florian Bruhin
8c9bf96435 Merge branch 'test_no_dict' of https://github.com/julianuu/qutebrowser into julianuu-test_no_dict 2016-08-23 23:08:51 +02:00
Florian Bruhin
12061b8bb1 Fix choices validation with unannotated args
Something like:

    @cmdutils.argument('foo', choices=['one', 'two'])
    def func(foo):
        # ...

didn't actually validate the foo argument, since the inferred type of
the argument is None, and that skipped all conversion (and thus
validation).

Fixes #1871
See #1885
2016-08-23 22:01:21 +02:00
Florian Bruhin
64a61ce07f Merge branch 'pytest30' 2016-08-23 09:03:24 +02:00
Florian Bruhin
a17b8bec90 Don't treat "Hello." as URL with auto-search=naive 2016-08-23 09:02:39 +02:00
Florian Bruhin
f45c4d73f4 Split test_is_url into three separate tests 2016-08-23 08:07:45 +02:00
Florian Bruhin
77aa8b4337 pylint: Use ignored-modules for pytest
See https://github.com/PyCQA/astroid/pull/357
2016-08-23 07:45:31 +02:00
Florian Bruhin
3b6286f71a Remove old pylint suppression for ssl.PROTOCOL_* 2016-08-23 07:45:15 +02:00
Florian Bruhin
23c4c89a0f tests: Set __tracebackhide__ to a callable
This allows us to only filter the exceptions we actually want to hide.

See #1877
2016-08-23 07:28:08 +02:00
Florian Bruhin
0c6574afb1 Replace py.test with pytest
See #1877
2016-08-22 07:41:10 +02:00
Florian Bruhin
df3733af54 tests: Use pytest.fixture instead of yield_fixture
See #1877
2016-08-22 07:40:24 +02:00
Florian Bruhin
4658bdcacf Use pytest.approx in tests.helpers.utils
See #1877
2016-08-22 07:39:11 +02:00
Florian Bruhin
853f4cd9d8 tests: Add a autouse fixture as workaround
This is a workaround for
https://github.com/pytest-dev/pytest/issues/1832
2016-08-22 07:24:17 +02:00
Florian Bruhin
80a3920aad Revert "Revert "tests: Use getfixturevalue""
This reverts commit c8fe21c85f.
2016-08-22 07:24:17 +02:00
Marshall Lochbaum
994c6e35d9 Test completion show when calling next with no completion 2016-08-21 23:05:56 -04:00
Marshall Lochbaum
fb9867b6a7 Add tests for completion show with no rows 2016-08-21 22:57:16 -04:00
Marshall Lochbaum
cbecd48871 Refactor Completer/CompletionView interface, removing set_pattern() 2016-08-21 22:56:18 -04:00
Julian Weigt
be89e8f499 Add check that qutebrowser defaults to letter hints 2016-08-21 19:37:30 +02:00
Florian Bruhin
c8fe21c85f Revert "tests: Use getfixturevalue"
This reverts commit 961d33b712.
2016-08-21 16:59:54 +02:00
Florian Bruhin
961d33b712 tests: Use getfixturevalue
See #1877
2016-08-21 16:18:33 +02:00
Julian Weigt
f98ba7ba0e Added test for empty dictionary 2016-08-21 15:33:55 +02:00
Florian Bruhin
618a9cbc57 Fix lint 2016-08-20 22:57:09 +02:00
Florian Bruhin
bd53d4a410 tests: Clean up test_utils 2016-08-20 22:39:53 +02:00
Florian Bruhin
5bdeacd772 tests: Clean up test_config 2016-08-20 22:26:32 +02:00
Florian Bruhin
cfbd02eaba tests: Clean up test_column_widths 2016-08-20 22:08:07 +02:00
Florian Bruhin
4c2b64b573 tests: Clean up test_http 2016-08-20 22:07:12 +02:00
Florian Bruhin
794bdf54a3 tests: Clean up test_log 2016-08-20 21:57:52 +02:00
Marshall Lochbaum
e4cec43cf4 Add quick-complete to completion widget tests 2016-08-20 01:27:39 -04:00
Marshall Lochbaum
2db0ec8b6d Fix test_completion_show name and docstring 2016-08-20 01:13:32 -04:00
Marshall Lochbaum
64d53e4cf9 Add unit test for completion show 2016-08-20 01:01:38 -04:00
Marshall Lochbaum
08b348be50 Merge branch 'master' into auto-open-fixes 2016-08-19 22:50:26 -04:00
Florian Bruhin
679165ebab Remove unneeded import 2016-08-19 19:02:12 +02:00
Florian Bruhin
99c2f8eca5 Add missing import 2016-08-19 19:02:02 +02:00
Florian Bruhin
dec0f0753d Relax the checking in :view-source test 2016-08-19 17:22:07 +02:00
Florian Bruhin
003952748b Turn on BDD tests for pytest 3.0 again
pytest-bdd is fixed in the respective PR
2016-08-19 17:17:08 +02:00
Florian Bruhin
1cfadbf034 Fix / ? : bindings
This was broken in #1859 and I didn't notice...
2016-08-19 15:35:20 +02:00
Florian Bruhin
5367434a13 Add a unit test for :debug-log-filter 2016-08-19 15:20:08 +02:00
Florian Bruhin
3b897d6a64 bdd: Move :debug-log-* near :log-capacity tests 2016-08-19 15:05:45 +02:00
Florian Bruhin
6781f6409b bdd: Test :debug-log-capacity with negative value 2016-08-19 15:05:20 +02:00
Florian Bruhin
33e71525ed bdd: Test :debug-log-filter with invalid filter 2016-08-19 15:04:11 +02:00
Florian Bruhin
75c3b1a9f8 Fix test for :debug-log-level with invalid level
Since we're getting dictionary keys in choices=..., we need to sort them
so we get a consistent message.
2016-08-19 14:57:21 +02:00
Florian Bruhin
37758131f5 Delete broken :debug-log-{filter,level} tests 2016-08-19 14:43:42 +02:00
knaggita
bd6f4ae7c0 Add end2end tests issue52 2016-08-19 14:21:06 +02:00
knaggita
1d5a3a6175 Add :debug-loglevel :debug-logfilter commands 2016-08-19 14:12:19 +02:00
Florian Bruhin
8eb8039370 Merge branch 'rewrite-pP' of https://github.com/blyxxyz/qutebrowser into blyxxyz-rewrite-pP 2016-08-19 13:36:33 +02:00
Florian Bruhin
b5444338ba Fix lint 2016-08-19 13:35:39 +02:00
Florian Bruhin
f7a7e82939 bdd: Skip another flaky backforward test with qtwe 2016-08-19 13:15:45 +02:00
Florian Bruhin
2eae6a0603 bdd: Wait less for xfailing tests
We now divide all timeouts by ten for xfailing tests, with the hope to
still catch newly passing tests, but not spend too much time waiting.

With a quick test, this reduced the testsuite run length from 12 to
7-8 minutes.
2016-08-19 13:11:29 +02:00
Florian Bruhin
362c23692a Change quteproc._request back to quteproc.request
Otherwise our per-test quteproc fixture wouldn't set the 'request'
object properly from the outside, and quteproc always had a module as
request.node.
2016-08-19 13:05:59 +02:00
Florian Bruhin
8378e16139 Fix ignored tag in misc.feature
Seems like pytest-bdd ignores that second tag...
2016-08-19 12:20:23 +02:00
Florian Bruhin
6cd890aa19 bdd: Set request object on QuteProc 2016-08-19 12:15:50 +02:00
Florian Bruhin
c0c3279424 Fix test_quteprocess.test_set with QtWebEngine
network -> accept-language is not available for QtWebEngine, and we
simply need a setting which accepts an arbitrary string.
2016-08-19 11:25:59 +02:00
Florian Bruhin
3d1859b13e Fix lint 2016-08-19 00:05:56 +02:00
Florian Bruhin
a88adcca17 bdd: Stop checking requests in yankpaste.feature
It's not needed and only makes the test more unreliable (e.g. flaky with
QtWebEngine)
2016-08-18 23:58:33 +02:00
Florian Bruhin
044b3df872 bdd: Skip another flaky test for QtWebEngine 2016-08-18 23:47:27 +02:00
Florian Bruhin
fa0bde631d bdd: at_top is actually implemented (scroll) 2016-08-18 23:47:09 +02:00
Florian Bruhin
ea0f137fd1 bdd: Tag flaky backforward test qtwebengine_skip 2016-08-18 23:33:56 +02:00
Florian Bruhin
44c74c0887 tests: Mark test_mhtml_e2e as qtwebengine_todo 2016-08-18 23:32:26 +02:00
Florian Bruhin
914ce85780 tests: Fix quteproc_new fixture 2016-08-18 23:31:18 +02:00
Florian Bruhin
33755b09df Skip :insert-text in test_insert_mode in webengine 2016-08-18 23:30:35 +02:00
Florian Bruhin
4d1ae999c6 tests: Allow to mark files as qtwebengine_todo 2016-08-18 23:28:37 +02:00
Florian Bruhin
322a4323cb Improve file validating in test_hints 2016-08-18 23:28:27 +02:00
Florian Bruhin
1eb0eabdab test_hints_html: Split off _parse_file 2016-08-18 23:14:21 +02:00
Florian Bruhin
63cc73d56d Try to make test_hints work with QtWebEngine 2016-08-18 23:10:37 +02:00
Florian Bruhin
94e3d7b050 Mark test_dirbrowser as qtwebengine_skip 2016-08-18 23:05:31 +02:00
Florian Bruhin
339ac42623 bdd: Mark :insert-text tests as @qtwebengine_todo 2016-08-18 23:04:03 +02:00
Florian Bruhin
d2f69db0ff bdd: Mark qute:bookmarks tests as qtwebengine_todo 2016-08-18 23:00:10 +02:00
Florian Bruhin
63628d2f97 bdd: Wait for any focus object in tabs.feature
With QtWebEngine, we get a "Focus object changed" logged pointing to the
QOpenGLWidget, not the tab.
2016-08-18 22:57:21 +02:00
Florian Bruhin
50031c5aae bdd: xfail in check_open_tabs for QtWebEngine 2016-08-18 22:54:41 +02:00
Florian Bruhin
15f142880e bdd: Mark qute:settings test as @qtwebengine_todo 2016-08-18 22:52:36 +02:00
Florian Bruhin
1763f9bb58 bdd: Mark search/sessions as qtwebengine_todo 2016-08-18 22:50:57 +02:00
Florian Bruhin
2969d3dc91 bdd: Mark prompt.feature as TODO on QtWebEngine 2016-08-18 22:47:11 +02:00
Florian Bruhin
84b8ea856d bdd: Skip :scroll-page+navigate tests on webengine 2016-08-18 22:46:48 +02:00
Florian Bruhin
8da942ddc7 bdd: Skip tests on WebEngine causing memory leaks 2016-08-18 22:46:32 +02:00
Florian Bruhin
1c581cf1cf quteproc: Ignore failing messages on xfail
When a test calls pytest.xfail it might stop early, so the message
doesn't get marked as ignored.
2016-08-18 22:23:29 +02:00
Florian Bruhin
d5131aa0a4 navigate.feature: Add @qtwebengine_todo 2016-08-18 22:23:11 +02:00
Florian Bruhin
69514df126 hints.feature: Skip flaky test on QtWebEngine 2016-08-18 22:22:56 +02:00
Florian Bruhin
0557fea79e Use QApplication.sendEvent instead of postEvent
From the QApplication.postEvent docs:
http://doc.qt.io/qt-5/qcoreapplication.html#postEvent

  The event must be allocated on the heap since the post event queue
  will take ownership of the event and delete it once it has been
  posted. It is not safe to access the event after it has been posted.

We can't reliably guarantee that from Python, so we need to use
sendEvent instead.
2016-08-18 21:36:43 +02:00
Florian Bruhin
25faa04196 bdd: Add qtwebengine tags in misc.feature 2016-08-18 20:34:03 +02:00
Florian Bruhin
ec59bfb584 bdd: Handle @qtwebengine_skip tag 2016-08-18 20:33:53 +02:00
Florian Bruhin
788eebc1ad bdd: Ignore "Running without the SUID sandbox!" 2016-08-18 19:29:34 +02:00
Florian Bruhin
577f1b850a bdd: Make :jseval tests work with QtWebEngine 2016-08-18 19:26:50 +02:00
Florian Bruhin
d298787b1a bdd: Make marks.feature work with QtWebEngine 2016-08-18 19:22:18 +02:00
Florian Bruhin
105c1952a8 bdd: Skip scroll checks with QtWebEngine 2016-08-18 19:20:48 +02:00
Jan Verbeek
b6c96855c8 Rewrite paste -s/pP 2016-08-18 19:05:35 +02:00
Florian Bruhin
2cbaf0ccb3 Add @qtwebengine_todo in javascript.feature 2016-08-18 18:44:07 +02:00
Florian Bruhin
e477b810bd bdd: Mark backforwards test as qtwebengine_todo 2016-08-18 18:29:10 +02:00
Florian Bruhin
0c50e7dfb9 WebEngine: Don't bother running downloads.feature 2016-08-18 18:28:41 +02:00
Florian Bruhin
f03cd5022e pylint doesn't know pytest.xfail 2016-08-18 18:27:24 +02:00
Florian Bruhin
ab4e442602 QtWebEngine: Don't bother running caret.feature 2016-08-18 18:26:31 +02:00
Florian Bruhin
001e839ca9 Remove qtwebengine_todo for backforward.feature 2016-08-18 18:22:44 +02:00
Florian Bruhin
2d97ffa323 bdd: xfail in compare_session with WebEngine 2016-08-18 18:20:25 +02:00
Florian Bruhin
e950b09027 tests: Get history.feature to work with WebEngine 2016-08-18 18:17:01 +02:00
Florian Bruhin
8d381aaa01 tests: Improve @qtwebengine_* markers
This uses xfail for @qtwebengine_todo and adds a new @qtwebengine_skip
marker.
2016-08-18 18:16:33 +02:00
Florian Bruhin
4b7a3db0eb tests: QtWebEngine: Make hints.feature work 2016-08-18 17:50:52 +02:00
Florian Bruhin
0b9aec873f tests: Accept HTTP "not modified" as status
It seems like QtWebEngine sends some caching headers QtWebKit didn't?
2016-08-18 17:44:35 +02:00
Florian Bruhin
5e8254d470 bdd: Mark some hint tests as @qtwebengine_todo 2016-08-18 17:43:50 +02:00
Florian Bruhin
3dccd15663 bdd: Handle @qtwebengine_todo tags 2016-08-18 17:41:34 +02:00
Florian Bruhin
745614e45d BDD: Wait until hints are ready after hinting
With QtWebEngine, hinting happens async, so we need to wait for
"hints: ..." in the log before we can actually follow a hint.
2016-08-18 17:21:50 +02:00
Florian Bruhin
d7110069bb Fix broken :repeat-command test 2016-08-18 16:58:56 +02:00
Florian Bruhin
a06dcc7f0b BDD: Use :click-element instead of hints 2016-08-18 16:25:58 +02:00
Florian Bruhin
4345d60ff1 Revert "javascript.assemble: Support document module"
This reverts commit afc7faabda.

This isn't actually needed as we can't use document.getElementById()
directly without serializing anyways.
2016-08-18 15:58:46 +02:00
Florian Bruhin
4719e11e78 Add a test for :click-element with --target 2016-08-18 15:58:46 +02:00
Florian Bruhin
cc9b776476 tests: Use :click-element in editor.feature 2016-08-18 15:58:40 +02:00
Florian Bruhin
0cef4ac2db Add a :click-element command 2016-08-18 15:30:04 +02:00
Florian Bruhin
28a6b3918c Fix lint 2016-08-18 14:42:42 +02:00
Florian Bruhin
5113fa8515 Fix test_tab 2016-08-18 14:36:56 +02:00
Florian Bruhin
63c66945a4 Add webelem.click() and webelem.hover() 2016-08-18 14:32:19 +02:00
Florian Bruhin
afc7faabda javascript.assemble: Support document module 2016-08-18 14:07:21 +02:00
Florian Bruhin
a0add7b66c Get rid of tab.run_js_blocking
We had some trouble with it, and it's not actually needed.
2016-08-18 14:02:59 +02:00
Florian Bruhin
da73a7123c Add quteproc.click_element_by_id 2016-08-18 13:24:47 +02:00
Florian Bruhin
c37c501b25 Mark download BDD tests as TODO for QtWebEngine 2016-08-18 13:16:52 +02:00
Florian Bruhin
7515438f88 Skip back/forward BDD tests for now 2016-08-18 13:12:07 +02:00
Florian Bruhin
082fc5667e Remove requests check for :back/:forward test 2016-08-18 13:06:42 +02:00
Florian Bruhin
e10b7ba8ab tests: Add @qtwebengine_todo marker 2016-08-18 13:05:37 +02:00
Florian Bruhin
30029a8259 utils.javascript: Handle bools in _convert_js_arg 2016-08-18 12:40:21 +02:00
Florian Bruhin
6f24221c54 Replace WebElement.frame() by .has_frame() 2016-08-18 12:40:21 +02:00
Florian Bruhin
62db0095d1 Revert "Make webelem.rect_on_view work async"
This reverts commit 4e11613d2df064b138532c18f88bbf278c64f347.

We can actually make this synchronous just fine by collecting that
information when searching for the elements...
2016-08-18 12:40:21 +02:00
Florian Bruhin
e6d6302958 Make webelem.rect_on_view work async
WebKitElement still has an internal sync version used for is_visible,
but hopefully we can get rid of that soon too.
2016-08-18 12:40:21 +02:00
Florian Bruhin
7dadc28eb7 Handle an immediate callback in CallbackChecker 2016-08-18 12:40:21 +02:00
Florian Bruhin
359d4dd427 tests: Add a callback_checker fixture 2016-08-18 12:40:21 +02:00
Florian Bruhin
8eaa387f21 Adjust default hint.bg gradient orientation 2016-08-17 21:00:13 +02:00
Florian Bruhin
8cd822c7db Add blank lines 2016-08-17 14:51:05 +02:00
Florian Bruhin
0293307d61 Remove adjust_zoom for webelem.rect_on_view
Previously, the drawn hint labels were affected by the zoom, i.e., they
were stretched out by QtWebKit and actually had to be drawn at the
unzoomed position.

The Python/C++ API gives us coordinated adjusted for zoom, so
we always *negatively* adjusted them to get the unzoomed coordinates.

JS gave us the original coordinates, so we stretched them out according
to the zoom if adjust_zoom was given (which means only when clicking a
link).

Now we always operate in term of display coordinates: The point where we
draw the hint label is equal to the point we're clicking.

Thus, the zoom level for javascript is always adjusted, and the Python
zoom level is never (negatively) adjusted.
2016-08-17 14:51:05 +02:00
Florian Bruhin
7c17af3889 Use ${_monospace} for default hints font 2016-08-17 14:51:05 +02:00
Florian Bruhin
4860ad5487 Add some tests for config transformers 2016-08-17 14:51:05 +02:00
Florian Bruhin
cf7170a33b Remove no longer needed webelem methods
The following methods were only used for hint labels and thus removed
now:

- document_element
- create_inside
- find_first
- set_inner_xml
- remove_from_document
- set_style_property
2016-08-17 14:44:49 +02:00
Florian Bruhin
01fd7cd210 Merge branch 'issue1060' of https://github.com/haasn/qutebrowser into haasn-issue1060 2016-08-17 12:01:53 +02:00
Florian Bruhin
5d6abc6f67 Merge branch 'safe-args' of https://github.com/blyxxyz/qutebrowser into blyxxyz-safe-args 2016-08-16 14:18:44 +02:00
Jan Verbeek
cfd166a95e Merge https://github.com/The-Compiler/qutebrowser into safe-args 2016-08-16 14:05:04 +02:00
Jan Verbeek
096387897c Make pp bindings work with option in clipboard
If the clipboard contains "-a" then "open {clipboard}" will fail because
-a gets parsed as an option. "open -- {clipboard}" doesn't do that. See
some comments in #1791.
2016-08-16 14:00:37 +02:00
Florian Bruhin
f4b72d4b24 Revert "Revert "Handle counts for special keys.""
This reverts commit 2d5ffbfd02.
2016-08-16 13:44:28 +02:00
Florian Bruhin
8d6b905f95 Merge branch 'insert-text' of https://github.com/blyxxyz/qutebrowser into blyxxyz-insert-text 2016-08-16 13:29:42 +02:00
Florian Bruhin
2d7d47dc30 Rewrite word hint test as BDD test
See #1842.
2016-08-16 13:08:49 +02:00
Florian Bruhin
8e6d784fd7 Merge branch 'fix_hints_autofollow' of https://github.com/lahwaacz/qutebrowser into lahwaacz-fix_hints_autofollow 2016-08-16 12:58:56 +02:00
Niklas Haas
c2cc28a72b
Add new-instance-open-target.window = first-opened
Fixes #1060.

In the process of adding this, I also decided to rewrite
mainwindow.get_window() for clarity (and also because flake8 was warning
about complexity).

Also adds some tests to the new-instance-target mechanism, in particular
a specific test for the issue in question.
2016-08-16 12:24:38 +02:00
Florian Bruhin
cf0b12b5a9 Merge branch 'var_replacements' of https://github.com/lahwaacz/qutebrowser into lahwaacz-var_replacements 2016-08-16 11:49:31 +02:00
Florian Bruhin
ee3ea739fc Merge branch 'completion-category-focus' of https://github.com/rcorre/qutebrowser into rcorre-completion-category-focus 2016-08-16 11:45:23 +02:00
Florian Bruhin
380856bcb2 Merge branch 'navigate-count' of https://github.com/pvsr/qutebrowser into pvsr-navigate-count 2016-08-16 11:21:07 +02:00
Florian Bruhin
9d7d307aa5 Merge branch 'winonly' of https://github.com/haasn/qutebrowser into haasn-winonly 2016-08-16 11:02:49 +02:00
Peter Rice
ad9dfc1981 add end-to-end tests for navigating with a count 2016-08-16 04:28:31 -04:00
Peter Rice
67609af21b resolve linter warnings 2016-08-15 22:53:28 -04:00
Peter Rice
d4c16aa3c7 add a test for incdec with a count 2016-08-15 22:53:28 -04:00
Michael Hoang
8608c6b8b3 Remove unnecessary fresh instance requirement for test 2016-08-16 08:04:54 +10:00
Michael Hoang
c0ab474b21 Give error when trying to detach a single tab 2016-08-16 07:36:39 +10:00
Ryan Roden-Corrent
7b3839b44b Focus completion by category.
Implement `completion-item-focus next-category` and
`completion-item-focus prev-category` to jump through completions by
category rather than by item.

Resolves #1567.
2016-08-15 07:14:28 -04:00
Jakub Klinkovský
befaf4f6dc fix nested expansion of {variables} in command args 2016-08-14 15:29:16 +02:00
Niklas Haas
b6145d98a4
Remove some unnecessary "fresh instances" in tests
With the addition of :window-only, it's no longer necessary to use
"Given I have a fresh instance" to clean up previous windows. This
greatly cuts down on the amount of process restarts that need to happen
to complete a full testing cycle.

I also made one of the tests more robust against order alterations, and
removed some unnecessary extra commands that were already implied by the
background on others.
2016-08-12 00:20:57 +02:00
Niklas Haas
d5080bdb1a
Add :window-only command
I mainly added this so I can speed up all of the tests that rely on
closing other windows.
2016-08-11 23:37:14 +02:00
Florian Bruhin
9c67e87c37 Merge branch 'keyinput' of https://github.com/lahwaacz/qutebrowser into lahwaacz-keyinput 2016-08-11 19:46:30 +02:00
Florian Bruhin
cd0b5e6889 Merge branch 'test_short_dict' of https://github.com/julianuu/qutebrowser into julianuu-test_short_dict 2016-08-11 19:31:39 +02:00
Julian Weigt
5913c55864 Fixed syntax and improved test 2016-08-11 20:41:02 +02:00
Julian Weigt
060a3998c6 Merge remote-tracking branch 'upstream/master' into test_short_dict 2016-08-11 17:51:45 +02:00
Florian Bruhin
fe3c748e44 Fix another navigation request log 2016-08-11 17:47:13 +02:00
Jakub Klinkovský
2d2b0f5340 fix tests for config migrations 2016-08-11 17:30:46 +02:00
Florian Bruhin
e50f5ad55c tests: Get rid of TestTabData
Since we don't use __slots__ anymore, no need for those tests.
2016-08-11 16:47:28 +02:00
Florian Bruhin
b1227391c5 tests: Request mode_manager in fake_web_tab
Since we create a HintManager in AbstractTab now, we need a ModeManager
present to use FakeWebTab.
2016-08-11 16:46:05 +02:00
Florian Bruhin
f9db6b1d3d tests: Use mode_manager fixture in test_tab 2016-08-11 16:45:53 +02:00
Florian Bruhin
533319c1ae tests: Use dict.update in mode_manager fixture
This means we can use the fixture in tests which use config_stub
themselves.
2016-08-11 16:45:00 +02:00
Florian Bruhin
20517e9a8f Adjust navigation request logging in hints.feature 2016-08-11 16:38:51 +02:00
Florian Bruhin
d6a3134b3e Remove unused imports 2016-08-11 16:38:45 +02:00
Jakub Klinkovský
9b1c07e2e2 add tests for hints auto-follow in word mode 2016-08-11 15:20:52 +02:00
Julian Weigt
6973c93fa7 Added test to check handling of the case of a too small dictionary 2016-08-11 15:06:24 +02:00
Jan Verbeek
79ab5da45b Update test comment 2016-08-11 14:04:30 +02:00
Florian Bruhin
1a94cb551c Move mouse wheel zooming to MouseEventHandler 2016-08-11 13:50:06 +02:00
Florian Bruhin
aafdc225bc tests: Use last history item to check scroll pos 2016-08-11 11:56:11 +02:00
Florian Bruhin
bb2eee6178 Add a test for #1821 2016-08-11 11:49:56 +02:00
Florian Bruhin
c12aeea670 tests: Move data/scroll.html to data/scroll/simple 2016-08-11 11:47:55 +02:00
Jan Verbeek
e7367bd949 Make :insert-text test platform-independent
The test for inserting text at a specific position failed because
<Ctrl+Right> doesn't behave the same on Windows and Linux. This changes
it to move the cursor using other keys.
2016-08-11 02:26:48 +02:00
Jan Verbeek
28430a4e43 Make test_insert_mode Windows-compatible 2016-08-11 01:36:03 +02:00
Jan Verbeek
4966debd61 Deprecate :paste-primary to :insert-text {primary} 2016-08-10 21:55:16 +02:00
Florian Bruhin
57896dc00e Merge branch 'clip' of https://github.com/blyxxyz/qutebrowser into blyxxyz-clip 2016-08-10 20:38:54 +02:00
Florian Bruhin
9d510d744a tests: Implement Tab._install_event_filter 2016-08-10 20:37:38 +02:00