master/spec/guard/notifier_spec.rb

74 lines
1.9 KiB
Ruby

require 'spec_helper'
describe Guard::Notifier do
subject { Guard::Notifier }
describe ".notify" do
before(:each) { subject.turn_on }
after(:each) { subject.turn_off }
if mac?
if growl_installed?
it "uses Growl on Mac OS X" do
Growl.should_receive(:notify).with("great",
:title => "Guard",
:icon => Pathname.new(File.dirname(__FILE__)).join('../../images/success.png').to_s,
:name => "Guard"
)
subject.notify 'great', :title => 'Guard'
end
else
it { should_not be_enabled }
end
end
if linux?
if libnotify_installed?
it "uses Libnotify on Linux" do
Libnotify.should_receive(:show).with(
:body => "great",
:summary => 'Guard',
:icon_path => Pathname.new(File.dirname(__FILE__)).join('../../images/success.png').to_s
)
subject.notify 'great', :title => 'Guard'
end
else
it { should_not be_enabled }
end
end
if windows?
if rbnotifu_installed?
it "uses rb-notifu on Windows" do
@result = -1
Notifu::show :message => "great", :title => 'Guard' do |status|
@result = status
end
sleep 1.5
Notifu::ERRORS.include?(@result).should be_false
end
else
it { should_not be_enabled }
end
end
end
describe ".turn_off" do
if mac? && growl_installed?
it "prevents the notifications" do
Growl.should_not_receive(:notify)
subject.notify 'great', :title => 'Guard'
end
elsif linux? && libnotify_installed?
it "prevents the notifications" do
Libnotify.should_not_receive(:show)
subject.notify 'great', :title => 'Guard'
end
end
it { should_not be_enabled }
end
end