|
| 1 | +require File.expand_path('../helper', __FILE__) |
| 2 | + |
| 3 | +class RailsBrakemanTest < Service::TestCase |
| 4 | + def setup |
| 5 | + @stubs = Faraday::Adapter::Test::Stubs.new |
| 6 | + @svc = service(data, payload) |
| 7 | + end |
| 8 | + |
| 9 | + def test_reads_token_from_data |
| 10 | + assert_equal "xAAQZtJhYHGagsed1kYR", @svc.token |
| 11 | + end |
| 12 | + |
| 13 | + def test_reads_default_rails_brakeman_url_from_data |
| 14 | + assert_equal "https://rails-brakeman.com", @svc.rails_brakeman_url |
| 15 | + end |
| 16 | + |
| 17 | + def test_reads_custom_rails_brakeman_url_from_data |
| 18 | + data = { "token" => "xAAQZtJhYHGagsed1kYR", "rails_brakeman_url" => "http://rails-brakeman.heroku.com" } |
| 19 | + svc = service(data, payload) |
| 20 | + assert_equal "http://rails-brakeman.heroku.com", svc.rails_brakeman_url |
| 21 | + end |
| 22 | + |
| 23 | + def test_strips_whitespace_from_form_values |
| 24 | + data = { "token" => " xAAQZtJhYHGagsed1kYR ", "rails_brakeman_url" => " http://rails-brakeman.heroku.com " } |
| 25 | + svc = service(data, payload) |
| 26 | + assert_equal "xAAQZtJhYHGagsed1kYR", svc.token |
| 27 | + assert_equal "http://rails-brakeman.heroku.com", svc.rails_brakeman_url |
| 28 | + end |
| 29 | + |
| 30 | + def test_posts_payload |
| 31 | + @stubs.post "/" do |env| |
| 32 | + assert_equal payload, JSON.parse(Rack::Utils.parse_query(env[:body])['payload']) |
| 33 | + end |
| 34 | + @svc.receive_push |
| 35 | + end |
| 36 | + |
| 37 | + def service(*args) |
| 38 | + super Service::RailsBrakeman, *args |
| 39 | + end |
| 40 | + |
| 41 | + def data |
| 42 | + { "token" => "xAAQZtJhYHGagsed1kYR", 'rails_brakeman_url' => '' } |
| 43 | + end |
| 44 | + |
| 45 | + def payload |
| 46 | + { |
| 47 | + "before" => "a6ab010bc21151e238c73d5229c36892d51c2d4f", |
| 48 | + "repository" => { |
| 49 | + "url" => "https =>//github.com/flyerhzm/rails-brakeman.com", |
| 50 | + "name" => "rails-brakeman.com", |
| 51 | + "description" => "rails-brakeman.com", |
| 52 | + "watchers" => 1, |
| 53 | + "forks" => 1, |
| 54 | + "private" => 0, |
| 55 | + "owner" => { |
| 56 | + "email" => "flyerhzm@gmail.com", |
| 57 | + "name" => "Richard Huang" |
| 58 | + } |
| 59 | + }, |
| 60 | + "commits" => [ |
| 61 | + { |
| 62 | + "id" => "af9718a9bee64b9bbbefc4c9cf54c4cc102333a8", |
| 63 | + "url" => "https =>//github.com/flyerhzm/rails-brakeman.com/commit/af9718a9bee64b9bbbefc4c9cf54c4cc102333a8", |
| 64 | + "author" => { |
| 65 | + "email" => "flyerhzm@gmail.com", |
| 66 | + "name" => "Richard Huang" |
| 67 | + }, |
| 68 | + "message" => "fix typo in .travis.yml", |
| 69 | + "timestamp" => "2011-12-25T18 =>57 =>17+08 =>00", |
| 70 | + "modified" => [".travis.yml"] |
| 71 | + }, |
| 72 | + { |
| 73 | + "id" => "473d12b3ca40a38f12620e31725922a9d88b5386", |
| 74 | + "url" => "https =>//github.com/flyerhzm/rails-brakeman.com/commit/473d12b3ca40a38f12620e31725922a9d88b5386", |
| 75 | + "author" => { |
| 76 | + "email" => "flyerhzm@gmail.com", |
| 77 | + "name" => "Richard Huang" |
| 78 | + }, |
| 79 | + "message" => "copy config yaml files for travis", |
| 80 | + "timestamp" => "2011-12-25T20 =>36 =>34+08 =>00" |
| 81 | + } |
| 82 | + ], |
| 83 | + "after" => "473d12b3ca40a38f12620e31725922a9d88b5386", |
| 84 | + "ref" => "refs/heads/master" |
| 85 | + } |
| 86 | + end |
| 87 | +end |
0 commit comments