Implement Manager#handle_pending_events
This commit is contained in:
parent
d3007201cc
commit
585903240b
@ -14,6 +14,13 @@ module Uh
|
|||||||
def grab_key keysym
|
def grab_key keysym
|
||||||
@display.grab_key keysym.to_s, KEY_MODIFIERS[:mod1]
|
@display.grab_key keysym.to_s, KEY_MODIFIERS[:mod1]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def handle_pending_events
|
||||||
|
handle @display.next_event while @display.pending?
|
||||||
|
end
|
||||||
|
|
||||||
|
def handle event
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
module Uh
|
module Uh
|
||||||
module WM
|
module WM
|
||||||
RSpec.describe Manager do
|
RSpec.describe Manager do
|
||||||
subject(:manager) { described_class.new }
|
let(:display) { Display.new }
|
||||||
|
subject(:manager) { described_class.new display }
|
||||||
|
|
||||||
describe '#initialize' do
|
describe '#initialize' do
|
||||||
it 'assigns a new display' do
|
it 'assigns a new display' do
|
||||||
@ -23,6 +24,38 @@ module Uh
|
|||||||
manager.grab_key :q
|
manager.grab_key :q
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#handle_pending_events' do
|
||||||
|
let(:event) { double 'event' }
|
||||||
|
|
||||||
|
context 'when an event is pending on display' do
|
||||||
|
before do
|
||||||
|
allow(display).to receive(:pending?).and_return true, false
|
||||||
|
allow(display).to receive(:next_event) { event }
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'handles the event' do
|
||||||
|
expect(manager).to receive(:handle).with(event).once
|
||||||
|
manager.handle_pending_events
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when multiple events are pending on display' do
|
||||||
|
before do
|
||||||
|
allow(display).to receive(:pending?).and_return true, true, false
|
||||||
|
allow(display).to receive(:next_event) { event }
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'handles all pending events' do
|
||||||
|
expect(manager).to receive(:handle).with(event).twice
|
||||||
|
manager.handle_pending_events
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#handle' do
|
||||||
|
it 'handles an event'
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user