This repository has been archived by the owner on May 28, 2021. It is now read-only.
forked from bebanjo/rack-useragent
/
user_agent_filter_test.rb
99 lines (80 loc) · 2.49 KB
/
user_agent_filter_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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
require File.dirname(__FILE__) + '/test_helper'
class UserAgentFilterTest < Test::Unit::TestCase
include Rack::Test::Methods
def setup
@outdated_browser = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" # IE6
@modern_browser = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)" # IE8
end
def app
SampleApp.new
end
context "default page" do
setup do
def app
Rack::Builder.new do
use Rack::UserAgent::Filter, [{:browser => "Internet Explorer", :version => "7.0"}]
run SampleApp.new
end
end
end
should "pass" do
header "User-Agent", @modern_browser
get '/'
assert_equal "Sample Response", last_response.body
end
should "filter" do
header "User-Agent", @outdated_browser
get '/'
assert_equal "Sorry, your browser is not supported. Please upgrade", last_response.body
end
end
context "custom page" do
setup do
def app
Rack::Builder.new do
use Rack::UserAgent::Filter, [{:browser => "Internet Explorer", :version => "7.0"}], :template => File.dirname(__FILE__) + "/fixtures/upgrade.erb"
run SampleApp.new
end
end
end
should "work" do
header "User-Agent", @outdated_browser
get '/'
assert_equal "Hello, Internet Explorer 6.0!", last_response.body
end
end
context "custom page (haml)" do
setup do
def app
Rack::Builder.new do
use Rack::UserAgent::Filter, [{:browser => "Internet Explorer", :version => "7.0"}], :template => File.dirname(__FILE__) + "/fixtures/upgrade.haml"
run SampleApp.new
end
end
end
should "work" do
header "User-Agent", @outdated_browser
get '/'
assert_equal "Hello, Internet Explorer 6.0!\n", last_response.body
end
end
context "cookie" do
setup do
def app
Rack::Builder.new do
use Rack::UserAgent::Filter, [{:browser => "Internet Explorer", :version => "7.0"}], :force_with_cookie => "browser"
run SampleApp.new
end
end
end
should "pass if cookie set" do
header "User-Agent", @outdated_browser
set_cookie "browser=Internet Explorer"
get '/'
assert_equal "Sample Response", last_response.body
clear_cookies
get '/'
assert_equal "Sorry, your browser is not supported. Please upgrade", last_response.body
end
end
end