Handle Manager logging with events Dispatcher
This commit is contained in:
parent
7b9854b499
commit
d965fb2afd
@ -9,7 +9,9 @@ module Uh
|
|||||||
end
|
end
|
||||||
|
|
||||||
def connect
|
def connect
|
||||||
|
@events.emit :display, :connecting, args: @display
|
||||||
@display.open
|
@display.open
|
||||||
|
@events.emit :display, :connected, args: @display
|
||||||
end
|
end
|
||||||
|
|
||||||
def grab_key keysym
|
def grab_key keysym
|
||||||
|
@ -28,12 +28,12 @@ module Uh
|
|||||||
end
|
end
|
||||||
|
|
||||||
def register_event_hooks
|
def register_event_hooks
|
||||||
|
register_manager_hooks
|
||||||
register_key_bindings_hooks
|
register_key_bindings_hooks
|
||||||
end
|
end
|
||||||
|
|
||||||
def connect_manager
|
def connect_manager
|
||||||
@manager.connect
|
@manager.connect
|
||||||
@env.log "Connected to X server"
|
|
||||||
@manager.grab_key :q
|
@manager.grab_key :q
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -44,6 +44,15 @@ module Uh
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def register_manager_hooks
|
||||||
|
@events.on(:display, :connecting) do |display|
|
||||||
|
@env.log_debug "Connecting to X server on `#{display}'"
|
||||||
|
end
|
||||||
|
@events.on(:display, :connected) do |display|
|
||||||
|
@env.log "Connected to X server on `#{display}'"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def register_key_bindings_hooks
|
def register_key_bindings_hooks
|
||||||
@events.on(:key, :q) { stop! }
|
@events.on(:key, :q) { stop! }
|
||||||
end
|
end
|
||||||
|
@ -12,10 +12,38 @@ module Uh
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#connect' do
|
describe '#connect' do
|
||||||
|
let(:block) { proc { } }
|
||||||
|
|
||||||
it 'opens the display' do
|
it 'opens the display' do
|
||||||
expect(manager.display).to receive :open
|
expect(manager.display).to receive :open
|
||||||
manager.connect
|
manager.connect
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'emits :display, :connecting event with the display' do
|
||||||
|
events.on :display, :connecting, &block
|
||||||
|
expect(block).to receive(:call) do |*args|
|
||||||
|
expect(args).to eq [display]
|
||||||
|
end
|
||||||
|
manager.connect
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'emits :display, :connected event with the display' do
|
||||||
|
events.on :display, :connected, &block
|
||||||
|
expect(block).to receive(:call) do |*args|
|
||||||
|
expect(args).to eq [display]
|
||||||
|
end
|
||||||
|
manager.connect
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when connection fails' do
|
||||||
|
before { allow(display).to receive(:open) { fail } }
|
||||||
|
|
||||||
|
it 'does not emit :display, :connected event' do
|
||||||
|
events.on :display, :connected, &block
|
||||||
|
expect(block).not_to receive :call
|
||||||
|
manager.connect rescue nil
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#grab_key' do
|
describe '#grab_key' do
|
||||||
|
@ -76,6 +76,14 @@ module Uh
|
|||||||
end
|
end
|
||||||
|
|
||||||
describe '#register_event_hooks' do
|
describe '#register_event_hooks' do
|
||||||
|
context 'manager' do
|
||||||
|
it 'registers manager event hooks' do
|
||||||
|
runner.register_event_hooks
|
||||||
|
expect(runner.events[:display, :connecting]).not_to be_empty
|
||||||
|
expect(runner.events[:display, :connected]).not_to be_empty
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context 'key bindings' do
|
context 'key bindings' do
|
||||||
it 'registers key bindings event hooks' do
|
it 'registers key bindings event hooks' do
|
||||||
runner.register_event_hooks
|
runner.register_event_hooks
|
||||||
@ -93,11 +101,6 @@ module Uh
|
|||||||
runner.connect_manager
|
runner.connect_manager
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'logs a message when connected' do
|
|
||||||
expect(env).to receive(:log).with /connected/i
|
|
||||||
runner.connect_manager
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'tells the manager to grab keys' do
|
it 'tells the manager to grab keys' do
|
||||||
expect(runner.manager).to receive(:grab_key).with :q
|
expect(runner.manager).to receive(:grab_key).with :q
|
||||||
runner.connect_manager
|
runner.connect_manager
|
||||||
|
Loading…
x
Reference in New Issue
Block a user