2015-11-10 06:33:47 +01:00
Feature : Various utility commands.
2015-11-13 23:43:28 +01:00
## :set-cmd-text
2015-11-10 06:33:47 +01:00
Scenario : :set-cmd-text and :command-accept
When I r u n : s e t - c m d - t e x t : m e s s a g e - i n f o " H e l l o W o r l d "
And I r u n : c o m m a n d - a c c e p t
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " H e l l o W o r l d " s h o u l d b e s h o w n
2015-11-10 06:33:47 +01:00
Scenario : :set-cmd-text with two commands
When I r u n : s e t - c m d - t e x t : m e s s a g e - i n f o t e s t ; ; m e s s a g e - e r r o r e r r o r
And I r u n : c o m m a n d - a c c e p t
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " t e s t " s h o u l d b e s h o w n
And t h e e r r o r " e r r o r " s h o u l d b e s h o w n
2015-11-10 06:33:47 +01:00
2015-11-10 19:22:13 +01:00
Scenario : :set-cmd-text with URL replacement
When I o p e n d a t a / h e l l o . t x t
2016-05-14 17:44:05 +02:00
And I r u n : s e t - c m d - t e x t : m e s s a g e - i n f o { u r l }
2015-11-10 19:22:13 +01:00
And I r u n : c o m m a n d - a c c e p t
2016-05-12 17:46:46 +02:00
Then t h e m e s s a g e " h t t p : / / l o c a l h o s t : * / h e l l o . t x t " s h o u l d b e s h o w n
2015-11-10 19:22:13 +01:00
2016-05-14 17:44:05 +02:00
Scenario : :set-cmd-text with URL replacement with encoded spaces
When I o p e n d a t a / t i t l e w i t h s p a c e s . h t m l
And I r u n : s e t - c m d - t e x t : m e s s a g e - i n f o { u r l }
And I r u n : c o m m a n d - a c c e p t
Then t h e m e s s a g e " h t t p : / / l o c a l h o s t : * / t i t l e % 2 0 w i t h % 2 0 s p a c e s . h t m l " s h o u l d b e s h o w n
Scenario : :set-cmd-text with URL replacement with decoded spaces
When I o p e n d a t a / t i t l e w i t h s p a c e s . h t m l
And I r u n : s e t - c m d - t e x t : m e s s a g e - i n f o " > { u r l : p r e t t y } < "
And I r u n : c o m m a n d - a c c e p t
Then t h e m e s s a g e " > h t t p : / / l o c a l h o s t : * / t i t l e w i t h s p a c e s . h t m l < " s h o u l d b e s h o w n
2015-11-10 19:22:13 +01:00
Scenario : :set-cmd-text with -s and -a
When I r u n : s e t - c m d - t e x t - s : m e s s a g e - i n f o " f o o
And I r u n : s e t - c m d - t e x t - a b a r "
And I r u n : c o m m a n d - a c c e p t
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " f o o b a r " s h o u l d b e s h o w n
2015-11-10 19:22:13 +01:00
Scenario : :set-cmd-text with -a but without text
When I r u n : s e t - c m d - t e x t - a f o o
2015-11-26 17:50:39 +01:00
Then t h e e r r o r " N o c u r r e n t t e x t ! " s h o u l d b e s h o w n
2015-11-10 19:22:13 +01:00
2015-11-10 06:33:47 +01:00
Scenario : :set-cmd-text with invalid command
When I r u n : s e t - c m d - t e x t f o o
2015-11-26 17:50:39 +01:00
Then t h e e r r o r " I n v a l i d c o m m a n d t e x t ' f o o ' . " s h o u l d b e s h o w n
2015-11-10 06:33:47 +01:00
2015-11-13 23:43:28 +01:00
## :message-*
2015-11-10 06:33:47 +01:00
Scenario : :message-error
When I r u n : m e s s a g e - e r r o r " H e l l o W o r l d "
2015-11-26 17:50:39 +01:00
Then t h e e r r o r " H e l l o W o r l d " s h o u l d b e s h o w n
2015-11-10 06:33:47 +01:00
Scenario : :message-info
When I r u n : m e s s a g e - i n f o " H e l l o W o r l d "
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " H e l l o W o r l d " s h o u l d b e s h o w n
2015-11-10 06:33:47 +01:00
Scenario : :message-warning
When I r u n : m e s s a g e - w a r n i n g " H e l l o W o r l d "
2015-11-26 17:50:39 +01:00
Then t h e w a r n i n g " H e l l o W o r l d " s h o u l d b e s h o w n
2015-11-13 07:50:20 +01:00
2015-11-13 23:43:28 +01:00
## :jseval
2015-11-13 07:50:20 +01:00
Scenario : :jseval
2015-11-29 18:37:11 +01:00
When I s e t g e n e r a l - > l o g - j a v a s c r i p t - c o n s o l e t o i n f o
2015-11-13 07:50:20 +01:00
And I r u n : j s e v a l c o n s o l e . l o g ( " H e l l o f r o m J S ! " ) ;
2016-08-18 19:26:06 +02:00
And I w a i t f o r " [ : * ] H e l l o f r o m J S ! " i n t h e l o g
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " N o o u t p u t o r e r r o r " s h o u l d b e s h o w n
2015-11-15 12:23:34 +01:00
Scenario : :jseval without logging
2015-11-29 18:37:11 +01:00
When I s e t g e n e r a l - > l o g - j a v a s c r i p t - c o n s o l e t o n o n e
2015-11-15 12:23:34 +01:00
And I r u n : j s e v a l c o n s o l e . l o g ( " H e l l o f r o m J S ! " ) ;
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " N o o u t p u t o r e r r o r " s h o u l d b e s h o w n
2016-08-18 19:26:06 +02:00
And " [ : * ] H e l l o f r o m J S ! " s h o u l d n o t b e l o g g e d
2015-11-15 12:23:34 +01:00
Scenario : :jseval with --quiet
2015-11-29 18:37:11 +01:00
When I s e t g e n e r a l - > l o g - j a v a s c r i p t - c o n s o l e t o i n f o
2015-11-15 12:23:34 +01:00
And I r u n : j s e v a l - - q u i e t c o n s o l e . l o g ( " H e l l o f r o m J S ! " ) ;
2016-08-18 19:26:06 +02:00
And I w a i t f o r " [ : * ] H e l l o f r o m J S ! " i n t h e l o g
2015-11-15 12:23:34 +01:00
Then " N o o u t p u t o r e r r o r " s h o u l d n o t b e l o g g e d
Scenario : :jseval with a value
When I r u n : j s e v a l " f o o "
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " f o o " s h o u l d b e s h o w n
2015-11-15 12:23:34 +01:00
Scenario : :jseval with a long, truncated value
When I r u n : j s e v a l A r r a y ( 5002 ) . j o i n ( " x " )
2015-11-26 17:50:39 +01:00
Then t h e m e s s a g e " x * [ . . . t r i m m e d . . . ] " s h o u l d b e s h o w n
2015-11-15 12:23:54 +01:00
# :debug-webaction
Scenario : :debug-webaction with valid value
Given I o p e n d a t a / b a c k f o r w a r d / 1. t x t
When I o p e n d a t a / b a c k f o r w a r d / 2. t x t
And I r u n : t a b - o n l y
And I r u n : d e b u g - w e b a c t i o n B a c k
And I w a i t u n t i l d a t a / b a c k f o r w a r d / 1. t x t i s l o a d e d
Then t h e s e s s i o n s h o u l d l o o k l i k e :
w i n d o w s :
- t a b s :
- h i s t o r y :
- a c t i v e : t r u e
u r l : h t t p : / / l o c a l h o s t : * / d a t a / b a c k f o r w a r d / 1. t x t
- u r l : h t t p : / / l o c a l h o s t : * / d a t a / b a c k f o r w a r d / 2. t x t
Scenario : :debug-webaction with invalid value
When I o p e n d a t a / h e l l o . t x t
And I r u n : d e b u g - w e b a c t i o n b l a h
2015-11-26 17:50:39 +01:00
Then t h e e r r o r " b l a h i s n o t a v a l i d w e b a c t i o n ! " s h o u l d b e s h o w n
2015-11-15 12:23:54 +01:00
Scenario : :debug-webaction with non-webaction member
When I o p e n d a t a / h e l l o . t x t
And I r u n : d e b u g - w e b a c t i o n P e r m i s s i o n U n k n o w n
2015-11-26 17:50:39 +01:00
Then t h e e r r o r " P e r m i s s i o n U n k n o w n i s n o t a v a l i d w e b a c t i o n ! " s h o u l d b e s h o w n
2015-11-18 20:08:25 +01:00
# :inspect
Scenario : Inspector without developer extras
When I s e t g e n e r a l - > d e v e l o p e r - e x t r a s t o f a l s e
And I r u n : i n s p e c t o r
2015-11-26 17:50:39 +01:00
Then t h e e r r o r " P l e a s e e n a b l e d e v e l o p e r - e x t r a s b e f o r e u s i n g t h e w e b i n s p e c t o r ! " s h o u l d b e s h o w n
2015-11-18 20:08:25 +01:00
2016-02-16 20:36:23 +01:00
@no_xvfb @posix
2015-11-18 20:08:25 +01:00
Scenario : Inspector smoke test
When I s e t g e n e r a l - > d e v e l o p e r - e x t r a s t o t r u e
And I r u n : i n s p e c t o r
tests: Make inspector smoke test more reliable.
Before we didn't wait until the inspector window was hidden, which caused the
following tests to fail on our OS X buildbot:
==================================== ERRORS ====================================
_________ ERROR at teardown of test_fakekey_sending_key_to_the_website _________
[...]
tests/integration/testprocess.py:186: InvalidLine
----------------------------- Captured stdout call -----------------------------
[...]
INVALID: Traceback (most recent call last):
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/app.py", line 109, in <lambda>
IGNORED: target_arg=target_arg))
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/app.py", line 263, in process_pos_args
IGNORED: commandrunner.run_safely_init(cmd[1:])
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/commands/runners.py", line 266, in run_safely_init
IGNORED: self.run(text, count)
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/commands/runners.py", line 249, in run
IGNORED: result.cmd.run(self._win_id, args)
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/commands/command.py", line 505, in run
IGNORED: self.handler(*posargs, **kwargs)
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/browser/commands.py", line 1781, in fake_key
IGNORED: tab='current')
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/utils/objreg.py", line 215, in get
IGNORED: reg = _get_registry(scope, window, tab)
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/utils/objreg.py", line 202, in _get_registry
IGNORED: return _get_tab_registry(window, tab)
IGNORED: File "/Users/buildbot/buildbot/slave/osx/build/qutebrowser/utils/objreg.py", line 152, in _get_tab_registry
IGNORED: raise RegistryUnavailableError('tab')
INVALID: qutebrowser.utils.objreg.RegistryUnavailableError: tab
[...]
While this is a real issue, this test shouldn't affect the next one.
Since we have to wait for windows getting focused but Xvfb doesn't do that, we
skip this tests when running via Xvfb.
2015-11-24 16:17:26 +01:00
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : <PyQt5.QtWebKitWidgets.QWebView object at *> " i n t h e l o g
2015-11-18 20:08:25 +01:00
And I r u n : i n s p e c t o r
2015-11-24 16:54:35 +01:00
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : * " i n t h e l o g
2015-11-18 20:08:25 +01:00
Then n o c r a s h s h o u l d h a p p e n
2015-11-20 07:05:16 +01:00
2016-01-07 07:12:51 +01:00
# Different code path as an inspector got created now
Scenario : Inspector without developer extras (after smoke)
When I s e t g e n e r a l - > d e v e l o p e r - e x t r a s t o f a l s e
And I r u n : i n s p e c t o r
Then t h e e r r o r " P l e a s e e n a b l e d e v e l o p e r - e x t r a s b e f o r e u s i n g t h e w e b i n s p e c t o r ! " s h o u l d b e s h o w n
# Different code path as an inspector got created now
2016-02-16 20:36:23 +01:00
@no_xvfb @posix
2016-01-07 07:12:51 +01:00
Scenario : Inspector smoke test 2
When I s e t g e n e r a l - > d e v e l o p e r - e x t r a s t o t r u e
And I r u n : i n s p e c t o r
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : <PyQt5.QtWebKitWidgets.QWebView object at *> " i n t h e l o g
And I r u n : i n s p e c t o r
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : * " i n t h e l o g
Then n o c r a s h s h o u l d h a p p e n
2015-11-23 14:37:54 +01:00
# :stop/:reload
2015-11-21 14:23:44 +01:00
Scenario : :stop
2015-11-22 17:07:54 +01:00
Given I h a v e a f r e s h i n s t a n c e
2015-11-21 14:23:44 +01:00
# We can't use "When I open" because we don't want to wait for load
# finished
2015-11-23 19:43:11 +01:00
When I r u n : o p e n h t t p : / / l o c a l h o s t : ( p o r t ) / c u s t o m / r e d i r e c t - l a t e r ? d e l a y = - 1
2015-11-21 14:23:44 +01:00
And I w a i t f o r " e m i t t i n g : c u r _ l o a d _ s t a t u s _ c h a n g e d ( ' l o a d i n g ' ) ( t a b * ) " i n t h e l o g
And I w a i t 1 s
2015-11-21 15:14:32 +01:00
And I r u n : s t o p
2015-12-18 20:24:03 +01:00
And I o p e n c u s t o m / r e d i r e c t - l a t e r - c o n t i n u e i n a n e w t a b
2015-11-23 19:43:11 +01:00
And I w a i t 1 s
2015-11-23 20:00:25 +01:00
Then t h e u n o r d e r e d r e q u e s t s s h o u l d b e :
2015-11-23 19:43:11 +01:00
c u s t o m / r e d i r e c t - l a t e r - c o n t i n u e
c u s t o m / r e d i r e c t - l a t e r ? d e l a y = - 1
2015-11-21 14:23:44 +01:00
# no request on / because we stopped the redirect
2015-11-23 14:37:54 +01:00
2016-01-06 07:15:20 +01:00
Scenario : :stop with wrong count
When I o p e n d a t a / h e l l o . t x t
And I r u n : t a b - o n l y
And I r u n : s t o p w i t h c o u n t 2
Then n o c r a s h s h o u l d h a p p e n
2015-11-23 14:37:54 +01:00
Scenario : :reload
2016-01-05 22:46:52 +01:00
When I o p e n d a t a / r e l o a d . t x t
2015-11-23 14:37:54 +01:00
And I r u n : r e l o a d
2016-01-05 22:46:52 +01:00
And I w a i t u n t i l d a t a / r e l o a d . t x t i s l o a d e d
2015-11-23 14:37:54 +01:00
Then t h e r e q u e s t s s h o u l d b e :
2016-01-05 22:46:52 +01:00
d a t a / r e l o a d . t x t
d a t a / r e l o a d . t x t
2015-11-23 14:37:54 +01:00
Scenario : :reload with force
When I o p e n h e a d e r s
And I r u n : r e l o a d - - f o r c e
2015-11-23 19:44:53 +01:00
And I w a i t u n t i l h e a d e r s i s l o a d e d
2015-11-23 14:37:54 +01:00
Then t h e h e a d e r C a c h e - C o n t r o l s h o u l d b e s e t t o n o - c a c h e
2015-11-24 18:24:33 +01:00
2016-01-06 07:15:20 +01:00
Scenario : :reload with wrong count
When I o p e n d a t a / h e l l o . t x t
And I r u n : t a b - o n l y
And I r u n : r e l o a d w i t h c o u n t 2
Then n o c r a s h s h o u l d h a p p e n
2015-11-24 18:24:33 +01:00
# :view-source
2016-08-18 20:34:03 +02:00
@qtwebengine_skip: F l a k y d u e t o : v i e w - s o u r c e b e i n g a s y n c
2015-11-24 18:24:33 +01:00
Scenario : :view-source
Given I o p e n d a t a / h e l l o . t x t
When I r u n : t a b - o n l y
And I r u n : v i e w - s o u r c e
Then t h e s e s s i o n s h o u l d l o o k l i k e :
w i n d o w s :
- t a b s :
- h i s t o r y :
- a c t i v e : t r u e
u r l : h t t p : / / l o c a l h o s t : * / d a t a / h e l l o . t x t
- a c t i v e : t r u e
h i s t o r y : [ ]
And t h e p a g e s o u r c e s h o u l d l o o k l i k e m i s c / h e l l o . t x t . h t m l
2016-08-18 20:34:03 +02:00
@qtwebengine_skip: F l a k y d u e t o : v i e w - s o u r c e b e i n g a s y n c
2015-11-24 18:24:33 +01:00
Scenario : :view-source on source page.
When I o p e n d a t a / h e l l o . t x t
And I r u n : v i e w - s o u r c e
And I r u n : v i e w - s o u r c e
2015-11-26 17:50:39 +01:00
Then t h e e r r o r " A l r e a d y v i e w i n g s o u r c e ! " s h o u l d b e s h o w n
2015-11-24 18:36:51 +01:00
# :debug-console
2015-11-24 19:24:39 +01:00
2016-02-16 20:36:23 +01:00
@no_xvfb
2015-11-24 18:36:51 +01:00
Scenario : :debug-console smoke test
When I r u n : d e b u g - c o n s o l e
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : <qutebrowser.misc.consolewidget.ConsoleLineEdit *> " i n t h e l o g
And I r u n : d e b u g - c o n s o l e
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : * " i n t h e l o g
Then n o c r a s h s h o u l d h a p p e n
2015-11-28 22:34:19 +01:00
# :help
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: : h e l p i s n o t i m p l e m e n t e d y e t
2015-11-28 22:34:19 +01:00
Scenario : :help without topic
When I r u n : t a b - o n l y
And I r u n : h e l p
2015-12-02 22:22:31 +01:00
And I w a i t u n t i l q u t e : / / h e l p / i n d e x . h t m l i s l o a d e d
2015-11-28 22:34:19 +01:00
Then t h e f o l l o w i n g t a b s s h o u l d b e o p e n :
- q u t e : / / h e l p / i n d e x . h t m l ( a c t i v e )
Scenario : :help with invalid topic
When I r u n : h e l p f o o
Then t h e e r r o r " I n v a l i d h e l p t o p i c f o o ! " s h o u l d b e s h o w n
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: : h e l p i s n o t i m p l e m e n t e d y e t
2015-11-28 22:34:19 +01:00
Scenario : :help with command
2016-01-04 20:10:03 +01:00
When t h e d o c u m e n t a t i o n i s u p t o d a t e
And I r u n : t a b - o n l y
2015-11-28 22:34:19 +01:00
And I r u n : h e l p : b a c k
2015-12-02 22:22:31 +01:00
And I w a i t u n t i l q u t e : / / h e l p / c o m m a n d s . h t m l #back is loaded
2015-11-28 22:34:19 +01:00
Then t h e f o l l o w i n g t a b s s h o u l d b e o p e n :
- q u t e : / / h e l p / c o m m a n d s . h t m l #back (active)
Scenario : :help with invalid command
When I r u n : h e l p : f o o
Then t h e e r r o r " I n v a l i d c o m m a n d f o o ! " s h o u l d b e s h o w n
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: : h e l p i s n o t i m p l e m e n t e d y e t
2015-11-28 22:34:19 +01:00
Scenario : :help with setting
2016-01-04 20:10:03 +01:00
When t h e d o c u m e n t a t i o n i s u p t o d a t e
And I r u n : t a b - o n l y
2015-11-28 22:34:19 +01:00
And I r u n : h e l p g e n e r a l - > e d i t o r
2015-12-02 22:22:31 +01:00
And I w a i t u n t i l q u t e : / / h e l p / s e t t i n g s . h t m l #general-editor is loaded
2015-11-28 22:34:19 +01:00
Then t h e f o l l o w i n g t a b s s h o u l d b e o p e n :
- q u t e : / / h e l p / s e t t i n g s . h t m l #general-editor (active)
Scenario : :help with invalid setting (2 arrows)
When I r u n : h e l p g e n e r a l - > e d i t o r - > f o o
Then t h e e r r o r " I n v a l i d h e l p t o p i c g e n e r a l - > e d i t o r - > f o o ! " s h o u l d b e s h o w n
Scenario : :help with invalid setting (unknown section)
When I r u n : h e l p f o o - > b a r
Then t h e e r r o r " I n v a l i d s e c t i o n f o o ! " s h o u l d b e s h o w n
Scenario : :help with invalid setting (unknown option)
When I r u n : h e l p g e n e r a l - > b a r
Then t h e e r r o r " I n v a l i d o p t i o n b a r ! " s h o u l d b e s h o w n
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: : h e l p i s n o t i m p l e m e n t e d y e t
2015-11-28 22:34:19 +01:00
Scenario : :help with -t
When I o p e n a b o u t : b l a n k
And I r u n : t a b - o n l y
And I r u n : h e l p - t
2015-12-02 22:22:31 +01:00
And I w a i t u n t i l q u t e : / / h e l p / i n d e x . h t m l i s l o a d e d
2015-11-28 22:34:19 +01:00
Then t h e f o l l o w i n g t a b s s h o u l d b e o p e n :
- a b o u t : b l a n k
- q u t e : / / h e l p / i n d e x . h t m l ( a c t i v e )
2015-11-28 22:44:05 +01:00
# :home
Scenario : :home with single page
When I s e t g e n e r a l - > s t a r t p a g e t o h t t p : / / l o c a l h o s t : ( p o r t ) / d a t a / h e l l o 2. t x t
And I r u n : h o m e
Then d a t a / h e l l o 2. t x t s h o u l d b e l o a d e d
Scenario : :home with multiple pages
When I s e t g e n e r a l - > s t a r t p a g e t o h t t p : / / l o c a l h o s t : ( p o r t ) / d a t a / n u m b e r s / 1. t x t , h t t p : / / l o c a l h o s t : ( p o r t ) / d a t a / n u m b e r s / 2. t x t
And I r u n : h o m e
Then d a t a / n u m b e r s / 1. t x t s h o u l d b e l o a d e d
2015-12-20 20:00:56 +01:00
# pdfjs support
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: p d f j s i s n o t i m p l e m e n t e d y e t
2015-12-20 20:00:56 +01:00
Scenario : pdfjs is used for pdf files
Given p d f j s i s a v a i l a b l e
When I s e t c o n t e n t - > e n a b l e - p d f j s t o t r u e
And I o p e n d a t a / m i s c / t e s t . p d f
Then t h e j a v a s c r i p t m e s s a g e " P D F * [ * ] ( P D F . j s : * ) " s h o u l d b e l o g g e d
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: p d f j s i s n o t i m p l e m e n t e d y e t
2015-12-20 20:00:56 +01:00
Scenario : pdfjs is not used when disabled
When I s e t c o n t e n t - > e n a b l e - p d f j s t o f a l s e
And I s e t s t o r a g e - > p r o m p t - d o w n l o a d - d i r e c t o r y t o f a l s e
And I o p e n d a t a / m i s c / t e s t . p d f
Then " D o w n l o a d f i n i s h e d " s h o u l d b e l o g g e d
2016-01-06 07:15:34 +01:00
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: p d f j s i s n o t i m p l e m e n t e d y e t
2016-02-18 16:17:35 +01:00
Scenario : Downloading a pdf via pdf.js button (issue 1214)
Given p d f j s i s a v a i l a b l e
2016-02-22 17:39:34 +01:00
# WORKAROUND to prevent the "Painter ended with 2 saved states" warning
# Might be related to https://bugreports.qt.io/browse/QTBUG-13524 and
# a weird interaction with the previous test.
2016-02-28 15:26:18 +01:00
And I h a v e a f r e s h i n s t a n c e
When I s e t c o n t e n t - > e n a b l e - p d f j s t o t r u e
2016-02-18 16:17:35 +01:00
And I s e t c o m p l e t i o n - > d o w n l o a d - p a t h - s u g g e s t i o n t o f i l e n a m e
And I s e t s t o r a g e - > p r o m p t - d o w n l o a d - d i r e c t o r y t o t r u e
And I o p e n d a t a / m i s c / t e s t . p d f
And I w a i t f o r " [ q u t e : / / p d f j s / * ] P D F * ( P D F . j s : * ) " i n t h e l o g
And I r u n : j s e v a l d o c u m e n t . g e t E l e m e n t B y I d ( " d o w n l o a d " ) . c l i c k ( )
2016-07-06 23:16:38 +02:00
And I w a i t f o r " A s k i n g q u e s t i o n <qutebrowser.utils.usertypes.Question default='test.pdf' mode=<PromptMode.download: 5> t e x t = ' S a v e f i l e t o : ' > , * " i n t h e l o g
2016-02-18 16:17:35 +01:00
And I r u n : l e a v e - m o d e
Then n o c r a s h s h o u l d h a p p e n
2016-01-06 07:15:34 +01:00
# :print
# Disabled because it causes weird segfaults and QPainter warnings in Qt...
2016-01-14 07:53:00 +01:00
@xfail_norun
2016-01-06 07:15:34 +01:00
Scenario : print preview
When I o p e n d a t a / h e l l o . t x t
And I r u n : p r i n t - - p r e v i e w
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : * " i n t h e l o g
And I r u n : d e b u g - p y e v a l Q A p p l i c a t i o n . i n s t a n c e ( ) . a c t i v e M o d a l W i d g e t ( ) . c l o s e ( )
Then n o c r a s h s h o u l d h a p p e n
2016-01-06 07:54:54 +01:00
# On Windows/OS X, we get a "QPrintDialog: Cannot be used on non-native
# printers" qWarning.
2016-01-06 18:25:22 +01:00
#
# Disabled because it causes weird segfaults and QPainter warnings in Qt...
2016-01-14 07:53:00 +01:00
@xfail_norun
2016-01-06 07:15:34 +01:00
Scenario : print
When I o p e n d a t a / h e l l o . t x t
And I r u n : p r i n t
2016-01-06 08:29:53 +01:00
And I w a i t f o r " F o c u s o b j e c t c h a n g e d : * " i n t h e l o g o r s k i p t h e t e s t
2016-01-06 07:15:34 +01:00
And I r u n : d e b u g - p y e v a l Q A p p l i c a t i o n . i n s t a n c e ( ) . a c t i v e M o d a l W i d g e t ( ) . c l o s e ( )
Then n o c r a s h s h o u l d h a p p e n
2016-01-06 07:15:42 +01:00
2016-08-18 20:34:03 +02:00
# FIXME:qtwebengine use a finer skipping here
@qtwebengine_skip: p r i n t i n g t o p d f i s n o t i m p l e m e n t e d w i t h o l d e r Q t v e r s i o n s
2016-07-12 13:29:32 +02:00
Scenario : print --pdf
2016-07-12 02:08:24 +02:00
When I o p e n d a t a / h e l l o . t x t
And I r u n : p r i n t - - p d f ( t m p d i r ) / h e l l o . p d f
And I w a i t f o r " P r i n t t o f i l e : * " i n t h e l o g o r s k i p t h e t e s t
2016-07-12 13:28:43 +02:00
Then t h e P D F h e l l o . p d f s h o u l d e x i s t i n t h e t m p d i r
2016-07-12 02:08:24 +02:00
2016-01-06 07:15:42 +01:00
# :pyeval
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : p y e v a l i s n o t i m p l e m e n t e d y e t
2016-01-06 07:15:42 +01:00
Scenario : Running :pyeval
When I r u n : d e b u g - p y e v a l 1 + 1
And I w a i t u n t i l q u t e : p y e v a l i s l o a d e d
Then t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " 2 "
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : p y e v a l i s n o t i m p l e m e n t e d y e t
2016-01-06 07:42:33 +01:00
Scenario : Causing exception in :pyeval
When I r u n : d e b u g - p y e v a l 1 / 0
And I w a i t u n t i l q u t e : p y e v a l i s l o a d e d
Then t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " Z e r o D i v i s i o n E r r o r "
2016-01-06 07:15:42 +01:00
Scenario : Running :pyeval with --quiet
When I r u n : d e b u g - p y e v a l - - q u i e t 1 + 1
Then " p y e v a l o u t p u t : 2 " s h o u l d b e l o g g e d
2016-05-12 17:46:46 +02:00
2016-03-31 19:32:30 +02:00
## https://github.com/The-Compiler/qutebrowser/issues/504
Scenario : Focusing download widget via Tab
When I o p e n a b o u t : b l a n k
And I p r e s s t h e k e y " <Tab> "
And I p r e s s t h e k e y " <Ctrl-C> "
Then n o c r a s h s h o u l d h a p p e n
2016-08-19 12:20:23 +02:00
@pyqt>=5.3.1 @qtwebengine_todo: J S p r o m p t i s n o t i m p l e m e n t e d y e t
2016-03-31 19:32:30 +02:00
Scenario : Focusing download widget via Tab (original issue)
When I o p e n d a t a / p r o m p t / j s p r o m p t . h t m l
2016-08-18 16:13:38 +02:00
And I r u n : c l i c k - e l e m e n t i d b u t t o n
2016-03-31 19:32:30 +02:00
And I w a i t f o r " E n t e r i n g m o d e K e y M o d e . p r o m p t * " i n t h e l o g
And I p r e s s t h e k e y " <Tab> "
And I p r e s s t h e k e y " <Ctrl-C> "
Then n o c r a s h s h o u l d h a p p e n
2016-04-19 06:21:20 +02:00
## Custom headers
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: C u s t o m h e a d e r s a r e n o t i m p l e m e n t e d y e t
2016-04-19 06:21:20 +02:00
Scenario : Setting a custom header
When I s e t n e t w o r k - > c u s t o m - h e a d e r s t o { " X - Q u t e - T e s t " : " t e s t v a l u e " }
And I o p e n h e a d e r s
Then t h e h e a d e r X - Q u t e - T e s t s h o u l d b e s e t t o t e s t v a l u e
2016-05-12 03:23:38 +02:00
## :messages
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : l o g i s n o t i m p l e m e n t e d y e t
2016-05-12 03:23:38 +02:00
Scenario : Showing error messages
When I r u n : m e s s a g e - e r r o r t h e - e r r o r - m e s s a g e
And I r u n : m e s s a g e - w a r n i n g t h e - w a r n i n g - m e s s a g e
And I r u n : m e s s a g e - i n f o t h e - i n f o - m e s s a g e
And I r u n : m e s s a g e s
2016-05-29 17:07:37 +02:00
Then q u t e : / / l o g ? l e v e l = e r r o r s h o u l d b e l o a d e d
And t h e e r r o r " t h e - e r r o r - m e s s a g e " s h o u l d b e s h o w n
2016-05-12 03:23:38 +02:00
And t h e w a r n i n g " t h e - w a r n i n g - m e s s a g e " s h o u l d b e s h o w n
And t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " t h e - e r r o r - m e s s a g e "
2016-05-12 13:47:20 +02:00
And t h e p a g e s h o u l d n o t c o n t a i n t h e p l a i n t e x t " t h e - w a r n i n g - m e s s a g e "
And t h e p a g e s h o u l d n o t c o n t a i n t h e p l a i n t e x t " t h e - i n f o - m e s s a g e "
2016-05-12 03:23:38 +02:00
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : l o g i s n o t i m p l e m e n t e d y e t
2016-05-12 03:23:38 +02:00
Scenario : Showing messages of type 'warning' or greater
When I r u n : m e s s a g e - e r r o r t h e - e r r o r - m e s s a g e
And I r u n : m e s s a g e - w a r n i n g t h e - w a r n i n g - m e s s a g e
And I r u n : m e s s a g e - i n f o t h e - i n f o - m e s s a g e
And I r u n : m e s s a g e s w a r n i n g
2016-05-29 17:07:37 +02:00
Then q u t e : / / l o g ? l e v e l = w a r n i n g s h o u l d b e l o a d e d
And t h e e r r o r " t h e - e r r o r - m e s s a g e " s h o u l d b e s h o w n
2016-05-12 03:23:38 +02:00
And t h e w a r n i n g " t h e - w a r n i n g - m e s s a g e " s h o u l d b e s h o w n
And t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " t h e - e r r o r - m e s s a g e "
And t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " t h e - w a r n i n g - m e s s a g e "
2016-05-12 13:47:20 +02:00
And t h e p a g e s h o u l d n o t c o n t a i n t h e p l a i n t e x t " t h e - i n f o - m e s s a g e "
2016-05-12 03:23:38 +02:00
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : l o g i s n o t i m p l e m e n t e d y e t
2016-05-12 03:23:38 +02:00
Scenario : Showing messages of type 'info' or greater
When I r u n : m e s s a g e - e r r o r t h e - e r r o r - m e s s a g e
And I r u n : m e s s a g e - w a r n i n g t h e - w a r n i n g - m e s s a g e
And I r u n : m e s s a g e - i n f o t h e - i n f o - m e s s a g e
And I r u n : m e s s a g e s i n f o
2016-05-29 17:07:37 +02:00
Then q u t e : / / l o g ? l e v e l = i n f o s h o u l d b e l o a d e d
And t h e e r r o r " t h e - e r r o r - m e s s a g e " s h o u l d b e s h o w n
2016-05-12 03:23:38 +02:00
And t h e w a r n i n g " t h e - w a r n i n g - m e s s a g e " s h o u l d b e s h o w n
And t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " t h e - e r r o r - m e s s a g e "
And t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " t h e - w a r n i n g - m e s s a g e "
And t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " t h e - i n f o - m e s s a g e "
2016-05-12 13:47:20 +02:00
2016-08-18 20:34:03 +02:00
@qtwebengine_skip: F l a k y f o r s o m e r e a s o n ?
2016-05-12 13:47:20 +02:00
Scenario : Showing messages of an invalid level
When I r u n : m e s s a g e s c a t a c l y s m i c
Then t h e e r r o r " I n v a l i d l o g l e v e l c a t a c l y s m i c ! " s h o u l d b e s h o w n
Fix running qute:log and qute:plainlog
This failed because dict.get('level') returned None with no level
parameter, and the subsequent [0] raised:
Traceback (most recent call last):
File ".../qutebrowser/utils/utils.py", line 624, in wrapper
return func(*args, **kwargs)
File ".../qutebrowser/browser/network/networkmanager.py", line 445, in createRequest
op, req, outgoing_data)
File ".../qutebrowser/browser/network/qutescheme.py", line 107, in createRequest
data = handler(self._win_id, request)
File ".../qutebrowser/browser/network/qutescheme.py", line 189, in qute_log
level = urllib.parse.parse_qs(request.url().query()).get('level')[0]
TypeError: 'NoneType' object is not subscriptable
2016-05-15 11:33:30 +02:00
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : l o g i s n o t i m p l e m e n t e d y e t
Fix running qute:log and qute:plainlog
This failed because dict.get('level') returned None with no level
parameter, and the subsequent [0] raised:
Traceback (most recent call last):
File ".../qutebrowser/utils/utils.py", line 624, in wrapper
return func(*args, **kwargs)
File ".../qutebrowser/browser/network/networkmanager.py", line 445, in createRequest
op, req, outgoing_data)
File ".../qutebrowser/browser/network/qutescheme.py", line 107, in createRequest
data = handler(self._win_id, request)
File ".../qutebrowser/browser/network/qutescheme.py", line 189, in qute_log
level = urllib.parse.parse_qs(request.url().query()).get('level')[0]
TypeError: 'NoneType' object is not subscriptable
2016-05-15 11:33:30 +02:00
Scenario : Using qute:log directly
When I o p e n q u t e : l o g
Then n o c r a s h s h o u l d h a p p e n
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : l o g i s n o t i m p l e m e n t e d y e t
Fix running qute:log and qute:plainlog
This failed because dict.get('level') returned None with no level
parameter, and the subsequent [0] raised:
Traceback (most recent call last):
File ".../qutebrowser/utils/utils.py", line 624, in wrapper
return func(*args, **kwargs)
File ".../qutebrowser/browser/network/networkmanager.py", line 445, in createRequest
op, req, outgoing_data)
File ".../qutebrowser/browser/network/qutescheme.py", line 107, in createRequest
data = handler(self._win_id, request)
File ".../qutebrowser/browser/network/qutescheme.py", line 189, in qute_log
level = urllib.parse.parse_qs(request.url().query()).get('level')[0]
TypeError: 'NoneType' object is not subscriptable
2016-05-15 11:33:30 +02:00
Scenario : Using qute:plainlog directly
When I o p e n q u t e : p l a i n l o g
Then n o c r a s h s h o u l d h a p p e n
2016-05-15 11:50:29 +02:00
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : l o g i s n o t i m p l e m e n t e d y e t
2016-05-15 11:50:29 +02:00
Scenario : Using :messages without messages
Given I h a v e a f r e s h i n s t a n c e
When I r u n : m e s s a g e s
2016-05-29 17:07:37 +02:00
Then q u t e : / / l o g ? l e v e l = e r r o r s h o u l d b e l o a d e d
And t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " N o m e s s a g e s t o s h o w . "
2016-05-26 00:52:36 +02:00
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: q u t e : l o g i s n o t i m p l e m e n t e d y e t
2016-08-05 15:13:36 +02:00
Scenario : Using :debug-log-capacity
When I r u n : d e b u g - l o g - c a p a c i t y 100
And I r u n : m e s s a g e - i n f o o l d s t u f f
And I r u n : r e p e a t 10 : m e s s a g e - i n f o o t h e r s t u f f
And I r u n : m e s s a g e - i n f o n e w s t u f f
And I o p e n q u t e : l o g
Then t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " n e w s t u f f "
And t h e p a g e s h o u l d n o t c o n t a i n t h e p l a i n t e x t " o l d s t u f f "
2016-05-26 00:52:36 +02:00
## https://github.com/The-Compiler/qutebrowser/issues/1523
Scenario : Completing a single option argument
2016-08-09 13:56:26 +02:00
When I r u n : s e t - c m d - t e x t - s : - -
2016-05-26 00:52:36 +02:00
Then n o c r a s h s h o u l d h a p p e n
2016-06-06 16:10:10 +02:00
## https://github.com/The-Compiler/qutebrowser/issues/1386
Scenario : Partial commandline matching with startup command
When I r u n : m e s s a g e - i " H e l l o W o r l d " ( i n v a l i d c o m m a n d )
Then t h e e r r o r " m e s s a g e - i : n o s u c h c o m m a n d " s h o u l d b e s h o w n
# We can't run :message-i as startup command, so we use
# :set-cmd-text
Scenario : Partial commandline matching
When I r u n : s e t - c m d - t e x t : m e s s a g e - i " H e l l o W o r l d "
And I r u n : c o m m a n d - a c c e p t
Then t h e m e s s a g e " H e l l o W o r l d " s h o u l d b e s h o w n
2016-06-08 16:34:42 +02:00
## https://github.com/The-Compiler/qutebrowser/issues/1219
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: p r i v a t e b r o w s i n g i s n o t i m p l e m e n t e d y e t
2016-06-08 16:34:42 +02:00
Scenario : Sharing cookies with private browsing
When I s e t g e n e r a l - > p r i v a t e - b r o w s i n g t o t r u e
And I o p e n c o o k i e s / s e t ? q u t e - t e s t = 42 w i t h o u t w a i t i n g
And I w a i t u n t i l c o o k i e s i s l o a d e d
And I o p e n c o o k i e s i n a n e w t a b
Then t h e c o o k i e q u t e - t e s t s h o u l d b e s e t t o 42
2016-07-03 22:32:07 +02:00
2016-08-02 14:17:39 +02:00
## https://github.com/The-Compiler/qutebrowser/issues/1742
2016-08-18 20:34:03 +02:00
@qtwebengine_todo: p r i v a t e b r o w s i n g i s n o t i m p l e m e n t e d y e t
2016-08-02 14:17:39 +02:00
Scenario : Private browsing is activated in QtWebKit without restart
When I s e t g e n e r a l - > p r i v a t e - b r o w s i n g t o t r u e
And I o p e n d a t a / j a v a s c r i p t / l o c a l s t o r a g e . h t m l
2016-08-02 15:18:25 +02:00
Then t h e p a g e s h o u l d c o n t a i n t h e p l a i n t e x t " L o c a l s t o r a g e s t a t u s : n o t w o r k i n g "
2016-08-02 14:17:39 +02:00
2016-07-03 22:32:07 +02:00
Scenario : :repeat-command
2016-08-11 11:47:37 +02:00
Given I o p e n d a t a / s c r o l l / s i m p l e . h t m l
2016-07-03 22:32:07 +02:00
And I r u n : t a b - o n l y
When I r u n : s c r o l l d o w n
And I r u n : r e p e a t - c o m m a n d
And I r u n : s c r o l l u p
Then t h e p a g e s h o u l d b e s c r o l l e d v e r t i c a l l y
Scenario : :repeat-command with count
2016-08-11 11:47:37 +02:00
Given I o p e n d a t a / s c r o l l / s i m p l e . h t m l
2016-07-03 22:32:07 +02:00
And I r u n : t a b - o n l y
When I r u n : s c r o l l d o w n w i t h c o u n t 3
And I r u n : s c r o l l u p
And I r u n : r e p e a t - c o m m a n d w i t h c o u n t 2
Then t h e p a g e s h o u l d n o t b e s c r o l l e d
Scenario : :repeat-command with not-normal command inbetween
2016-08-11 11:47:37 +02:00
Given I o p e n d a t a / s c r o l l / s i m p l e . h t m l
2016-07-03 22:32:07 +02:00
And I r u n : t a b - o n l y
When I r u n : s c r o l l d o w n w i t h c o u n t 3
And I r u n : s c r o l l u p
And I r u n : p r o m p t - a c c e p t
And I r u n : r e p e a t - c o m m a n d w i t h c o u n t 2
Then t h e p a g e s h o u l d n o t b e s c r o l l e d
And t h e e r r o r " p r o m p t - a c c e p t : T h i s c o m m a n d i s o n l y a l l o w e d i n p r o m p t / y e s n o m o d e . " s h o u l d b e s h o w n
2016-07-13 15:24:45 +02:00
2016-08-18 17:43:50 +02:00
@qtwebengine_todo: c r e a t e W i n d o w i s n o t i m p l e m e n t e d y e t
2016-07-13 15:24:45 +02:00
Scenario : :repeat-command with mode-switching command
Given I o p e n d a t a / h i n t s / l i n k _ b l a n k . h t m l
And I r u n : t a b - o n l y
2016-08-18 17:21:50 +02:00
When I h i n t w i t h a r g s " a l l "
2016-07-13 15:24:45 +02:00
And I r u n : l e a v e - m o d e
And I r u n : r e p e a t - c o m m a n d
2016-08-18 16:57:47 +02:00
And I r u n : f o l l o w - h i n t a
And I w a i t u n t i l d a t a / h e l l o . t x t i s l o a d e d
2016-07-13 15:24:45 +02:00
Then t h e f o l l o w i n g t a b s s h o u l d b e o p e n :
- d a t a / h i n t s / l i n k _ b l a n k . h t m l
- d a t a / h e l l o . t x t ( a c t i v e )
2016-08-10 19:42:03 +02:00
2016-08-11 23:37:14 +02:00
@no_xvfb
Scenario : :window-only
Given I r u n : t a b - o n l y
And I o p e n d a t a / h e l l o . t x t
When I o p e n d a t a / h e l l o 2. t x t i n a n e w t a b
And I o p e n d a t a / h e l l o 3. t x t i n a n e w w i n d o w
And I r u n : w i n d o w - o n l y
Then t h e s e s s i o n s h o u l d l o o k l i k e :
w i n d o w s :
- t a b s :
- a c t i v e : t r u e
h i s t o r y :
- u r l : h t t p : / / l o c a l h o s t : * / d a t a / h e l l o 3. t x t
2016-08-10 19:42:03 +02:00
## Variables
Scenario : {url} as part of an argument
When I o p e n d a t a / h e l l o . t x t
And I r u n : m e s s a g e - i n f o f o o { u r l }
Then t h e m e s s a g e " f o o h t t p : / / l o c a l h o s t : * / h e l l o . t x t " s h o u l d b e s h o w n
Scenario : Multiple variables in an argument
When I o p e n d a t a / h e l l o . t x t
And I p u t " f o o " i n t o t h e c l i p b o a r d
And I r u n : m e s s a g e - i n f o { c l i p b o a r d } b a r { u r l }
Then t h e m e s s a g e " f o o b a r h t t p : / / l o c a l h o s t : * / h e l l o . t x t " s h o u l d b e s h o w n
2016-08-14 13:41:08 +02:00
@xfail_norun
Scenario : {url} in clipboard should not be expanded
When I o p e n d a t a / h e l l o . t x t
# FIXME: {url} should be escaped, otherwise it is replaced before it enters clipboard
And I p u t " { u r l } " i n t o t h e c l i p b o a r d
And I r u n : m e s s a g e - i n f o { c l i p b o a r d } b a r { u r l }
Then t h e m e s s a g e " { u r l } b a r h t t p : / / l o c a l h o s t : * / h e l l o . t x t " s h o u l d b e s h o w n
2016-08-18 15:30:04 +02:00
## :click-element
Scenario : Clicking an element with unknown ID
When I o p e n d a t a / c l i c k _ e l e m e n t . h t m l
And I r u n : c l i c k - e l e m e n t i d b l a h
Then t h e e r r o r " N o e l e m e n t f o u n d ! " s h o u l d b e s h o w n
Scenario : Clicking an element by ID
When I o p e n d a t a / c l i c k _ e l e m e n t . h t m l
And I r u n : c l i c k - e l e m e n t i d q u t e - i n p u t
Then " C l i c k e d e d i t a b l e e l e m e n t ! " s h o u l d b e l o g g e d
2016-08-18 15:45:29 +02:00
Scenario : Clicking an element with tab target
When I o p e n d a t a / c l i c k _ e l e m e n t . h t m l
And I r u n : t a b - o n l y
And I r u n : c l i c k - e l e m e n t i d l i n k - - t a r g e t = t a b
Then d a t a / h e l l o . t x t s h o u l d b e l o a d e d
And t h e f o l l o w i n g t a b s s h o u l d b e o p e n :
- d a t a / c l i c k _ e l e m e n t . h t m l
- d a t a / h e l l o . t x t ( a c t i v e )
2016-08-12 13:59:49 +02:00
## logfilter
Scenario : Using :debug-log-filter with commands argument
When I r u n : d e b u g - l o g - f i l t e r c o m m a n d s
And I r u n : m e s s a g e - i n f o " H e l l o W o r l d "
Then t h e m e s s a g e " H e l l o W o r l d " s h o u l d b e s h o w n
Scenario : Using debug-log-filter with invalid filter
When I r u n : d e b u g - l o g - f i l t e r h e l l o
Then t h e e r r o r " I n v a l i d a r g u m e n t , h e l l o c h o o s e f r o m s t a t u s b a r , c o m p l e t i o n , i n i t , u r l , d e s t r o y , m o d e s , w e b v i e w , m i s c , m o u s e , p r o c s , h i n t s , k e y b o a r d , c o m m a n d s , s i g n a l s , d o w n l o a d s , j s , q t , r f c 6 2 6 6 , i p c , s h l e x e r , s a v e , m e s s a g e , c o n f i g , s e s s i o n s " s h o u l d b e s h o w n
Scenario : Using debug-log-level with invalid level
When I r u n : d e b u g - l o g - l e v e l h e l l o
Then t h e e r r o r " I n v a l i d v a l u e h e l l o - e x p e c t e d o n e o f : d e b u g ,
e r r o r , v d e b u g , i n f o , w a r n i n g , c r i t i c a l " s h o u l d b e s h o w n
Scenario : :debug-log-level with warning argument
When I r u n : m e s s a g e - e r r o r t h e - e r r o r - m e s s a g e
And I r u n : m e s s a g e - w a r n i n g t h e - w a r n i n g - m e s s a g e
And I r u n : m e s s a g e - i n f o t h e - i n f o - m e s s a g e
And I r u n : d e b u g - l o g - l e v e l w a r n i n g
Then t h e e r r o r " t h e - e r r o r - m e s s a g e " s h o u l d b e s h o w n
And t h e w a r n i n g " t h e - w a r n i n g - m e s s a g e " s h o u l d b e s h o w n