Skip to content

Commit a9d7042

Browse files
committed
add rails_brakeman service
1 parent f7cf46c commit a9d7042

File tree

2 files changed

+107
-0
lines changed

2 files changed

+107
-0
lines changed

services/rails_brakeman.rb

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Service::RailsBrakeman < Service
2+
string :rails_brakeman_url, :token
3+
white_list :rails_brakeman_url
4+
5+
def receive_push
6+
http_post rails_brakeman_url, :token => token, :payload => payload.to_json
7+
end
8+
9+
def rails_brakeman_url
10+
if !(url = data["rails_brakeman_url"].to_s).empty?
11+
url.strip
12+
else
13+
"https://rails-brakeman.com"
14+
end
15+
end
16+
17+
def token
18+
data['token'].strip
19+
end
20+
end

test/rails_brakeman_test.rb

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
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

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy