errornot_notifier 0.1.0 → 1.0.0

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.
Files changed (45) hide show
  1. data/CHANGELOG +5 -0
  2. data/INSTALL +8 -8
  3. data/README.rdoc +63 -53
  4. data/Rakefile +92 -8
  5. data/TESTING.rdoc +1 -1
  6. data/generators/{hoptoad/hoptoad_generator.rb → errornot/errornot_generator.rb} +6 -6
  7. data/generators/{hoptoad → errornot}/lib/insert_commands.rb +0 -0
  8. data/generators/{hoptoad → errornot}/lib/rake_commands.rb +0 -0
  9. data/generators/errornot/templates/capistrano_hook.rb +6 -0
  10. data/generators/errornot/templates/errornot_notifier_tasks.rake +5 -0
  11. data/generators/{hoptoad → errornot}/templates/initializer.rb +2 -2
  12. data/lib/{hoptoad_notifier → errornot_notifier}/backtrace.rb +1 -1
  13. data/lib/errornot_notifier/capistrano.rb +20 -0
  14. data/lib/{hoptoad_notifier → errornot_notifier}/configuration.rb +14 -16
  15. data/lib/{hoptoad_notifier → errornot_notifier}/notice.rb +2 -2
  16. data/lib/{hoptoad_notifier → errornot_notifier}/rack.rb +8 -8
  17. data/lib/{hoptoad_notifier → errornot_notifier}/rails/action_controller_catcher.rb +9 -9
  18. data/lib/{hoptoad_notifier → errornot_notifier}/rails/controller_methods.rb +15 -15
  19. data/lib/{hoptoad_notifier → errornot_notifier}/rails/error_lookup.rb +9 -9
  20. data/lib/{hoptoad_notifier → errornot_notifier}/rails.rb +11 -11
  21. data/lib/{hoptoad_notifier → errornot_notifier}/sender.rb +8 -8
  22. data/lib/{hoptoad_notifier → errornot_notifier}/tasks.rb +19 -19
  23. data/lib/errornot_notifier/version.rb +3 -0
  24. data/lib/{hoptoad_notifier.rb → errornot_notifier.rb} +20 -20
  25. data/lib/{hoptoad_tasks.rb → errornot_tasks.rb} +9 -7
  26. data/lib/templates/rescue.erb +5 -5
  27. data/rails/init.rb +1 -1
  28. data/script/integration_test.rb +6 -6
  29. data/test/backtrace_test.rb +16 -16
  30. data/test/catcher_test.rb +22 -22
  31. data/test/configuration_test.rb +21 -23
  32. data/test/erronot_tasks_test.rb +147 -0
  33. data/test/helper.rb +16 -15
  34. data/test/logger_test.rb +12 -10
  35. data/test/notice_test.rb +9 -9
  36. data/test/notifier_test.rb +30 -30
  37. data/test/rack_test.rb +7 -7
  38. data/test/rails_initializer_test.rb +8 -8
  39. data/test/sender_test.rb +13 -12
  40. metadata +73 -53
  41. data/generators/hoptoad/templates/capistrano_hook.rb +0 -6
  42. data/generators/hoptoad/templates/hoptoad_notifier_tasks.rake +0 -5
  43. data/lib/hoptoad_notifier/capistrano.rb +0 -20
  44. data/lib/hoptoad_notifier/version.rb +0 -3
  45. data/test/hoptoad_tasks_test.rb +0 -138
data/rails/init.rb CHANGED
@@ -1 +1 @@
1
- require 'hoptoad_notifier/rails'
1
+ require 'errornot_notifier/rails'
@@ -8,31 +8,31 @@ RAILS_ROOT = FileUtils.pwd
8
8
  RAILS_DEFAULT_LOGGER = Logger.new(STDOUT)
9
9
 
10
10
  $: << File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
11
- require 'hoptoad_notifier'
11
+ require 'errornot_notifier'
12
12
  require 'rails/init'
13
13
 
14
14
  fail "Please supply an API Key as the first argument" if ARGV.empty?
15
15
 
16
16
  host = ARGV[1]
17
- host ||= "hoptoadapp.com"
17
+ raise ArgumentError.new('You need define your Errornot URL like params') unless host
18
18
 
19
19
  secure = (ARGV[2] == "secure")
20
20
 
21
21
  exception = begin
22
- raise "Testing hoptoad notifier with secure = #{secure}. If you can see this, it works."
22
+ raise "Testing errornot notifier with secure = #{secure}. If you can see this, it works."
23
23
  rescue => foo
24
24
  foo
25
25
  end
26
26
 
27
- HoptoadNotifier.configure do |config|
27
+ ErrornotNotifier.configure do |config|
28
28
  config.secure = secure
29
29
  config.host = host
30
30
  config.api_key = ARGV.first
31
31
  end
32
32
  puts "Configuration:"
33
- HoptoadNotifier.configuration.to_hash.each do |key, value|
33
+ ErrornotNotifier.configuration.to_hash.each do |key, value|
34
34
  puts sprintf("%25s: %s", key.to_s, value.inspect.slice(0, 55))
35
35
  end
36
36
  puts "Sending #{secure ? "" : "in"}secure notification to project with key #{ARGV.first}"
37
- HoptoadNotifier.notify(exception)
37
+ ErrornotNotifier.notify(exception)
38
38
 
@@ -8,7 +8,7 @@ class BacktraceTest < Test::Unit::TestCase
8
8
  "app/controllers/users_controller.rb:8:in `index'"
9
9
  ]
10
10
 
11
- backtrace = HoptoadNotifier::Backtrace.parse(array)
11
+ backtrace = ErrornotNotifier::Backtrace.parse(array)
12
12
 
13
13
  line = backtrace.lines.first
14
14
  assert_equal '13', line.number
@@ -26,13 +26,13 @@ class BacktraceTest < Test::Unit::TestCase
26
26
  two = one.dup
27
27
  assert_equal one, two
28
28
 
29
- assert_equal HoptoadNotifier::Backtrace.parse(one), HoptoadNotifier::Backtrace.parse(two)
29
+ assert_equal ErrornotNotifier::Backtrace.parse(one), ErrornotNotifier::Backtrace.parse(two)
30
30
  end
31
31
 
32
32
  should "parse massive one-line exceptions into multiple lines" do
33
- original_backtrace = HoptoadNotifier::Backtrace.
33
+ original_backtrace = ErrornotNotifier::Backtrace.
34
34
  parse(["one:1:in `one'\n two:2:in `two'\n three:3:in `three`"])
35
- expected_backtrace = HoptoadNotifier::Backtrace.
35
+ expected_backtrace = ErrornotNotifier::Backtrace.
36
36
  parse(["one:1:in `one'", "two:2:in `two'", "three:3:in `three`"])
37
37
 
38
38
  assert_equal expected_backtrace, original_backtrace
@@ -41,7 +41,7 @@ class BacktraceTest < Test::Unit::TestCase
41
41
  context "with a project root" do
42
42
  setup do
43
43
  @project_root = '/some/path'
44
- HoptoadNotifier.configure {|config| config.project_root = @project_root }
44
+ ErrornotNotifier.configure {|config| config.project_root = @project_root }
45
45
  end
46
46
 
47
47
  teardown do
@@ -49,12 +49,12 @@ class BacktraceTest < Test::Unit::TestCase
49
49
  end
50
50
 
51
51
  should "filter out the project root" do
52
- backtrace_with_root = HoptoadNotifier::Backtrace.parse(
52
+ backtrace_with_root = ErrornotNotifier::Backtrace.parse(
53
53
  ["#{@project_root}/app/models/user.rb:7:in `latest'",
54
54
  "#{@project_root}/app/controllers/users_controller.rb:13:in `index'",
55
55
  "/lib/something.rb:41:in `open'"],
56
56
  :filters => default_filters)
57
- backtrace_without_root = HoptoadNotifier::Backtrace.parse(
57
+ backtrace_without_root = ErrornotNotifier::Backtrace.parse(
58
58
  ["[PROJECT_ROOT]/app/models/user.rb:7:in `latest'",
59
59
  "[PROJECT_ROOT]/app/controllers/users_controller.rb:13:in `index'",
60
60
  "/lib/something.rb:41:in `open'"])
@@ -65,7 +65,7 @@ class BacktraceTest < Test::Unit::TestCase
65
65
 
66
66
  context "with a blank project root" do
67
67
  setup do
68
- HoptoadNotifier.configure {|config| config.project_root = '' }
68
+ ErrornotNotifier.configure {|config| config.project_root = '' }
69
69
  end
70
70
 
71
71
  teardown do
@@ -78,21 +78,21 @@ class BacktraceTest < Test::Unit::TestCase
78
78
  "/lib/something.rb:41:in `open'"]
79
79
 
80
80
  backtrace_with_root =
81
- HoptoadNotifier::Backtrace.parse(backtrace, :filters => default_filters)
81
+ ErrornotNotifier::Backtrace.parse(backtrace, :filters => default_filters)
82
82
 
83
83
  backtrace_without_root =
84
- HoptoadNotifier::Backtrace.parse(backtrace)
84
+ ErrornotNotifier::Backtrace.parse(backtrace)
85
85
 
86
86
  assert_equal backtrace_without_root, backtrace_with_root
87
87
  end
88
88
  end
89
89
 
90
90
  should "remove notifier trace" do
91
- inside_notifier = ['lib/hoptoad_notifier.rb:13:in `voodoo`']
91
+ inside_notifier = ['lib/errornot_notifier.rb:13:in `voodoo`']
92
92
  outside_notifier = ['users_controller:8:in `index`']
93
93
 
94
- without_inside = HoptoadNotifier::Backtrace.parse(outside_notifier)
95
- with_inside = HoptoadNotifier::Backtrace.parse(inside_notifier + outside_notifier,
94
+ without_inside = ErrornotNotifier::Backtrace.parse(outside_notifier)
95
+ with_inside = ErrornotNotifier::Backtrace.parse(inside_notifier + outside_notifier,
96
96
  :filters => default_filters)
97
97
 
98
98
  assert_equal without_inside, with_inside
@@ -100,9 +100,9 @@ class BacktraceTest < Test::Unit::TestCase
100
100
 
101
101
  should "run filters on the backtrace" do
102
102
  filters = [lambda { |line| line.sub('foo', 'bar') }]
103
- input = HoptoadNotifier::Backtrace.parse(["foo:13:in `one'", "baz:14:in `two'"],
103
+ input = ErrornotNotifier::Backtrace.parse(["foo:13:in `one'", "baz:14:in `two'"],
104
104
  :filters => filters)
105
- expected = HoptoadNotifier::Backtrace.parse(["bar:13:in `one'", "baz:14:in `two'"])
105
+ expected = ErrornotNotifier::Backtrace.parse(["bar:13:in `one'", "baz:14:in `two'"])
106
106
  assert_equal expected, input
107
107
  end
108
108
 
@@ -112,7 +112,7 @@ class BacktraceTest < Test::Unit::TestCase
112
112
  end
113
113
 
114
114
  def default_filters
115
- HoptoadNotifier::Configuration::DEFAULT_BACKTRACE_FILTERS
115
+ ErrornotNotifier::Configuration::DEFAULT_BACKTRACE_FILTERS
116
116
  end
117
117
 
118
118
  end
data/test/catcher_test.rb CHANGED
@@ -7,19 +7,19 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
7
7
  def setup
8
8
  super
9
9
  reset_config
10
- HoptoadNotifier.sender = CollectingSender.new
10
+ ErrornotNotifier.sender = CollectingSender.new
11
11
  define_constant('RAILS_ROOT', '/path/to/rails/root')
12
12
  end
13
13
 
14
14
  def ignore(exception_class)
15
- HoptoadNotifier.configuration.ignore << exception_class
15
+ ErrornotNotifier.configuration.ignore << exception_class
16
16
  end
17
17
 
18
18
  def build_controller_class(&definition)
19
19
  returning Class.new(ActionController::Base) do |klass|
20
- klass.__send__(:include, HoptoadNotifier::Rails::ActionControllerCatcher)
20
+ klass.__send__(:include, ErrornotNotifier::Rails::ActionControllerCatcher)
21
21
  klass.class_eval(&definition) if definition
22
- define_constant('HoptoadTestController', klass)
22
+ define_constant('ErrornotTestController', klass)
23
23
  end
24
24
  end
25
25
 
@@ -44,7 +44,7 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
44
44
  end
45
45
 
46
46
  def sender
47
- HoptoadNotifier.sender
47
+ ErrornotNotifier.sender
48
48
  end
49
49
 
50
50
  def last_sent_notice_xml
@@ -82,7 +82,7 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
82
82
  klass.consider_all_requests_local = opts[:all_local]
83
83
  klass.local = opts[:local]
84
84
  controller = klass.new
85
- controller.stubs(:rescue_action_in_public_without_hoptoad)
85
+ controller.stubs(:rescue_action_in_public_without_errornot)
86
86
  opts[:request].query_parameters = opts[:request].query_parameters.merge(opts[:params] || {})
87
87
  opts[:request].session = ActionController::TestSession.new(opts[:session] || {})
88
88
  controller.process(opts[:request], opts[:response])
@@ -91,7 +91,7 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
91
91
 
92
92
  def process_action_with_manual_notification(args = {})
93
93
  process_action(args) do
94
- notify_hoptoad(:error_message => 'fail')
94
+ notify_errornot(:error_message => 'fail')
95
95
  # Rails will raise a template error if we don't render something
96
96
  render :nothing => true
97
97
  end
@@ -152,28 +152,28 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
152
152
  should "continue with default behavior after delivering an exception" do
153
153
  controller = process_action_with_automatic_notification(:public => true)
154
154
  # TODO: can we test this without stubbing?
155
- assert_received(controller, :rescue_action_in_public_without_hoptoad)
155
+ assert_received(controller, :rescue_action_in_public_without_errornot)
156
156
  end
157
157
 
158
- should "not create actions from Hoptoad methods" do
158
+ should "not create actions from Errornot methods" do
159
159
  controller = build_controller_class.new
160
- assert_equal [], HoptoadNotifier::Rails::ActionControllerCatcher.instance_methods
160
+ assert_equal [], ErrornotNotifier::Rails::ActionControllerCatcher.instance_methods
161
161
  end
162
162
 
163
163
  should "ignore exceptions when user agent is being ignored by regular expression" do
164
- HoptoadNotifier.configuration.ignore_user_agent_only = [/Ignored/]
164
+ ErrornotNotifier.configuration.ignore_user_agent_only = [/Ignored/]
165
165
  process_action_with_automatic_notification(:user_agent => 'ShouldBeIgnored')
166
166
  assert_caught_and_not_sent
167
167
  end
168
168
 
169
169
  should "ignore exceptions when user agent is being ignored by string" do
170
- HoptoadNotifier.configuration.ignore_user_agent_only = ['IgnoredUserAgent']
170
+ ErrornotNotifier.configuration.ignore_user_agent_only = ['IgnoredUserAgent']
171
171
  process_action_with_automatic_notification(:user_agent => 'IgnoredUserAgent')
172
172
  assert_caught_and_not_sent
173
173
  end
174
174
 
175
175
  should "not ignore exceptions when user agent is not being ignored" do
176
- HoptoadNotifier.configuration.ignore_user_agent_only = ['IgnoredUserAgent']
176
+ ErrornotNotifier.configuration.ignore_user_agent_only = ['IgnoredUserAgent']
177
177
  process_action_with_automatic_notification(:user_agent => 'NonIgnoredAgent')
178
178
  assert_caught_and_sent
179
179
  end
@@ -191,25 +191,25 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
191
191
  end
192
192
 
193
193
  should "send request data for manual notification" do
194
- params = { 'controller' => "hoptoad_test", 'action' => "index" }
194
+ params = { 'controller' => "errornot_test", 'action' => "index" }
195
195
  controller = process_action_with_manual_notification(:params => params)
196
196
  assert_sent_request_info_for controller.request
197
197
  end
198
198
 
199
199
  should "send request data for manual notification with non-standard port" do
200
- params = { 'controller' => "hoptoad_test", 'action' => "index" }
200
+ params = { 'controller' => "errornot_test", 'action' => "index" }
201
201
  controller = process_action_with_manual_notification(:params => params, :port => 81)
202
202
  assert_sent_request_info_for controller.request
203
203
  end
204
204
 
205
205
  should "send request data for automatic notification" do
206
- params = { 'controller' => "hoptoad_test", 'action' => "index" }
206
+ params = { 'controller' => "errornot_test", 'action' => "index" }
207
207
  controller = process_action_with_automatic_notification(:params => params)
208
208
  assert_sent_request_info_for controller.request
209
209
  end
210
210
 
211
211
  should "send request data for automatic notification with non-standard port" do
212
- params = { 'controller' => "hoptoad_test", 'action' => "index" }
212
+ params = { 'controller' => "errornot_test", 'action' => "index" }
213
213
  controller = process_action_with_automatic_notification(:params => params, :port => 81)
214
214
  assert_sent_request_info_for controller.request
215
215
  end
@@ -233,8 +233,8 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
233
233
 
234
234
  context "for a local error with development lookup enabled" do
235
235
  setup do
236
- HoptoadNotifier.configuration.development_lookup = true
237
- HoptoadNotifier.stubs(:build_lookup_hash_for).returns({ :awesome => 2 })
236
+ ErrornotNotifier.configuration.development_lookup = true
237
+ ErrornotNotifier.stubs(:build_lookup_hash_for).returns({ :awesome => 2 })
238
238
 
239
239
  @controller = process_action_with_automatic_notification(:local => true)
240
240
  @response = @controller.response
@@ -246,15 +246,15 @@ class ActionControllerCatcherTest < Test::Unit::TestCase
246
246
  end
247
247
 
248
248
  should "contain host, API key and notice JSON" do
249
- assert_match HoptoadNotifier.configuration.host.to_json, @response.body
250
- assert_match HoptoadNotifier.configuration.api_key.to_json, @response.body
249
+ assert_match ErrornotNotifier.configuration.host.to_json, @response.body
250
+ assert_match ErrornotNotifier.configuration.api_key.to_json, @response.body
251
251
  assert_match ({ :awesome => 2 }).to_json, @response.body
252
252
  end
253
253
  end
254
254
 
255
255
  context "for a local error with development lookup disabled" do
256
256
  setup do
257
- HoptoadNotifier.configuration.development_lookup = false
257
+ ErrornotNotifier.configuration.development_lookup = false
258
258
 
259
259
  @controller = process_action_with_automatic_notification(:local => true)
260
260
  @response = @controller.response
@@ -12,41 +12,39 @@ class ConfigurationTest < Test::Unit::TestCase
12
12
  assert_config_default :project_root, nil
13
13
  assert_config_default :environment_name, nil
14
14
  assert_config_default :logger, nil
15
- assert_config_default :notifier_version, HoptoadNotifier::VERSION
16
- assert_config_default :notifier_name, 'Hoptoad Notifier'
17
- assert_config_default :notifier_url, 'http://hoptoadapp.com'
15
+ assert_config_default :notifier_version, ErrornotNotifier::VERSION
16
+ assert_config_default :notifier_name, 'Errornot Notifier'
18
17
  assert_config_default :secure, false
19
- assert_config_default :host, 'hoptoadapp.com'
20
18
  assert_config_default :http_open_timeout, 2
21
19
  assert_config_default :http_read_timeout, 5
22
20
  assert_config_default :ignore_by_filters, []
23
21
  assert_config_default :ignore_user_agent, []
24
22
  assert_config_default :params_filters,
25
- HoptoadNotifier::Configuration::DEFAULT_PARAMS_FILTERS
23
+ ErrornotNotifier::Configuration::DEFAULT_PARAMS_FILTERS
26
24
  assert_config_default :backtrace_filters,
27
- HoptoadNotifier::Configuration::DEFAULT_BACKTRACE_FILTERS
25
+ ErrornotNotifier::Configuration::DEFAULT_BACKTRACE_FILTERS
28
26
  assert_config_default :ignore,
29
- HoptoadNotifier::Configuration::IGNORE_DEFAULT
27
+ ErrornotNotifier::Configuration::IGNORE_DEFAULT
30
28
  assert_config_default :development_lookup, true
31
29
  assert_config_default :framework, 'Standalone'
32
30
  end
33
31
 
34
32
  should "provide default values for secure connections" do
35
- config = HoptoadNotifier::Configuration.new
33
+ config = ErrornotNotifier::Configuration.new
36
34
  config.secure = true
37
35
  assert_equal 443, config.port
38
36
  assert_equal 'https', config.protocol
39
37
  end
40
38
 
41
39
  should "provide default values for insecure connections" do
42
- config = HoptoadNotifier::Configuration.new
40
+ config = ErrornotNotifier::Configuration.new
43
41
  config.secure = false
44
42
  assert_equal 80, config.port
45
43
  assert_equal 'http', config.protocol
46
44
  end
47
45
 
48
46
  should "not cache inferred ports" do
49
- config = HoptoadNotifier::Configuration.new
47
+ config = ErrornotNotifier::Configuration.new
50
48
  config.secure = false
51
49
  config.port
52
50
  config.secure = true
@@ -77,7 +75,7 @@ class ConfigurationTest < Test::Unit::TestCase
77
75
  end
78
76
 
79
77
  should "act like a hash" do
80
- config = HoptoadNotifier::Configuration.new
78
+ config = ErrornotNotifier::Configuration.new
81
79
  hash = config.to_hash
82
80
  [:api_key, :backtrace_filters, :development_environments,
83
81
  :environment_name, :host, :http_open_timeout,
@@ -90,7 +88,7 @@ class ConfigurationTest < Test::Unit::TestCase
90
88
  end
91
89
 
92
90
  should "be mergable" do
93
- config = HoptoadNotifier::Configuration.new
91
+ config = ErrornotNotifier::Configuration.new
94
92
  hash = config.to_hash
95
93
  assert_equal hash.merge(:key => 'value'), config.merge(:key => 'value')
96
94
  end
@@ -100,7 +98,7 @@ class ConfigurationTest < Test::Unit::TestCase
100
98
  end
101
99
 
102
100
  should "warn when attempting to read environment filters" do
103
- config = HoptoadNotifier::Configuration.new
101
+ config = ErrornotNotifier::Configuration.new
104
102
  config.
105
103
  expects(:warn).
106
104
  with(regexp_matches(/deprecated/i))
@@ -128,7 +126,7 @@ class ConfigurationTest < Test::Unit::TestCase
128
126
  end
129
127
 
130
128
  should "allow ignored exceptions to be appended" do
131
- config = HoptoadNotifier::Configuration.new
129
+ config = ErrornotNotifier::Configuration.new
132
130
  original_filters = config.ignore.dup
133
131
  new_filter = 'hello'
134
132
  config.ignore << new_filter
@@ -144,48 +142,48 @@ class ConfigurationTest < Test::Unit::TestCase
144
142
  end
145
143
 
146
144
  should "use development and test as development environments by default" do
147
- config = HoptoadNotifier::Configuration.new
145
+ config = ErrornotNotifier::Configuration.new
148
146
  assert_same_elements %w(development test cucumber), config.development_environments
149
147
  end
150
148
 
151
149
  should "be public in a public environment" do
152
- config = HoptoadNotifier::Configuration.new
150
+ config = ErrornotNotifier::Configuration.new
153
151
  config.development_environments = %w(development)
154
152
  config.environment_name = 'production'
155
153
  assert config.public?
156
154
  end
157
155
 
158
156
  should "not be public in a development environment" do
159
- config = HoptoadNotifier::Configuration.new
157
+ config = ErrornotNotifier::Configuration.new
160
158
  config.development_environments = %w(staging)
161
159
  config.environment_name = 'staging'
162
160
  assert !config.public?
163
161
  end
164
162
 
165
163
  should "be public without an environment name" do
166
- config = HoptoadNotifier::Configuration.new
164
+ config = ErrornotNotifier::Configuration.new
167
165
  assert config.public?
168
166
  end
169
167
 
170
168
  should "use the assigned logger if set" do
171
- config = HoptoadNotifier::Configuration.new
169
+ config = ErrornotNotifier::Configuration.new
172
170
  config.logger = "CUSTOM LOGGER"
173
171
  assert_equal "CUSTOM LOGGER", config.logger
174
172
  end
175
173
 
176
174
  def assert_config_default(option, default_value, config = nil)
177
- config ||= HoptoadNotifier::Configuration.new
175
+ config ||= ErrornotNotifier::Configuration.new
178
176
  assert_equal default_value, config.send(option)
179
177
  end
180
178
 
181
179
  def assert_config_overridable(option, value = 'a value')
182
- config = HoptoadNotifier::Configuration.new
180
+ config = ErrornotNotifier::Configuration.new
183
181
  config.send(:"#{option}=", value)
184
182
  assert_equal value, config.send(option)
185
183
  end
186
184
 
187
185
  def assert_appends_value(option, &block)
188
- config = HoptoadNotifier::Configuration.new
186
+ config = ErrornotNotifier::Configuration.new
189
187
  original_values = config.send(option).dup
190
188
  block ||= lambda do |config|
191
189
  new_value = 'hello'
@@ -197,7 +195,7 @@ class ConfigurationTest < Test::Unit::TestCase
197
195
  end
198
196
 
199
197
  def assert_replaces(option, setter)
200
- config = HoptoadNotifier::Configuration.new
198
+ config = ErrornotNotifier::Configuration.new
201
199
  new_value = 'hello'
202
200
  config.send(setter, [new_value])
203
201
  assert_equal [new_value], config.send(option)
@@ -0,0 +1,147 @@
1
+ require File.dirname(__FILE__) + '/helper'
2
+ require 'rubygems'
3
+
4
+ require File.dirname(__FILE__) + '/../lib/errornot_tasks'
5
+ require 'fakeweb'
6
+
7
+ FakeWeb.allow_net_connect = false
8
+
9
+ class ErrornotTasksTest < Test::Unit::TestCase
10
+ def test_assert
11
+ assert true
12
+ end
13
+ # TODO: reactivate spec when it's implement
14
+ #def successful_response(body = "")
15
+ #response = Net::HTTPSuccess.new('1.2', '200', 'OK')
16
+ #response.stubs(:body).returns(body)
17
+ #return response
18
+ #end
19
+
20
+ #def unsuccessful_response(body = "")
21
+ #response = Net::HTTPClientError.new('1.2', '200', 'OK')
22
+ #response.stubs(:body).returns(body)
23
+ #return response
24
+ #end
25
+
26
+ #context "being quiet" do
27
+ #setup { ErrornotTasks.stubs(:puts) }
28
+
29
+ #context "in a configured project" do
30
+ #setup {
31
+ #ErrornotNotifier.configure { |config|
32
+ #config.host = 'localhost'
33
+ #config.api_key = "1234123412341234"
34
+ #}
35
+ #}
36
+
37
+ #context "on deploy({})" do
38
+ #setup { @output = ErrornotTasks.deploy({}) }
39
+
40
+ #before_should "complain about missing rails env" do
41
+ #ErrornotTasks.expects(:puts).with(regexp_matches(/rails environment/i))
42
+ #end
43
+
44
+ #should "return false" do
45
+ #assert !@output
46
+ #end
47
+ #end
48
+
49
+ #context "given valid options" do
50
+ #setup { @options = {:rails_env => "staging"} }
51
+
52
+ #context "on deploy(options)" do
53
+ #setup { @output = ErrornotTasks.deploy(@options) }
54
+
55
+ #before_should "post to http://errornotapp.com/deploys.txt" do
56
+ #URI.stubs(:parse).with('http://errornotapp.com/deploys.txt').returns(:uri)
57
+ #Net::HTTP.expects(:post_form).with(:uri, kind_of(Hash)).returns(successful_response)
58
+ #end
59
+
60
+ #before_should "use the project api key" do
61
+ #Net::HTTP.expects(:post_form).
62
+ #with(kind_of(URI), has_entries('api_key' => "1234123412341234")).
63
+ #returns(successful_response)
64
+ #end
65
+
66
+ #before_should "use send the rails_env param" do
67
+ #Net::HTTP.expects(:post_form).
68
+ #with(kind_of(URI), has_entries("deploy[rails_env]" => "staging")).
69
+ #returns(successful_response)
70
+ #end
71
+
72
+ #[:local_username, :scm_repository, :scm_revision].each do |key|
73
+ #before_should "use send the #{key} param if it's passed in." do
74
+ #@options[key] = "value"
75
+ #Net::HTTP.expects(:post_form).
76
+ #with(kind_of(URI), has_entries("deploy[#{key}]" => "value")).
77
+ #returns(successful_response)
78
+ #end
79
+ #end
80
+
81
+ #before_should "use the :api_key param if it's passed in." do
82
+ #@options[:api_key] = "value"
83
+ #Net::HTTP.expects(:post_form).
84
+ #with(kind_of(URI), has_entries("api_key" => "value")).
85
+ #returns(successful_response)
86
+ #end
87
+
88
+ #before_should "puts the response body on success" do
89
+ #ErrornotTasks.expects(:puts).with("body")
90
+ #Net::HTTP.expects(:post_form).with(any_parameters).returns(successful_response('body'))
91
+ #end
92
+
93
+ #before_should "puts the response body on failure" do
94
+ #ErrornotTasks.expects(:puts).with("body")
95
+ #Net::HTTP.expects(:post_form).with(any_parameters).returns(unsuccessful_response('body'))
96
+ #end
97
+
98
+ #should "return false on failure", :before => lambda {
99
+ #Net::HTTP.expects(:post_form).with(any_parameters).returns(unsuccessful_response('body'))
100
+ #} do
101
+ #assert !@output
102
+ #end
103
+
104
+ #should "return true on success", :before => lambda {
105
+ #Net::HTTP.expects(:post_form).with(any_parameters).returns(successful_response('body'))
106
+ #} do
107
+ #assert @output
108
+ #end
109
+ #end
110
+ #end
111
+ #end
112
+
113
+ #context "in a configured project with custom host" do
114
+ #setup do
115
+ #ErrornotNotifier.configure do |config|
116
+ #config.api_key = "1234123412341234"
117
+ #config.host = "custom.host"
118
+ #end
119
+ #end
120
+
121
+ #context "on deploy(:rails_env => 'staging')" do
122
+ #setup { @output = ErrornotTasks.deploy(:rails_env => "staging") }
123
+
124
+ #before_should "post to the custom host" do
125
+ #URI.stubs(:parse).with('http://custom.host/deploys.txt').returns(:uri)
126
+ #Net::HTTP.expects(:post_form).with(:uri, kind_of(Hash)).returns(successful_response)
127
+ #end
128
+ #end
129
+ #end
130
+
131
+ #context "when not configured" do
132
+ #setup { ErrornotNotifier.configure { |config| config.api_key = "" } }
133
+
134
+ #context "on deploy(:rails_env => 'staging')" do
135
+ #setup { @output = ErrornotTasks.deploy(:rails_env => "staging") }
136
+
137
+ #before_should "complain about missing api key" do
138
+ #ErrornotTasks.expects(:puts).with(regexp_matches(/api key/i))
139
+ #end
140
+
141
+ #should "return false" do
142
+ #assert !@output
143
+ #end
144
+ #end
145
+ #end
146
+ #end
147
+ end