Skip to content
This repository
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 80 lines (68 sloc) 2.111 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
require File.expand_path '../helper', __FILE__

class LoggerTest < Test::Unit::TestCase
  def stub_http(response, body = nil)
    response.stubs(:body => body) if body
    @http = stub(:post => response,
                 :read_timeout= => nil,
                 :open_timeout= => nil,
                 :use_ssl= => nil)
    Net::HTTP.stubs(:new).returns(@http)
  end

  def send_notice
    Airbrake.sender.send_to_airbrake({'foo' => "bar"})
  end

  def stub_verbose_log
    Airbrake.stubs(:write_verbose_log)
  end

  def configure
    Airbrake.configure { |config| }
  end

  should "report that notifier is ready when configured" do
    stub_verbose_log
    configure
    assert_logged /Notifier (.*) ready/
  end

  should "not report that notifier is ready when internally configured" do
    stub_verbose_log
    Airbrake.configure(true) { |config| }
    assert_not_logged /.*/
  end

  should "print environment info a successful notification without a body" do
    reset_config
    stub_verbose_log
    stub_http(Net::HTTPSuccess)
    send_notice
    assert_logged /Environment Info:/
    assert_not_logged /Response from Airbrake:/
  end

  should "print environment info on a failed notification without a body" do
    reset_config
    stub_verbose_log
    stub_http(Net::HTTPError)
    send_notice
    assert_logged /Environment Info:/
    assert_not_logged /Response from Airbrake:/
  end

  should "print environment info and response on a success with a body" do
    reset_config
    stub_verbose_log
    stub_http(Net::HTTPSuccess, 'test')
    send_notice
    assert_logged /Environment Info:/
    assert_logged /Response from Airbrake:/
  end

  should "print environment info and response on a failure with a body" do
    reset_config
    stub_verbose_log
    stub_http(Net::HTTPError, 'test')
    send_notice
    assert_logged /Environment Info:/
    assert_logged /Response from Airbrake:/
  end

  should "print information about the notice when Airbrake server fails" do
    stub_verbose_log
    stub_http(Net::HTTPError, "test")
    send_notice
    assert_logged /Notice details:/
  end
end
Something went wrong with that request. Please try again.