Implement Client#hide

This commit is contained in:
Thibault Jouan 2015-04-16 18:39:12 +00:00
parent 870e11a702
commit 3cf62cc07d
2 changed files with 40 additions and 4 deletions

View File

@ -1,13 +1,14 @@
module Uh
module WM
class Client
attr_reader :window
attr_reader :window, :unmap_count
attr_accessor :geo
def initialize window, geo = nil
@window = window
@geo = geo
@visible = false
@window = window
@geo = geo
@visible = false
@unmap_count = 0
end
def to_s
@ -40,6 +41,13 @@ module Uh
@visible = true
self
end
def hide
@window.unmap
@visible = false
@unmap_count += 1
self
end
end
end
end

View File

@ -16,6 +16,10 @@ module Uh
expect(client).to be_hidden
end
it 'has an unmap count of 0' do
expect(client.unmap_count).to eq 0
end
describe '#to_s' do
it 'includes window name' do
expect(client.to_s).to include 'wname'
@ -73,6 +77,30 @@ module Uh
expect(client.show).to be client
end
end
describe '#hide' do
it 'unmaps the window' do
expect(window).to receive :unmap
client.hide
end
it 'toggles the client as hidden' do
client.show
expect { client.hide }
.to change { client.hidden? }
.from(false).to true
end
it 'increments the unmap count' do
expect { client.hide }
.to change { client.unmap_count }
.from(0).to 1
end
it 'returns self' do
expect(client.hide).to be client
end
end
end
end
end