-
Notifications
You must be signed in to change notification settings - Fork 27
/
controller_test.rb
81 lines (62 loc) · 1.93 KB
/
controller_test.rb
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
80
81
require_relative "test_helper"
class ControllerTest < ActionDispatch::IntegrationTest
def setup
FieldTest::Membership.delete_all
User.delete_all
end
def test_no_user
get users_url
assert_response :success
membership = FieldTest::Membership.last
assert_equal 1, FieldTest::Membership.count
assert membership.converted
assert_nil membership.participant_type
assert membership.participant_id
end
def test_user
user = User.create!
get users_url
assert_response :success
membership = FieldTest::Membership.last
assert_equal 1, FieldTest::Membership.count
assert membership.converted
assert_equal "User", membership.participant_type
assert_equal user.id.to_s, membership.participant_id
end
def test_param
get users_url("field_test[button_color]" => "green")
assert_response :success
assert_includes response.body, "Button: green"
assert_equal 0, FieldTest::Membership.count
end
def test_bad_param
get users_url("field_test[button_color]" => "bad")
assert_response :success
refute_includes response.body, "Button: bad"
end
def test_custom_exclude_logic
get users_url("exclude" => "true")
assert_response :success
assert_equal 0, FieldTest::Membership.count
end
def test_exclude_bots
get users_url, headers: {"HTTP_USER_AGENT" => "Googlebot"}
assert_response :success
assert_equal 0, FieldTest::Membership.count
end
def test_exclude_ips
get users_url, headers: {"HTTP_X_FORWARDED_FOR" => "123.4.5.6"}
assert_response :success
assert_equal 0, FieldTest::Membership.count
end
def test_exclude_ips_range
get users_url, headers: {"HTTP_X_FORWARDED_FOR" => "123.1.2.3"}
assert_response :success
assert_equal 0, FieldTest::Membership.count
end
def get(url, **options)
options[:headers] ||= {}
options[:headers]["HTTP_USER_AGENT"] ||= "Mozilla/5.0"
super(url, **options)
end
end