test_notifier 0.3.5.rc.2 → 0.3.5.rc.3

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.
data/lib/test_notifier.rb CHANGED
@@ -1,6 +1,7 @@
1
+ require "notifier"
2
+
1
3
  module TestNotifier
2
4
  class << self
3
- attr_accessor :__notifier__
4
5
  attr_accessor :default_notifier
5
6
  end
6
7
 
@@ -30,17 +31,12 @@ module TestNotifier
30
31
  end
31
32
 
32
33
  def notifier
33
- self.__notifier__ ||= begin
34
- notifier = TestNotifier::Notifier.supported_notifier_from_name(default_notifier)
35
- notifier ||= TestNotifier::Notifier.supported_notifiers.first
36
-
37
- STDERR << NO_NOTIFIERS_MESSAGE if notifier == TestNotifier::Notifier::Placebo
38
-
39
- notifier
40
- end
34
+ Notifier.default_notifier = default_notifier
35
+ notifier = Notifier.notifier
36
+ STDERR << NO_NOTIFIERS_MESSAGE if notifier == Notifier::Placebo
37
+ notifier
41
38
  end
42
39
 
43
- autoload :Notifier, "test_notifier/notifier"
44
40
  autoload :Runner, "test_notifier/runner"
45
41
  autoload :Stats, "test_notifier/stats"
46
42
  end
data/test/test_helper.rb CHANGED
@@ -7,9 +7,8 @@ require "test_notifier"
7
7
  class Test::Unit::TestCase
8
8
  private
9
9
  def unsupport_all_notifiers
10
- TestNotifier::Notifier.constants.each do |name|
11
- notifier = TestNotifier::Notifier.const_get(name)
12
- notifier.stubs(:supported?).returns(false)
10
+ Notifier.notifiers.each do |notifier|
11
+ notifier.stubs(:supported?).returns(false) unless notifier == Notifier::Placebo
13
12
  end
14
13
  end
15
14
  end
@@ -2,34 +2,27 @@ require "test_helper"
2
2
 
3
3
  class TestNotifierTest < Test::Unit::TestCase
4
4
  def setup
5
- TestNotifier.__notifier__ = nil
6
5
  unsupport_all_notifiers
7
6
  end
8
7
 
9
- test "return default notifier when is set" do
10
- TestNotifier.default_notifier = :osd_cat
11
- TestNotifier::Notifier::OsdCat.expects(:supported?).returns(true)
8
+ test "use default notifier" do
9
+ Notifier::Growl.stubs(:supported?).returns(true)
10
+ Notifier::Snarl.stubs(:supported?).returns(true)
11
+ TestNotifier.default_notifier = :snarl
12
12
 
13
- assert_equal TestNotifier::Notifier::OsdCat, TestNotifier.notifier
14
- end
15
-
16
- test "return next available notifier when default notifier is not supported" do
17
- TestNotifier.default_notifier = :osd_cat
18
- TestNotifier::Notifier::Snarl.expects(:supported?).returns(true)
19
-
20
- assert_equal TestNotifier::Notifier::Snarl, TestNotifier.notifier
13
+ assert_equal Notifier::Snarl, TestNotifier.notifier
21
14
  end
22
15
 
23
16
  test "output error message to $stderr when there's no supported notifier" do
24
17
  STDERR.expects(:<<).with(TestNotifier::NO_NOTIFIERS_MESSAGE).once
25
- TestNotifier::Notifier::Placebo.expects(:supported?).returns(true)
26
- TestNotifier::Notifier::Placebo.expects(:notify).once
18
+ Notifier::Placebo.expects(:supported?).returns(true)
19
+ Notifier::Placebo.expects(:notify).once
27
20
  TestNotifier.notify :status => :fail, :message => "You have failed!"
28
21
  end
29
22
 
30
23
  test "send notification to supported notifier" do
31
- TestNotifier::Notifier::Snarl.expects(:supported?).returns(true)
32
- TestNotifier::Notifier::Snarl.expects(:notify).with({
24
+ Notifier::Snarl.expects(:supported?).returns(true)
25
+ Notifier::Snarl.expects(:notify).with({
33
26
  :status => :fail,
34
27
  :message => "You have failed!",
35
28
  :title => TestNotifier::TITLES[:fail],
@@ -4,7 +4,7 @@ require "test_notifier/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "test_notifier"
7
- s.version = "#{TestNotifier::Version::STRING}.rc.2"
7
+ s.version = "#{TestNotifier::Version::STRING}.rc.3"
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["Nando Vieira"]
10
10
  s.email = ["fnando.vieira@gmail.com"]
@@ -21,8 +21,7 @@ DESC
21
21
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
22
  s.require_paths = ["lib"]
23
23
 
24
- s.requirements << "You'll need Growl (Mac OS X), Libnotify, OSD or KDE (Linux) or Snarl (Windows)"
25
-
24
+ s.add_dependency "notifier"
26
25
  s.add_development_dependency "test-unit"
27
26
  s.add_development_dependency "mocha"
28
27
  end
metadata CHANGED
@@ -7,8 +7,8 @@ version: !ruby/object:Gem::Version
7
7
  - 3
8
8
  - 5
9
9
  - rc
10
- - 2
11
- version: 0.3.5.rc.2
10
+ - 3
11
+ version: 0.3.5.rc.3
12
12
  platform: ruby
13
13
  authors:
14
14
  - Nando Vieira
@@ -20,7 +20,7 @@ date: 2010-11-12 00:00:00 -02:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
- name: test-unit
23
+ name: notifier
24
24
  prerelease: false
25
25
  requirement: &id001 !ruby/object:Gem::Requirement
26
26
  none: false
@@ -30,10 +30,10 @@ dependencies:
30
30
  segments:
31
31
  - 0
32
32
  version: "0"
33
- type: :development
33
+ type: :runtime
34
34
  version_requirements: *id001
35
35
  - !ruby/object:Gem::Dependency
36
- name: mocha
36
+ name: test-unit
37
37
  prerelease: false
38
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
@@ -45,6 +45,19 @@ dependencies:
45
45
  version: "0"
46
46
  type: :development
47
47
  version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: mocha
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ segments:
57
+ - 0
58
+ version: "0"
59
+ type: :development
60
+ version_requirements: *id003
48
61
  description: |
49
62
  Display system notifications (dbus, growl and snarl) after
50
63
  running tests. It works on Mac OS X, Linux and Windows. Powerful when used
@@ -64,14 +77,6 @@ files:
64
77
  - Rakefile
65
78
  - lib/test_notifier.rb
66
79
  - lib/test_notifier/autotest.rb
67
- - lib/test_notifier/notifier.rb
68
- - lib/test_notifier/notifier/growl.rb
69
- - lib/test_notifier/notifier/kdialog.rb
70
- - lib/test_notifier/notifier/knotify.rb
71
- - lib/test_notifier/notifier/notify_send.rb
72
- - lib/test_notifier/notifier/osd_cat.rb
73
- - lib/test_notifier/notifier/placebo.rb
74
- - lib/test_notifier/notifier/snarl.rb
75
80
  - lib/test_notifier/rspec.rb
76
81
  - lib/test_notifier/runner.rb
77
82
  - lib/test_notifier/runner/autotest.rb
@@ -85,7 +90,6 @@ files:
85
90
  - resources/fail.png
86
91
  - resources/register-growl.scpt
87
92
  - resources/success.png
88
- - test/notifier_test.rb
89
93
  - test/stats_test.rb
90
94
  - test/test_helper.rb
91
95
  - test/test_notifier_test.rb
@@ -117,15 +121,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
121
  - 3
118
122
  - 1
119
123
  version: 1.3.1
120
- requirements:
121
- - You'll need Growl (Mac OS X), Libnotify, OSD or KDE (Linux) or Snarl (Windows)
124
+ requirements: []
125
+
122
126
  rubyforge_project:
123
127
  rubygems_version: 1.3.7
124
128
  signing_key:
125
129
  specification_version: 3
126
130
  summary: Display system notifications (dbus, growl and snarl) after running tests.
127
131
  test_files:
128
- - test/notifier_test.rb
129
132
  - test/stats_test.rb
130
133
  - test/test_helper.rb
131
134
  - test/test_notifier_test.rb
@@ -1,25 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- module Growl
4
- extend self
5
-
6
- SCRIPT = File.dirname(__FILE__) + "/../../../resources/register-growl.scpt"
7
- FILE = File.expand_path("~/.test_notifier-growl")
8
-
9
- def supported?
10
- RUBY_PLATFORM =~ /darwin/ && `ps -Al | grep GrowlHelper` && `which growlnotify` && $?.exitstatus == 0
11
- end
12
-
13
- def notify(options)
14
- Thread.new do
15
- `growlnotify -n test_notifier --image #{options[:image]} -p 2 -m '#{options[:message]}' -t '#{options[:title]}'`
16
- end
17
- end
18
-
19
- def register
20
- return if File.file?(FILE)
21
- system "osascript #{SCRIPT} > #{FILE}"
22
- end
23
- end
24
- end
25
- end
@@ -1,17 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- module Kdialog
4
- extend self
5
-
6
- def supported?
7
- RUBY_PLATFORM =~ /(linux|freebsd)/ && `which kdialog > /dev/null` && $? == 0
8
- end
9
-
10
- def notify(options)
11
- Thread.new do
12
- `kdialog --title #{options[:title]} --passivepopup \"#{options[:message]}\" 5`
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- module Knotify
4
- extend self
5
-
6
- def supported?
7
- RUBY_PLATFORM =~ /(linux|freebsd)/ && `ps -Al | grep dcop` && $?.exitstatus == 0
8
- end
9
-
10
- def notify(options)
11
- Thread.new do
12
- `dcop knotify default notify eventname \'#{options[:title]}\' \'#{options[:message]}\' '' '' 16 2`
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- module NotifySend
4
- extend self
5
-
6
- def supported?
7
- RUBY_PLATFORM =~ /(linux|freebsd)/ && `which notify-send > /dev/null` && $? == 0
8
- end
9
-
10
- def notify(options)
11
- Thread.new do
12
- `notify-send -i #{options[:image]} #{options[:title]} \"#{options[:message]}\"`
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,27 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- module OsdCat
4
- extend self
5
-
6
- FONT = "-bitstream-charter-bold-r-normal--33-240-100-100-p-206-iso8859-1"
7
- POSITION = "top"
8
- POSITION_OFFSET = "0"
9
- ALIGN = "center"
10
- COLORS = {
11
- :fail => "orange",
12
- :success => "green",
13
- :error => "red"
14
- }
15
-
16
- def supported?
17
- RUBY_PLATFORM =~ /(linux|freebsd)/ && `which osd_cat > /dev/null` && $? == 0
18
- end
19
-
20
- def notify(options)
21
- Thread.new do
22
- `echo #{options[:message].inspect} | osd_cat --font=#{FONT} --shadow=0 --pos=#{POSITION} -o #{POSITION_OFFSET} --delay=4 --outline=4 --align=#{ALIGN} -c #{COLORS[options[:status]]}`
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,14 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- module Placebo
4
- extend self
5
-
6
- def supported?
7
- true
8
- end
9
-
10
- def notify(options)
11
- end
12
- end
13
- end
14
- end
@@ -1,22 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- module Snarl
4
- extend self
5
-
6
- def supported?
7
- return false unless RUBY_PLATFORM =~ /(mswin|mingw)/
8
-
9
- begin
10
- require "snarl" unless defined?(::Snarl)
11
- true
12
- rescue LoadError
13
- false
14
- end
15
- end
16
-
17
- def notify(options)
18
- ::Snarl.show_message(options[:title], options[:message], options[:image])
19
- end
20
- end
21
- end
22
- end
@@ -1,39 +0,0 @@
1
- module TestNotifier
2
- module Notifier
3
- autoload :Growl, "test_notifier/notifier/growl"
4
- autoload :Snarl, "test_notifier/notifier/snarl"
5
- autoload :OsdCat, "test_notifier/notifier/osd_cat"
6
- autoload :Knotify, "test_notifier/notifier/knotify"
7
- autoload :Kdialog, "test_notifier/notifier/kdialog"
8
- autoload :NotifySend, "test_notifier/notifier/notify_send"
9
- autoload :Placebo, "test_notifier/notifier/placebo"
10
-
11
- extend self
12
-
13
- def notifiers
14
- constants.collect do |name|
15
- const_get(name) unless name.to_s == "Placebo"
16
- end.compact + [Placebo]
17
- end
18
-
19
- def supported_notifiers
20
- notifiers.select {|notifier| notifier.supported?}
21
- end
22
-
23
- def from_name(name)
24
- notifier = const_get(classify(name.to_s))
25
- rescue Exception
26
- nil
27
- end
28
-
29
- def supported_notifier_from_name(name)
30
- notifier = from_name(name)
31
- notifier && notifier.supported? ? notifier : nil
32
- end
33
-
34
- private
35
- def classify(string)
36
- string.gsub(/_(.)/sm) { "#{$1.upcase}" }.gsub(/^(.)/) { "#{$1.upcase}" }
37
- end
38
- end
39
- end
@@ -1,43 +0,0 @@
1
- require "test_helper"
2
-
3
- class TestNotifier::NotifierTest < Test::Unit::TestCase
4
- def setup
5
- unsupport_all_notifiers
6
- end
7
-
8
- test "retrieve list of supported notifiers" do
9
- TestNotifier::Notifier::Snarl.expects(:supported?).returns(true)
10
- TestNotifier::Notifier::Knotify.expects(:supported?).returns(true)
11
-
12
- assert_equal 2, TestNotifier::Notifier.supported_notifiers.size
13
- end
14
-
15
- test "retrieve list of all notifiers" do
16
- assert_equal 7, TestNotifier::Notifier.notifiers.size
17
- end
18
-
19
- test "consider Placebo as fallback notifier" do
20
- assert_equal TestNotifier::Notifier::Placebo, TestNotifier::Notifier.notifiers.last
21
- end
22
-
23
- test "return notifier by its name" do
24
- assert_equal TestNotifier::Notifier::OsdCat, TestNotifier::Notifier.from_name(:osd_cat)
25
- assert_equal TestNotifier::Notifier::NotifySend, TestNotifier::Notifier.from_name(:notify_send)
26
- assert_equal TestNotifier::Notifier::Growl, TestNotifier::Notifier.from_name(:growl)
27
- end
28
-
29
- test "return notifier by its name when supported" do
30
- TestNotifier::Notifier::Snarl.expects(:supported?).returns(true)
31
-
32
- assert_equal TestNotifier::Notifier::Snarl, TestNotifier::Notifier.supported_notifier_from_name(:snarl)
33
- end
34
-
35
- test "return nil when have supported notifiers" do
36
- assert_nil TestNotifier::Notifier.supported_notifier_from_name(:snarl)
37
- end
38
-
39
- test "return nil when an invalid notifier name is provided" do
40
- assert_nil TestNotifier::Notifier.from_name(:invalid)
41
- assert_nil TestNotifier::Notifier.supported_notifier_from_name(:invalid)
42
- end
43
- end