Merge branch 'artur-shaik-caret_mode_windows_osx'

This commit is contained in:
Florian Bruhin 2015-12-02 06:24:42 +01:00
commit e64f64e456
5 changed files with 24 additions and 59 deletions

View File

@ -151,9 +151,9 @@ Contributors, sorted by the number of commits in descending order:
* Claude
* meles5
* Patric Schmitz
* Artur Shaik
* Nathan Isom
* Austin Anderson
* Artur Shaik
* Thorsten Wißmann
* Alexey "Averrin" Nabrodov
* ZDarian

View File

@ -11,8 +11,6 @@ markers =
not_xvfb: Tests which can't be run with Xvfb.
frozen: Tests which can only be run if sys.frozen is True.
integration: Tests which test a bigger portion of code, run without coverage.
xfail_issue1142_osx: https://github.com/The-Compiler/qutebrowser/issues/1142 (OS X)
xfail_issue1142_windows: https://github.com/The-Compiler/qutebrowser/issues/1142 (Windows)
flakes-ignore =
UnusedImport
UnusedVariable

View File

@ -21,6 +21,7 @@
import os
import os.path
import sys
import shlex
import posixpath
import functools
@ -1486,11 +1487,16 @@ class CommandDispatcher:
"""
webview = self._current_widget()
if not webview.selection_enabled:
act = QWebPage.MoveToNextWord
act = [QWebPage.MoveToNextWord]
if sys.platform == 'win32':
act.append(QWebPage.MoveToPreviousChar)
else:
act = QWebPage.SelectNextWord
act = [QWebPage.SelectNextWord]
if sys.platform == 'win32':
act.append(QWebPage.SelectPreviousChar)
for _ in range(count):
webview.triggerPageAction(act)
for a in act:
webview.triggerPageAction(a)
@cmdutils.register(instance='command-dispatcher', hide=True,
modes=[KeyMode.caret], scope='window', count='count')
@ -1502,9 +1508,13 @@ class CommandDispatcher:
"""
webview = self._current_widget()
if not webview.selection_enabled:
act = [QWebPage.MoveToNextWord, QWebPage.MoveToNextChar]
act = [QWebPage.MoveToNextWord]
if sys.platform != 'win32':
act.append(QWebPage.MoveToNextChar)
else:
act = [QWebPage.SelectNextWord, QWebPage.SelectNextChar]
act = [QWebPage.SelectNextWord]
if sys.platform != 'win32':
act.append(QWebPage.SelectNextChar)
for _ in range(count):
for a in act:
webview.triggerPageAction(a)
@ -1557,10 +1567,10 @@ class CommandDispatcher:
"""
webview = self._current_widget()
if not webview.selection_enabled:
act = [QWebPage.MoveToEndOfBlock, QWebPage.MoveToNextLine,
act = [QWebPage.MoveToNextLine,
QWebPage.MoveToStartOfBlock]
else:
act = [QWebPage.SelectEndOfBlock, QWebPage.SelectNextLine,
act = [QWebPage.SelectNextLine,
QWebPage.SelectStartOfBlock]
for _ in range(count):
for a in act:
@ -1576,10 +1586,10 @@ class CommandDispatcher:
"""
webview = self._current_widget()
if not webview.selection_enabled:
act = [QWebPage.MoveToStartOfBlock, QWebPage.MoveToPreviousLine,
act = [QWebPage.MoveToPreviousLine,
QWebPage.MoveToStartOfBlock]
else:
act = [QWebPage.SelectStartOfBlock, QWebPage.SelectPreviousLine,
act = [QWebPage.SelectPreviousLine,
QWebPage.SelectStartOfBlock]
for _ in range(count):
for a in act:
@ -1595,10 +1605,10 @@ class CommandDispatcher:
"""
webview = self._current_widget()
if not webview.selection_enabled:
act = [QWebPage.MoveToEndOfBlock, QWebPage.MoveToNextLine,
act = [QWebPage.MoveToNextLine,
QWebPage.MoveToEndOfBlock]
else:
act = [QWebPage.SelectEndOfBlock, QWebPage.SelectNextLine,
act = [QWebPage.SelectNextLine,
QWebPage.SelectEndOfBlock]
for _ in range(count):
for a in act:
@ -1614,11 +1624,9 @@ class CommandDispatcher:
"""
webview = self._current_widget()
if not webview.selection_enabled:
act = [QWebPage.MoveToStartOfBlock, QWebPage.MoveToPreviousLine,
QWebPage.MoveToEndOfBlock]
act = [QWebPage.MoveToPreviousLine, QWebPage.MoveToEndOfBlock]
else:
act = [QWebPage.SelectStartOfBlock, QWebPage.SelectPreviousLine,
QWebPage.SelectEndOfBlock]
act = [QWebPage.SelectPreviousLine, QWebPage.SelectEndOfBlock]
for _ in range(count):
for a in act:
webview.triggerPageAction(a)

View File

@ -18,7 +18,6 @@ Feature: Caret mode
four five six
vier fünf sechs
@xfail_issue1142_windows
Scenario: Moving to end and to start of document
When I run :move-to-end-of-document
And I run :move-to-start-of-document
@ -49,7 +48,6 @@ Feature: Caret mode
one two three
eins zwei drei
@xfail_issue1142_osx
Scenario: Moving back to the end of previous block (with selection)
When I run :move-to-end-of-next-block with count 2
And I run :toggle-selection
@ -61,7 +59,6 @@ Feature: Caret mode
four five six
@xfail_issue1142_windows
Scenario: Moving back to the end of previous block
When I run :move-to-end-of-next-block with count 2
And I run :move-to-end-of-prev-block
@ -80,7 +77,6 @@ Feature: Caret mode
four five six
@xfail_issue1142_windows
Scenario: Moving back to the start of previous block
When I run :move-to-end-of-next-block with count 2
And I run :move-to-start-of-prev-block
@ -89,14 +85,12 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain "eins "
@xfail_issue1142_osx
Scenario: Moving to the start of next block (with selection)
When I run :toggle-selection
And I run :move-to-start-of-next-block
And I yank the selected text
Then the clipboard should contain "one two three\n"
@xfail_issue1142_windows
Scenario: Moving to the start of next block
When I run :move-to-start-of-next-block
And I run :toggle-selection
@ -125,7 +119,6 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain "one two three\n"
@xfail_issue1142_windows
Scenario: Moving to end and to start of line
When I run :move-to-end-of-line
And I run :move-to-start-of-line
@ -158,14 +151,12 @@ Feature: Caret mode
# word
@xfail_issue1142_windows
Scenario: Selecting a word
When I run :toggle-selection
And I run :move-to-end-of-word
And I yank the selected text
Then the clipboard should contain "one"
@xfail_issue1142_windows
Scenario: Moving to end and selecting a word
When I run :move-to-end-of-word
And I run :toggle-selection
@ -173,7 +164,6 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain " two"
@xfail_issue1142_windows
Scenario: Moving to next word and selecting a word
When I run :move-to-next-word
And I run :toggle-selection
@ -181,7 +171,6 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain "two"
@xfail_issue1142_windows
Scenario: Moving to next word and selecting until next word
When I run :move-to-next-word
And I run :toggle-selection
@ -189,7 +178,6 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain "two "
@xfail_issue1142_windows
Scenario: Moving to previous word and selecting a word
When I run :move-to-end-of-word
And I run :toggle-selection
@ -197,7 +185,6 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain "one"
@xfail_issue1142_windows
Scenario: Moving to previous word
When I run :move-to-end-of-word
And I run :move-to-prev-word
@ -221,7 +208,6 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain "n"
@xfail_issue1142_windows
Scenario: Selecting previous char
When I run :move-to-end-of-word
And I run :toggle-selection
@ -229,7 +215,6 @@ Feature: Caret mode
And I yank the selected text
Then the clipboard should contain "e"
@xfail_issue1142_windows
Scenario: Moving to previous char
When I run :move-to-end-of-word
And I run :move-to-prev-char
@ -244,7 +229,6 @@ Feature: Caret mode
When I run :yank-selected
Then the message "Nothing to yank" should be shown.
@xfail_issue1142_windows
Scenario: :yank-selected message
When I run :toggle-selection
And I run :move-to-end-of-word
@ -265,7 +249,6 @@ Feature: Caret mode
Then the message "3 chars yanked to primary selection" should be shown.
And the primary selection should contain "one"
@xfail_issue1142_windows
Scenario: :yank-selected with --keep
When I run :toggle-selection
And I run :move-to-end-of-word

View File

@ -19,9 +19,7 @@
"""Steps for bdd-like tests."""
import os
import re
import sys
import time
import json
import os.path
@ -47,28 +45,6 @@ def _clipboard_mode(qapp, what):
raise AssertionError
def pytest_collection_modifyitems(items):
"""Handle markers for xfail caret tests on OS X/Windows.
See https://github.com/The-Compiler/qutebrowser/issues/1142
We need to do this this way because we can't use markers with arguments
inside feature files.
"""
osx_xfail_marker = pytest.mark.xfail(
sys.platform == 'darwin',
reason='https://github.com/The-Compiler/qutebrowser/issues/1142')
windows_xfail_marker = pytest.mark.xfail(
os.name == 'nt',
reason='https://github.com/The-Compiler/qutebrowser/issues/1142')
for item in items:
if item.get_marker('xfail_issue1142_osx'):
item.add_marker(osx_xfail_marker)
if item.get_marker('xfail_issue1142_windows'):
item.add_marker(windows_xfail_marker)
## Given