uh-wm 0.0.6 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/lib/uh/wm/actions_handler.rb +9 -0
  3. data/lib/uh/wm/cli.rb +1 -1
  4. data/lib/uh/wm/client.rb +14 -0
  5. data/lib/uh/wm/env.rb +3 -1
  6. data/lib/uh/wm/env_logging.rb +1 -1
  7. data/lib/uh/wm/launcher.rb +73 -0
  8. data/lib/uh/wm/run_control.rb +10 -0
  9. data/lib/uh/wm/runner.rb +26 -5
  10. data/lib/uh/wm/testing/acceptance_helpers.rb +36 -65
  11. data/lib/uh/wm/testing/x_client.rb +63 -0
  12. data/lib/uh/wm/version.rb +1 -1
  13. data/lib/uh/wm/workers/base.rb +1 -1
  14. data/lib/uh/wm/workers/mux.rb +3 -1
  15. data/lib/uh/wm.rb +5 -3
  16. metadata +9 -111
  17. data/.gitignore +0 -3
  18. data/.rspec +0 -1
  19. data/.travis.yml +0 -15
  20. data/Gemfile +0 -5
  21. data/Guardfile +0 -12
  22. data/LICENSE +0 -30
  23. data/Rakefile +0 -40
  24. data/config/cucumber.yaml +0 -1
  25. data/features/actions/execute.feature +0 -9
  26. data/features/actions/layout_delegation.feature +0 -31
  27. data/features/actions/quit.feature +0 -9
  28. data/features/cli/debug.feature +0 -5
  29. data/features/cli/layout.feature +0 -15
  30. data/features/cli/require.feature +0 -5
  31. data/features/cli/run_control.feature +0 -9
  32. data/features/cli/usage.feature +0 -11
  33. data/features/cli/verbose.feature +0 -5
  34. data/features/cli/version.feature +0 -6
  35. data/features/cli/worker.feature +0 -9
  36. data/features/layout/manage.feature +0 -12
  37. data/features/layout/protocol.feature +0 -56
  38. data/features/layout/unmanage.feature +0 -10
  39. data/features/manager/change.feature +0 -7
  40. data/features/manager/check_other_wm.feature +0 -8
  41. data/features/manager/expose.feature +0 -5
  42. data/features/manager/input_events.feature +0 -8
  43. data/features/manager/manage.feature +0 -14
  44. data/features/manager/unmanage.feature +0 -13
  45. data/features/manager/x_errors.feature +0 -17
  46. data/features/run_control/evaluation.feature +0 -18
  47. data/features/run_control/key.feature +0 -33
  48. data/features/run_control/layout.feature +0 -39
  49. data/features/run_control/modifier.feature +0 -10
  50. data/features/run_control/worker.feature +0 -9
  51. data/features/session/connection.feature +0 -5
  52. data/features/session/termination.feature +0 -12
  53. data/features/steps/filesystem_steps.rb +0 -3
  54. data/features/steps/output_steps.rb +0 -55
  55. data/features/steps/run_control_steps.rb +0 -3
  56. data/features/steps/run_steps.rb +0 -41
  57. data/features/steps/x_steps.rb +0 -58
  58. data/features/support/env.rb +0 -33
  59. data/features/workers/block.feature +0 -15
  60. data/features/workers/mux.feature +0 -15
  61. data/spec/spec_helper.rb +0 -30
  62. data/spec/support/exit_helpers.rb +0 -6
  63. data/spec/support/factories.rb +0 -27
  64. data/spec/support/filesystem_helpers.rb +0 -11
  65. data/spec/uh/wm/actions_handler_spec.rb +0 -35
  66. data/spec/uh/wm/cli_spec.rb +0 -214
  67. data/spec/uh/wm/client_spec.rb +0 -148
  68. data/spec/uh/wm/dispatcher_spec.rb +0 -76
  69. data/spec/uh/wm/env_spec.rb +0 -154
  70. data/spec/uh/wm/manager_spec.rb +0 -386
  71. data/spec/uh/wm/run_control_spec.rb +0 -126
  72. data/spec/uh/wm/runner_spec.rb +0 -196
  73. data/uh-wm.gemspec +0 -26
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uh-wm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thibault Jouan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-28 00:00:00.000000000 Z
11
+ date: 2015-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uh
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0
19
+ version: 2.0.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.0
26
+ version: 2.0.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: uh-layout
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -113,54 +113,11 @@ email: tj@a13.fr
113
113
  executables:
114
114
  - uhwm
115
115
  extensions: []
116
- extra_rdoc_files: []
116
+ extra_rdoc_files:
117
+ - README.md
117
118
  files:
118
- - ".gitignore"
119
- - ".rspec"
120
- - ".travis.yml"
121
- - Gemfile
122
- - Guardfile
123
- - LICENSE
124
119
  - README.md
125
- - Rakefile
126
120
  - bin/uhwm
127
- - config/cucumber.yaml
128
- - features/actions/execute.feature
129
- - features/actions/layout_delegation.feature
130
- - features/actions/quit.feature
131
- - features/cli/debug.feature
132
- - features/cli/layout.feature
133
- - features/cli/require.feature
134
- - features/cli/run_control.feature
135
- - features/cli/usage.feature
136
- - features/cli/verbose.feature
137
- - features/cli/version.feature
138
- - features/cli/worker.feature
139
- - features/layout/manage.feature
140
- - features/layout/protocol.feature
141
- - features/layout/unmanage.feature
142
- - features/manager/change.feature
143
- - features/manager/check_other_wm.feature
144
- - features/manager/expose.feature
145
- - features/manager/input_events.feature
146
- - features/manager/manage.feature
147
- - features/manager/unmanage.feature
148
- - features/manager/x_errors.feature
149
- - features/run_control/evaluation.feature
150
- - features/run_control/key.feature
151
- - features/run_control/layout.feature
152
- - features/run_control/modifier.feature
153
- - features/run_control/worker.feature
154
- - features/session/connection.feature
155
- - features/session/termination.feature
156
- - features/steps/filesystem_steps.rb
157
- - features/steps/output_steps.rb
158
- - features/steps/run_control_steps.rb
159
- - features/steps/run_steps.rb
160
- - features/steps/x_steps.rb
161
- - features/support/env.rb
162
- - features/workers/block.feature
163
- - features/workers/mux.feature
164
121
  - lib/uh/wm.rb
165
122
  - lib/uh/wm/actions_handler.rb
166
123
  - lib/uh/wm/cli.rb
@@ -168,29 +125,18 @@ files:
168
125
  - lib/uh/wm/dispatcher.rb
169
126
  - lib/uh/wm/env.rb
170
127
  - lib/uh/wm/env_logging.rb
128
+ - lib/uh/wm/launcher.rb
171
129
  - lib/uh/wm/logger_formatter.rb
172
130
  - lib/uh/wm/manager.rb
173
131
  - lib/uh/wm/run_control.rb
174
132
  - lib/uh/wm/runner.rb
175
133
  - lib/uh/wm/testing/acceptance_helpers.rb
134
+ - lib/uh/wm/testing/x_client.rb
176
135
  - lib/uh/wm/version.rb
177
136
  - lib/uh/wm/workers.rb
178
137
  - lib/uh/wm/workers/base.rb
179
138
  - lib/uh/wm/workers/blocking.rb
180
139
  - lib/uh/wm/workers/mux.rb
181
- - spec/spec_helper.rb
182
- - spec/support/exit_helpers.rb
183
- - spec/support/factories.rb
184
- - spec/support/filesystem_helpers.rb
185
- - spec/uh/wm/actions_handler_spec.rb
186
- - spec/uh/wm/cli_spec.rb
187
- - spec/uh/wm/client_spec.rb
188
- - spec/uh/wm/dispatcher_spec.rb
189
- - spec/uh/wm/env_spec.rb
190
- - spec/uh/wm/manager_spec.rb
191
- - spec/uh/wm/run_control_spec.rb
192
- - spec/uh/wm/runner_spec.rb
193
- - uh-wm.gemspec
194
140
  homepage: https://rubygems.org/gems/uh-wm
195
141
  licenses:
196
142
  - BSD-3-Clause
@@ -215,52 +161,4 @@ rubygems_version: 2.4.5
215
161
  signing_key:
216
162
  specification_version: 4
217
163
  summary: minimalistic tiling and stacking window manager for X
218
- test_files:
219
- - features/actions/execute.feature
220
- - features/actions/layout_delegation.feature
221
- - features/actions/quit.feature
222
- - features/cli/debug.feature
223
- - features/cli/layout.feature
224
- - features/cli/require.feature
225
- - features/cli/run_control.feature
226
- - features/cli/usage.feature
227
- - features/cli/verbose.feature
228
- - features/cli/version.feature
229
- - features/cli/worker.feature
230
- - features/layout/manage.feature
231
- - features/layout/protocol.feature
232
- - features/layout/unmanage.feature
233
- - features/manager/change.feature
234
- - features/manager/check_other_wm.feature
235
- - features/manager/expose.feature
236
- - features/manager/input_events.feature
237
- - features/manager/manage.feature
238
- - features/manager/unmanage.feature
239
- - features/manager/x_errors.feature
240
- - features/run_control/evaluation.feature
241
- - features/run_control/key.feature
242
- - features/run_control/layout.feature
243
- - features/run_control/modifier.feature
244
- - features/run_control/worker.feature
245
- - features/session/connection.feature
246
- - features/session/termination.feature
247
- - features/steps/filesystem_steps.rb
248
- - features/steps/output_steps.rb
249
- - features/steps/run_control_steps.rb
250
- - features/steps/run_steps.rb
251
- - features/steps/x_steps.rb
252
- - features/support/env.rb
253
- - features/workers/block.feature
254
- - features/workers/mux.feature
255
- - spec/spec_helper.rb
256
- - spec/support/exit_helpers.rb
257
- - spec/support/factories.rb
258
- - spec/support/filesystem_helpers.rb
259
- - spec/uh/wm/actions_handler_spec.rb
260
- - spec/uh/wm/cli_spec.rb
261
- - spec/uh/wm/client_spec.rb
262
- - spec/uh/wm/dispatcher_spec.rb
263
- - spec/uh/wm/env_spec.rb
264
- - spec/uh/wm/manager_spec.rb
265
- - spec/uh/wm/run_control_spec.rb
266
- - spec/uh/wm/runner_spec.rb
164
+ test_files: []
data/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- /Gemfile-custom.rb
2
- /Gemfile.lock
3
- /tmp/
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --require spec_helper
data/.travis.yml DELETED
@@ -1,15 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- rvm:
4
- - 2.2
5
- - ruby-head
6
- - 2.1
7
- before_install:
8
- - travis_retry sudo apt-get update -qq
9
- - travis_retry sudo apt-get install -qq twm x11-utils xdotool
10
- matrix:
11
- allow_failures:
12
- - rvm: ruby-head
13
- notifications:
14
- email:
15
- - tj+travis_uh_wm@a13.fr
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec
4
-
5
- eval File.read('Gemfile-custom.rb') if File.exist?('Gemfile-custom.rb')
data/Guardfile DELETED
@@ -1,12 +0,0 @@
1
- directories %w[features lib spec]
2
-
3
- guard :cucumber, cli: '--format pretty --quiet', all_on_start: false do
4
- watch(%r{\Afeatures/.+\.feature\z})
5
- end
6
-
7
- guard :rspec, cmd: 'bundle exec rspec -f doc' do
8
- watch(%r{\Aspec/.+_spec\.rb\z})
9
- watch(%r{\Alib/(.+)\.rb\z}) { |m| "spec/#{m[1]}_spec.rb" }
10
- watch('spec/spec_helper.rb') { 'spec' }
11
- watch(%r{\Aspec/support/.+\.rb\z}) { 'spec' }
12
- end
data/LICENSE DELETED
@@ -1,30 +0,0 @@
1
- Copyright 2015 Thibault Jouan. All rights reserved.
2
-
3
- Redistribution and use in source and binary forms, with or without
4
- modification, are permitted provided that the following conditions are
5
- met:
6
-
7
- * Redistributions of source code must retain the above copyright
8
- notice, this list of conditions and the following disclaimer.
9
-
10
- * Redistributions in binary form must reproduce the above copyright
11
- notice, this list of conditions and the following disclaimer in
12
- the documentation and/or other materials provided with the
13
- distribution.
14
-
15
- * Neither the name of the software nor the names of its contributors
16
- may be used to endorse or promote products derived from this
17
- software without specific prior written permission.
18
-
19
-
20
- THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS "AS IS" AND
21
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23
- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS
24
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
27
- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
29
- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
30
- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/Rakefile DELETED
@@ -1,40 +0,0 @@
1
- require 'tempfile'
2
- require 'cucumber/rake/task'
3
- require 'rspec/core/rake_task'
4
-
5
- XEPHYR_DISPLAY = ':42'
6
- XEPHYR_CMD = "$(command -v Xephyr) #{XEPHYR_DISPLAY} -ac -br -noreset".freeze
7
- XEPHYR_SCREENS = '-screen 1436x400'.freeze
8
- XEPHYR_SCREENS_XINERAMA =
9
- '+xinerama -origin 0,0 -screen 1920x400 -origin 1920,0 -screen 1920x400'.freeze
10
-
11
- task default: %i[features spec]
12
-
13
- Cucumber::Rake::Task.new(:features)
14
-
15
- RSpec::Core::RakeTask.new
16
-
17
- desc 'Run uhwm in a Xephyr X server'
18
- task :run do
19
- uhwm_args = ARGV.include?('--') ?
20
- ARGV.slice_after('--').to_a.last :
21
- %w[-d]
22
- Tempfile.create('uhwm_xinitrc') do |xinitrc|
23
- xinitrc.write <<-eoh
24
- [ -f $HOME/.Xdefaults ] && xrdb $HOME/.Xdefaults
25
- #xkbcomp #{ENV['DISPLAY']} #{XEPHYR_DISPLAY}
26
- xmodmap -display #{ENV['DISPLAY']} -pke | xmodmap -
27
- xsetroot -solid SpringGreen
28
- echo "######## UHWM START ########"
29
- ./bin/uhwm #{uhwm_args.join ' '}
30
- echo "######## UHWM END ##########"
31
- eoh
32
- xinitrc.flush
33
- sh "xinit #{xinitrc.path} -- %s" % [
34
- XEPHYR_CMD,
35
- ENV.key?('UHWM_XINERAMA') ?
36
- XEPHYR_SCREENS_XINERAMA :
37
- XEPHYR_SCREENS
38
- ].join(' ')
39
- end
40
- end
data/config/cucumber.yaml DELETED
@@ -1 +0,0 @@
1
- default: --require features/support --require features/steps
@@ -1,9 +0,0 @@
1
- Feature: `execute' action keyword
2
-
3
- Scenario: executes the given command in a shell with current standard output
4
- Given uhwm is running with this run control file:
5
- """
6
- key(:f) { execute 'echo etucexe_tset | rev' }
7
- """
8
- When I press the alt+f keys
9
- Then the output must contain "test_execute"
@@ -1,31 +0,0 @@
1
- Feature: `layout_*' action keywords
2
-
3
- Background:
4
- Given a file named layout.rb with:
5
- """
6
- class Layout
7
- def register _; end
8
-
9
- def handle_some_action arg
10
- puts arg
11
- end
12
- end
13
- """
14
-
15
- Scenario: delegates messages matching `layout_*' to `layout_handle_*'
16
- Given a run control file with:
17
- """
18
- key(:f) { layout_some_action :testing_some_action }
19
- """
20
- And uhwm is running
21
- When I press the alt+f keys
22
- Then the output must contain ":testing_some_action"
23
-
24
- Scenario: logs an error about unimplemented messages
25
- Given a run control file with:
26
- """
27
- key(:f) { layout_unknown_action }
28
- """
29
- And uhwm is running
30
- When I press the alt+f keys
31
- Then the output must match /layout.+no.+implem.+handle_unknown_action/i
@@ -1,9 +0,0 @@
1
- Feature: `quit' action keyword
2
-
3
- Scenario: requests quit when invoked
4
- Given uhwm is running with this run control file:
5
- """
6
- key(:f) { quit }
7
- """
8
- When I press the alt+f keys
9
- Then uhwm must terminate successfully
@@ -1,5 +0,0 @@
1
- Feature: debug CLI option
2
-
3
- Scenario: raises the logger level to DEBUG
4
- When I run uhwm with option -d
5
- Then the output must match /log.+debug.+level/i
@@ -1,15 +0,0 @@
1
- Feature: layout CLI option
2
-
3
- Scenario: specifies the layout class
4
- Given a file named layout.rb with:
5
- """
6
- class MyLayout
7
- def register _; end
8
- end
9
- """
10
- When I run uhwm with option -v -r./layout -l MyLayout
11
- Then the output must match /layout.+mylayout/i
12
-
13
- Scenario: resolves layout class from the root namespace
14
- When I run uhwm with option -v -l Layout
15
- Then the output must contain "uninitialized constant Layout"
@@ -1,5 +0,0 @@
1
- Feature: require CLI option
2
-
3
- Scenario: requires a ruby feature
4
- When I run uhwm with option -v -r abbrev
5
- Then the output must match /load.+abbrev.+ruby feature/i
@@ -1,9 +0,0 @@
1
- Feature: run control file path CLI option
2
-
3
- Scenario: specifies run control file path
4
- Given a file named uhwmrc.rb with:
5
- """
6
- puts 'run control evaluation'
7
- """
8
- When I run uhwm with option -f uhwmrc.rb
9
- Then the output must contain "run control evaluation"
@@ -1,11 +0,0 @@
1
- Feature: CLI usage
2
-
3
- Scenario: prints the usage when unknown option switch is given
4
- When I run uhwm with option --unknown-option
5
- Then the exit status must be 64
6
- And the output must contain exactly the usage
7
-
8
- Scenario: prints the help when -h option is given
9
- When I run uhwm with option -h
10
- Then uhwm must terminate successfully
11
- And the output must contain exactly the usage
@@ -1,5 +0,0 @@
1
- Feature: verbose CLI option
2
-
3
- Scenario: raises the logger level to INFO
4
- When I run uhwm with option -v
5
- Then the output must match /log.+info.+level/i
@@ -1,6 +0,0 @@
1
- Feature: version CLI option
2
-
3
- Scenario: prints the current version on standard output
4
- When I run uhwm with option --version
5
- Then uhwm must terminate successfully
6
- And the output must contain exactly the version
@@ -1,9 +0,0 @@
1
- Feature: worker CLI option
2
-
3
- Scenario: uses the blocking worker when `block' is given
4
- When I run uhwm with option -v -w block
5
- Then the output must match /work.+event.+block/i
6
-
7
- Scenario: uses the multiplexing worker when `mux' is given
8
- When I run uhwm with option -v -w mux
9
- Then the output must match /work.+event.+mux/i
@@ -1,12 +0,0 @@
1
- Feature: layout client management
2
-
3
- Background:
4
- Given uhwm is running
5
-
6
- Scenario: maps new client window
7
- When a window requests to be mapped
8
- Then the window must be mapped
9
-
10
- Scenario: focuses new client window
11
- When a window is mapped
12
- Then the window must be focused
@@ -1,56 +0,0 @@
1
- Feature: layout protocol
2
-
3
- Background:
4
- Given a file named layout.rb with:
5
- """
6
- class Layout
7
- def register display
8
- puts display
9
- display.create_subwindow(Uh::Geo.new(0, 0, 640, 16)).tap do |o|
10
- o.show
11
- end
12
- end
13
-
14
- def << client
15
- puts "testing_#<<_#{client.name}"
16
- client.show
17
- end
18
-
19
- def remove client
20
- puts "testing_#remove_#{client.name}"
21
- end
22
-
23
- def update client
24
- puts "testing_#update_#{client.name}"
25
- end
26
-
27
- def expose window
28
- puts "testing_#expose_#{window.id}"
29
- end
30
- end
31
- """
32
-
33
- Scenario: tells the layout to register with #register message
34
- When I run uhwm with option -r./layout -l Layout
35
- Then the output must contain current display
36
-
37
- Scenario: tells the layout to manage a client with #<< message
38
- Given uhwm is running with options -v -r./layout -l Layout
39
- When a window requests to be mapped
40
- Then the output must contain "testing_#<<_XClient/default"
41
-
42
- Scenario: tells the layout to unmanage a client with #remove message
43
- Given uhwm is running with options -v -r./layout -l Layout
44
- And a window is mapped
45
- When the window is unmapped
46
- Then the output must contain "testing_#remove_XClient/default"
47
-
48
- Scenario: tells the layout to update a changed client with #update message
49
- Given uhwm is running with options -v -r./layout -l Layout
50
- And a window is mapped
51
- When the window name changes to "testing_new_name"
52
- Then the output must contain "testing_#update_testing_new_name"
53
-
54
- Scenario: tells the layout about an exposed window with #expose message
55
- Given I run uhwm with options -r./layout -l Layout
56
- Then the output must match /testing_#expose_\d+/
@@ -1,10 +0,0 @@
1
- Feature: layout client unmanagement
2
-
3
- Background:
4
- Given uhwm is running
5
- And a first window is mapped
6
- And a second window is mapped
7
-
8
- Scenario: maps another window
9
- When the second window is unmapped
10
- Then the first window must be mapped
@@ -1,7 +0,0 @@
1
- Feature: clients window properties updating
2
-
3
- Scenario: logs when the window properties of a client change
4
- Given uhwm is running
5
- And a window is mapped
6
- When the window name changes to "testing_new_name"
7
- Then the output must match /updat.+testing_new_name/i
@@ -1,8 +0,0 @@
1
- Feature: checking if another window manager is running
2
-
3
- @other_wm_running
4
- Scenario: fails when another window manager is running
5
- Given another window manager is running
6
- When I start uhwm
7
- Then the exit status must be 70
8
- And the output must match /error.+other.+window.+manager/i
@@ -1,5 +0,0 @@
1
- Feature: expose events handling
2
-
3
- Scenario: logs when an expose event is handled
4
- Given uhwm is running
5
- Then the output must match /expos.+window.+\d+/i
@@ -1,8 +0,0 @@
1
- Feature: input events selection
2
-
3
- Scenario: selects the appropriate input event mask for a window manager
4
- Given uhwm is running
5
- Then the input event mask must include StructureNotifyMask
6
- And the input event mask must include SubstructureNotifyMask
7
- And the input event mask must include SubstructureRedirectMask
8
- And the input event mask must include PropertyChangeMask
@@ -1,14 +0,0 @@
1
- Feature: manager client management
2
-
3
- Background:
4
- Given uhwm is running
5
-
6
- Scenario: logs when a new client is managed
7
- When a window requests to be mapped
8
- Then the output must match /manag.+xclient/i
9
-
10
- Scenario: manages a given client only once
11
- When a window requests to be mapped 2 times
12
- And I quit uhwm
13
- Then the output must not match /manag.*\n.*manag/mi
14
- And the output must not match /xerror/i
@@ -1,13 +0,0 @@
1
- Feature: manager client unmanagement
2
-
3
- Background:
4
- Given uhwm is running
5
- And a window is mapped
6
-
7
- Scenario: logs when a new client is unmanaged
8
- When the window is unmapped
9
- Then the output must match /unmanag.+xclient/i
10
-
11
- Scenario: unmanages client on destroy notify X events
12
- When the window is destroyed
13
- Then the output must match /unmanag.+xclient/i
@@ -1,17 +0,0 @@
1
- Feature: X errors logging
2
-
3
- Scenario: logs error details
4
- Given a file named layout.rb with:
5
- """
6
- class Layout
7
- def register _; end
8
-
9
- # Focusing a client before mapping will force an error
10
- def << client
11
- client.focus
12
- end
13
- end
14
- """
15
- And uhwm is running with options -v -r./layout -l Layout
16
- When a window requests to be mapped
17
- Then the output must match /x.*error.+x_setinputfocus.+/i
@@ -1,18 +0,0 @@
1
- Feature: run control file evaluation
2
-
3
- Scenario: evaluates the default run control file when present
4
- Given a run control file with:
5
- """
6
- puts 'run control evaluation'
7
- """
8
- When I start uhwm
9
- Then the output must contain "run control evaluation"
10
-
11
- Scenario: reports run control code in backtrace on errors
12
- Given a run control file with:
13
- """
14
- 'no error on first line'
15
- fail 'fails on second line'
16
- """
17
- When I start uhwm
18
- Then the output must match /\.uhwmrc\.rb:2:.+fails on second line/
@@ -1,33 +0,0 @@
1
- Feature: `key' run control keyword
2
-
3
- Scenario: defines code to run when given key is pressed
4
- Given uhwm is running with this run control file:
5
- """
6
- key(:f) { puts 'trigger f key code' }
7
- """
8
- When I press the alt+f keys
9
- Then the output must contain "trigger f key code"
10
-
11
- Scenario: defines code to run when given keys are pressed
12
- Given uhwm is running with this run control file:
13
- """
14
- key(:f, :shift) { puts 'trigger f key code' }
15
- """
16
- When I press the alt+shift+f keys
17
- Then the output must contain "trigger f key code"
18
-
19
- Scenario: translates common key names to their X equivalent
20
- Given uhwm is running with this run control file:
21
- """
22
- key(:enter) { puts 'trigger return key code' }
23
- """
24
- When I press the alt+Return keys
25
- Then the output must contain "trigger return key code"
26
-
27
- Scenario: translates upcased key names to combination with shift key
28
- Given uhwm is running with this run control file:
29
- """
30
- key(:F) { puts 'trigger shift+f key code' }
31
- """
32
- When I press the alt+shift+f keys
33
- Then the output must contain "trigger shift+f key code"