Commit Graph

3393 Commits

Author SHA1 Message Date
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