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.
- checksums.yaml +4 -4
- data/lib/uh/wm/actions_handler.rb +9 -0
- data/lib/uh/wm/cli.rb +1 -1
- data/lib/uh/wm/client.rb +14 -0
- data/lib/uh/wm/env.rb +3 -1
- data/lib/uh/wm/env_logging.rb +1 -1
- data/lib/uh/wm/launcher.rb +73 -0
- data/lib/uh/wm/run_control.rb +10 -0
- data/lib/uh/wm/runner.rb +26 -5
- data/lib/uh/wm/testing/acceptance_helpers.rb +36 -65
- data/lib/uh/wm/testing/x_client.rb +63 -0
- data/lib/uh/wm/version.rb +1 -1
- data/lib/uh/wm/workers/base.rb +1 -1
- data/lib/uh/wm/workers/mux.rb +3 -1
- data/lib/uh/wm.rb +5 -3
- metadata +9 -111
- data/.gitignore +0 -3
- data/.rspec +0 -1
- data/.travis.yml +0 -15
- data/Gemfile +0 -5
- data/Guardfile +0 -12
- data/LICENSE +0 -30
- data/Rakefile +0 -40
- data/config/cucumber.yaml +0 -1
- data/features/actions/execute.feature +0 -9
- data/features/actions/layout_delegation.feature +0 -31
- data/features/actions/quit.feature +0 -9
- data/features/cli/debug.feature +0 -5
- data/features/cli/layout.feature +0 -15
- data/features/cli/require.feature +0 -5
- data/features/cli/run_control.feature +0 -9
- data/features/cli/usage.feature +0 -11
- data/features/cli/verbose.feature +0 -5
- data/features/cli/version.feature +0 -6
- data/features/cli/worker.feature +0 -9
- data/features/layout/manage.feature +0 -12
- data/features/layout/protocol.feature +0 -56
- data/features/layout/unmanage.feature +0 -10
- data/features/manager/change.feature +0 -7
- data/features/manager/check_other_wm.feature +0 -8
- data/features/manager/expose.feature +0 -5
- data/features/manager/input_events.feature +0 -8
- data/features/manager/manage.feature +0 -14
- data/features/manager/unmanage.feature +0 -13
- data/features/manager/x_errors.feature +0 -17
- data/features/run_control/evaluation.feature +0 -18
- data/features/run_control/key.feature +0 -33
- data/features/run_control/layout.feature +0 -39
- data/features/run_control/modifier.feature +0 -10
- data/features/run_control/worker.feature +0 -9
- data/features/session/connection.feature +0 -5
- data/features/session/termination.feature +0 -12
- data/features/steps/filesystem_steps.rb +0 -3
- data/features/steps/output_steps.rb +0 -55
- data/features/steps/run_control_steps.rb +0 -3
- data/features/steps/run_steps.rb +0 -41
- data/features/steps/x_steps.rb +0 -58
- data/features/support/env.rb +0 -33
- data/features/workers/block.feature +0 -15
- data/features/workers/mux.feature +0 -15
- data/spec/spec_helper.rb +0 -30
- data/spec/support/exit_helpers.rb +0 -6
- data/spec/support/factories.rb +0 -27
- data/spec/support/filesystem_helpers.rb +0 -11
- data/spec/uh/wm/actions_handler_spec.rb +0 -35
- data/spec/uh/wm/cli_spec.rb +0 -214
- data/spec/uh/wm/client_spec.rb +0 -148
- data/spec/uh/wm/dispatcher_spec.rb +0 -76
- data/spec/uh/wm/env_spec.rb +0 -154
- data/spec/uh/wm/manager_spec.rb +0 -386
- data/spec/uh/wm/run_control_spec.rb +0 -126
- data/spec/uh/wm/runner_spec.rb +0 -196
- data/uh-wm.gemspec +0 -26
data/spec/uh/wm/client_spec.rb
DELETED
@@ -1,148 +0,0 @@
|
|
1
|
-
module Uh
|
2
|
-
module WM
|
3
|
-
RSpec.describe Client do
|
4
|
-
let(:window) { mock_window }
|
5
|
-
let(:geo) { build_geo }
|
6
|
-
subject(:client) { described_class.new window, geo }
|
7
|
-
|
8
|
-
it 'is not visible' do
|
9
|
-
expect(client).not_to be_visible
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'is hidden' do
|
13
|
-
expect(client).to be_hidden
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'has an unmap count of 0' do
|
17
|
-
expect(client.unmap_count).to eq 0
|
18
|
-
end
|
19
|
-
|
20
|
-
describe '#to_s' do
|
21
|
-
it 'includes window name' do
|
22
|
-
expect(client.to_s).to include 'wname'
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'includes window class' do
|
26
|
-
expect(client.to_s).to include 'wclass'
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'includes geo' do
|
30
|
-
expect(client.to_s).to include geo.to_s
|
31
|
-
end
|
32
|
-
|
33
|
-
it 'includes window string representation' do
|
34
|
-
expect(client.to_s).to include 'wid'
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
describe '#name' do
|
39
|
-
it 'returns the window name' do
|
40
|
-
expect(client.name).to eq window.name
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe '#wclass' do
|
45
|
-
it 'returns the window class' do
|
46
|
-
expect(client.wclass).to eq window.wclass
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe '#update_window_properties' do
|
51
|
-
it 'updates the cached window name' do
|
52
|
-
client.name
|
53
|
-
allow(window).to receive(:name) { 'new name' }
|
54
|
-
expect { client.update_window_properties }
|
55
|
-
.to change { client.name }
|
56
|
-
.from('wname').to 'new name'
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'updates the cached window class' do
|
60
|
-
client.wclass
|
61
|
-
allow(window).to receive(:wclass) { 'new class' }
|
62
|
-
expect { client.update_window_properties }
|
63
|
-
.to change { client.wclass }
|
64
|
-
.from('wclass').to 'new class'
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe '#configure' do
|
69
|
-
it 'configures the window with client geo' do
|
70
|
-
expect(window).to receive(:configure).with geo
|
71
|
-
client.configure
|
72
|
-
end
|
73
|
-
|
74
|
-
it 'returns self' do
|
75
|
-
expect(client.configure).to be client
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
describe '#moveresize' do
|
80
|
-
it 'moveresizes the window with client geo' do
|
81
|
-
expect(window).to receive(:moveresize).with geo
|
82
|
-
client.moveresize
|
83
|
-
end
|
84
|
-
|
85
|
-
it 'returns self' do
|
86
|
-
expect(client.moveresize).to be client
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
describe '#show' do
|
91
|
-
it 'maps the window' do
|
92
|
-
expect(window).to receive :map
|
93
|
-
client.show
|
94
|
-
end
|
95
|
-
|
96
|
-
it 'toggles the client as visible' do
|
97
|
-
expect { client.show }
|
98
|
-
.to change { client.visible? }
|
99
|
-
.from(false).to true
|
100
|
-
end
|
101
|
-
|
102
|
-
it 'returns self' do
|
103
|
-
expect(client.show).to be client
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
describe '#hide' do
|
108
|
-
it 'unmaps the window' do
|
109
|
-
expect(window).to receive :unmap
|
110
|
-
client.hide
|
111
|
-
end
|
112
|
-
|
113
|
-
it 'toggles the client as hidden' do
|
114
|
-
client.show
|
115
|
-
expect { client.hide }
|
116
|
-
.to change { client.hidden? }
|
117
|
-
.from(false).to true
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'increments the unmap count' do
|
121
|
-
expect { client.hide }
|
122
|
-
.to change { client.unmap_count }
|
123
|
-
.from(0).to 1
|
124
|
-
end
|
125
|
-
|
126
|
-
it 'returns self' do
|
127
|
-
expect(client.hide).to be client
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
describe '#focus' do
|
132
|
-
it 'raises the window' do
|
133
|
-
expect(window).to receive :raise
|
134
|
-
client.focus
|
135
|
-
end
|
136
|
-
|
137
|
-
it 'focuses the window' do
|
138
|
-
expect(window).to receive :focus
|
139
|
-
client.focus
|
140
|
-
end
|
141
|
-
|
142
|
-
it 'returns self' do
|
143
|
-
expect(client.focus).to be client
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
module Uh
|
2
|
-
module WM
|
3
|
-
RSpec.describe Dispatcher do
|
4
|
-
subject(:dispatcher) { described_class.new }
|
5
|
-
|
6
|
-
describe '#[]' do
|
7
|
-
context 'when given key for existing hook' do
|
8
|
-
before { dispatcher.hooks[:hook_key] = [:hook] }
|
9
|
-
|
10
|
-
it 'returns registered hooks for this key' do
|
11
|
-
expect(dispatcher[:hook_key]).to eq [:hook]
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
context 'when given multiple keys for existing hook' do
|
16
|
-
before { dispatcher.hooks[%i[hook key]] = [:hook] }
|
17
|
-
|
18
|
-
it 'returns registered hooks for this key' do
|
19
|
-
expect(dispatcher[:hook, :key]).to eq [:hook]
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
context 'when given key for unknown hook' do
|
24
|
-
it 'returns an empty array' do
|
25
|
-
expect(dispatcher[:unknown_hook]).to eq []
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe '#on' do
|
31
|
-
it 'registers given hook for given key' do
|
32
|
-
dispatcher.on(:hook_key) { :hook }
|
33
|
-
expect(dispatcher.hooks[:hook_key]).to be
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'registers given hook for given multiple keys' do
|
37
|
-
dispatcher.on(:hook, :key) { :hook }
|
38
|
-
expect(dispatcher.hooks[%i[hook key]]).to be
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '#emit' do
|
43
|
-
it 'calls hooks registered for given key' do
|
44
|
-
dispatcher.on(:hook_key) { throw :hook_code }
|
45
|
-
expect { dispatcher.emit :hook_key }.to throw_symbol :hook_code
|
46
|
-
end
|
47
|
-
|
48
|
-
it 'returns the value returned by a registered hook' do
|
49
|
-
dispatcher.on(:hook_key) { :hook_code }
|
50
|
-
expect(dispatcher.emit :hook_key).to eq :hook_code
|
51
|
-
end
|
52
|
-
|
53
|
-
context 'when no hooks are registered for given key' do
|
54
|
-
it 'does not call another hook' do
|
55
|
-
dispatcher.on(:hook_key) { throw :hook_code }
|
56
|
-
expect { dispatcher.emit :other_hook_key }.not_to throw_symbol
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context 'when no hooks are registered at all' do
|
61
|
-
it 'does not raise any error' do
|
62
|
-
expect { dispatcher.emit :hook_key }.not_to raise_error
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
context 'when args keyword argument is given' do
|
67
|
-
it 'calls hooks with given args' do
|
68
|
-
dispatcher.on(:hook_key) { |arg1, arg2| throw arg2 }
|
69
|
-
expect { dispatcher.emit :hook_key, args: %i[arg1 arg2] }
|
70
|
-
.to throw_symbol :arg2
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
data/spec/uh/wm/env_spec.rb
DELETED
@@ -1,154 +0,0 @@
|
|
1
|
-
module Uh
|
2
|
-
module WM
|
3
|
-
RSpec.describe Env do
|
4
|
-
let(:output) { StringIO.new }
|
5
|
-
let(:logger) { Logger.new(StringIO.new) }
|
6
|
-
subject(:env) { described_class.new output }
|
7
|
-
|
8
|
-
it 'has verbose mode disabled' do
|
9
|
-
expect(env).not_to be_verbose
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'has debug mode disabled' do
|
13
|
-
expect(env).not_to be_debug
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'has the default rc path set' do
|
17
|
-
expect(env.rc_path).to eq '~/.uhwmrc.rb'
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'has no layout_class set' do
|
21
|
-
expect(env.layout_class).not_to be
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'has the default modifier set' do
|
25
|
-
expect(env.modifier).to eq :mod1
|
26
|
-
end
|
27
|
-
|
28
|
-
it 'has default key binding for quit set' do
|
29
|
-
expect(env.keybinds.keys).to include [:q, :shift]
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'has the blocking worker by default' do
|
33
|
-
expect(env.worker).to eq :block
|
34
|
-
end
|
35
|
-
|
36
|
-
describe '#verbose?' do
|
37
|
-
context 'when verbose mode is disabled' do
|
38
|
-
before { env.verbose = false }
|
39
|
-
|
40
|
-
it 'returns false' do
|
41
|
-
expect(env.verbose?).to be false
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context 'when verbose mode is enabled' do
|
46
|
-
before { env.verbose = true }
|
47
|
-
|
48
|
-
it 'returns true' do
|
49
|
-
expect(env.verbose?).to be true
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe '#debug?' do
|
55
|
-
context 'when debug mode is disabled' do
|
56
|
-
before { env.debug = false }
|
57
|
-
|
58
|
-
it 'returns false' do
|
59
|
-
expect(env.debug?).to be false
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
context 'when debug mode is enabled' do
|
64
|
-
before { env.debug = true }
|
65
|
-
|
66
|
-
it 'returns true' do
|
67
|
-
expect(env.debug?).to be true
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
describe '#layout' do
|
73
|
-
let(:some_layout_class) { Class.new }
|
74
|
-
|
75
|
-
it 'returns the default layout' do
|
76
|
-
expect(env.layout).to be_an_instance_of ::Uh::Layout
|
77
|
-
end
|
78
|
-
|
79
|
-
context 'when a layout is set' do
|
80
|
-
let(:some_layout) { some_layout_class.new }
|
81
|
-
|
82
|
-
before { env.layout = some_layout }
|
83
|
-
|
84
|
-
it 'returns the assigned layout' do
|
85
|
-
expect(env.layout).to be some_layout
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
context 'when a layout class is set' do
|
90
|
-
before { env.layout_class = some_layout_class }
|
91
|
-
|
92
|
-
it 'returns a new instance of this layout class' do
|
93
|
-
expect(env.layout).to be_an_instance_of some_layout_class
|
94
|
-
end
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
describe '#logger' do
|
99
|
-
it 'returns a logger' do
|
100
|
-
expect(env.logger).to be_a Logger
|
101
|
-
end
|
102
|
-
|
103
|
-
it 'has logger level warn set' do
|
104
|
-
expect(env.logger.level).to be Logger::WARN
|
105
|
-
end
|
106
|
-
|
107
|
-
context 'when verbose mode is enabled' do
|
108
|
-
before { env.verbose = true }
|
109
|
-
|
110
|
-
it 'has logger level info set' do
|
111
|
-
expect(env.logger.level).to be Logger::INFO
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
context 'when debug mode is enabled' do
|
116
|
-
before { env.debug = true }
|
117
|
-
|
118
|
-
it 'has logger level debug set' do
|
119
|
-
expect(env.logger.level).to be Logger::DEBUG
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
describe '#log' do
|
125
|
-
it 'logs given message at info level' do
|
126
|
-
expect(env.logger).to receive(:info).with 'some message'
|
127
|
-
env.log 'some message'
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
describe '#log_debug' do
|
132
|
-
it 'logs given message at debug level' do
|
133
|
-
expect(env.logger).to receive(:debug).with 'some message'
|
134
|
-
env.log_debug 'some message'
|
135
|
-
end
|
136
|
-
end
|
137
|
-
|
138
|
-
describe '#log_logger_level' do
|
139
|
-
it 'logs the logger level' do
|
140
|
-
expect(env.logger)
|
141
|
-
.to receive(:info).with /log.+(warn|info|debug).+level/i
|
142
|
-
env.log_logger_level
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
describe '#print' do
|
147
|
-
it 'prints the message to the output' do
|
148
|
-
env.print 'some message'
|
149
|
-
expect(output.string).to eq 'some message'
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|