redirector 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,9 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe 'Redirector middleware', :type => :feature do
4
4
  before do
5
- FactoryGirl.create(:redirect_rule, :destination => '/news/5', :source => '/my_custom_url')
6
- FactoryGirl.create(:redirect_rule_regex, :destination => '/news/$1', :source => '/my_custom_url/([A-Za-z0-9_]+)')
7
- FactoryGirl.create(:redirect_rule_regex, :destination => '/news', :source => 'categoryID=12345')
5
+ create(:redirect_rule, :destination => '/news/5', :source => '/my_custom_url')
6
+ create(:redirect_rule_regex, :destination => '/news/$1', :source => '/my_custom_url/([A-Za-z0-9_]+)')
7
+ create(:redirect_rule_regex, :destination => '/news', :source => 'categoryID=12345')
8
8
  end
9
9
 
10
10
  it 'correctly redirects the visitor for an exact match rule' do
@@ -61,12 +61,12 @@ describe 'Redirector middleware', :type => :feature do
61
61
  end
62
62
 
63
63
  it 'handles invalid URIs properly' do
64
- bad_rule = FactoryGirl.create(:redirect_rule_regex, :destination => 'http://www.example.com$1', :source => '^/custom(.*)$')
64
+ bad_rule = create(:redirect_rule_regex, :destination => 'http://www.example.com$1', :source => '^/custom(.*)$')
65
65
 
66
66
  begin
67
- visit '/custom)%e2'
67
+ visit '/custom)e2'
68
68
  rescue Redirector::RuleError => e
69
- e.message.should == "RedirectRule #{bad_rule.id} generated the bad destination: http://www.example.com)%e2"
69
+ e.message.should == "RedirectRule #{bad_rule.id} generated the bad destination: http://www.example.com)e2"
70
70
  end
71
71
  end
72
72
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RedirectRule do
4
- subject { FactoryGirl.create(:redirect_rule) }
4
+ subject { create(:redirect_rule) }
5
5
  let!(:rule) { subject }
6
6
 
7
7
  it { should have_many(:request_environment_rules) }
@@ -41,8 +41,32 @@ describe RedirectRule do
41
41
  RedirectRule.match_for('/catchy_thingy', {}).should == subject
42
42
  end
43
43
 
44
+ context 'for a case sensitive match' do
45
+ let!(:case_sensitive_rule) { create(:redirect_rule, :source_is_case_sensitive => true, :source => '/Case-Does-Matter') }
46
+
47
+ it 'returns the rule if it matches the case' do
48
+ RedirectRule.match_for('/Case-Does-Matter', {}).should == case_sensitive_rule
49
+ end
50
+
51
+ it 'returns nil if it does not match the case' do
52
+ RedirectRule.match_for('/case-does-matter', {}).should be_nil
53
+ end
54
+ end
55
+
56
+ context 'for a case insensitive match' do
57
+ let!(:case_insensitive_rule) { create(:redirect_rule, :source_is_case_sensitive => false, :source => '/Case-Does-Not-Matter') }
58
+
59
+ it 'returns the rule if it matches the case' do
60
+ RedirectRule.match_for('/Case-Does-Not-Matter', {}).should == case_insensitive_rule
61
+ end
62
+
63
+ it 'returns the rule if it does not match the case' do
64
+ RedirectRule.match_for('/case-does-not-matter', {}).should == case_insensitive_rule
65
+ end
66
+ end
67
+
44
68
  context 'for a case sensitive regex match' do
45
- let!(:regex_rule){ FactoryGirl.create(:redirect_rule_regex, :source_is_case_sensitive => true) }
69
+ let!(:regex_rule){ create(:redirect_rule_regex, :source_is_case_sensitive => true) }
46
70
 
47
71
  it 'returns the rule if it matches the case' do
48
72
  RedirectRule.match_for('/new_shiny/from_company', {}).should == regex_rule
@@ -54,7 +78,7 @@ describe RedirectRule do
54
78
  end
55
79
 
56
80
  context 'for a case insensitive regex match' do
57
- let!(:regex_rule){ FactoryGirl.create(:redirect_rule_regex) }
81
+ let!(:regex_rule){ create(:redirect_rule_regex) }
58
82
 
59
83
  it 'returns the rule if it matches the case' do
60
84
  RedirectRule.match_for('/new_shiny/from_company', {}).should == regex_rule
@@ -67,7 +91,7 @@ describe RedirectRule do
67
91
 
68
92
  context 'with a rule with one environment condition' do
69
93
  before do
70
- FactoryGirl.create(:request_environment_rule, :redirect_rule => subject)
94
+ create(:request_environment_rule, :redirect_rule => subject)
71
95
  end
72
96
 
73
97
  it 'should find the rule if it matches' do
@@ -81,8 +105,8 @@ describe RedirectRule do
81
105
 
82
106
  context 'with a rule with multiple environment conditions' do
83
107
  before do
84
- FactoryGirl.create(:request_environment_rule, :redirect_rule => subject)
85
- FactoryGirl.create(:request_environment_rule_regex, :redirect_rule => subject)
108
+ create(:request_environment_rule, :redirect_rule => subject)
109
+ create(:request_environment_rule_regex, :redirect_rule => subject)
86
110
  end
87
111
 
88
112
  it 'should find the rule if it matches' do
@@ -97,12 +121,12 @@ describe RedirectRule do
97
121
  end
98
122
 
99
123
  context 'with multiple rules with multiple environment conditions' do
100
- let!(:rule2){ FactoryGirl.create(:redirect_rule) }
124
+ let!(:rule2){ create(:redirect_rule) }
101
125
  before do
102
- FactoryGirl.create(:request_environment_rule, :redirect_rule => subject)
103
- FactoryGirl.create(:request_environment_rule_regex, :redirect_rule => subject)
104
- FactoryGirl.create(:request_environment_rule, :redirect_rule => rule2)
105
- FactoryGirl.create(:request_environment_rule_regex, :redirect_rule => rule2,
126
+ create(:request_environment_rule, :redirect_rule => subject)
127
+ create(:request_environment_rule_regex, :redirect_rule => subject)
128
+ create(:request_environment_rule, :redirect_rule => rule2)
129
+ create(:request_environment_rule_regex, :redirect_rule => rule2,
106
130
  :environment_value => 'another=value')
107
131
  end
108
132
 
@@ -123,7 +147,7 @@ describe RedirectRule do
123
147
  end
124
148
 
125
149
  context 'with a regex rule that also matches an exact string match' do
126
- let!(:regex_rule){ FactoryGirl.create(:redirect_rule_regex, :source => '[A-Za-z0-9]_thingy') }
150
+ let!(:regex_rule){ create(:redirect_rule_regex, :source => '[A-Za-z0-9]_thingy') }
127
151
 
128
152
  it 'should return the exact match' do
129
153
  RedirectRule.match_for('/catchy_thingy', {}).should == subject
@@ -132,7 +156,7 @@ describe RedirectRule do
132
156
  end
133
157
 
134
158
  describe '.destination_for' do
135
- let!(:regex_rule) { FactoryGirl.create(:redirect_rule_regex) }
159
+ let!(:regex_rule) { create(:redirect_rule_regex) }
136
160
 
137
161
  it 'should find a regex match' do
138
162
  RedirectRule.destination_for('/new_shiny/from_company', {}).should == 'http://www.example.com/news/from_company'
@@ -148,7 +172,7 @@ describe RedirectRule do
148
172
  end
149
173
 
150
174
  describe '#evaluated_destination_for' do
151
- let(:regex_rule) { FactoryGirl.create(:redirect_rule_regex) }
175
+ let(:regex_rule) { create(:redirect_rule_regex) }
152
176
 
153
177
  it 'returns the destination for a non regex rule' do
154
178
  subject.evaluated_destination_for('/catchy_thingy').should == 'http://www.example.com/products/1'
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RequestEnvironmentRule do
4
- subject { FactoryGirl.create(:request_environment_rule) }
4
+ subject { create(:request_environment_rule) }
5
5
 
6
6
  it { should belong_to(:redirect_rule) }
7
7
 
@@ -20,7 +20,7 @@ describe RequestEnvironmentRule do
20
20
  it { should allow_value(false).for(:environment_value_is_case_sensitive) }
21
21
 
22
22
  it 'should not allow an invalid regex' do
23
- rule = FactoryGirl.build(:request_environment_rule_regex, :environment_value => '[')
23
+ rule = build(:request_environment_rule_regex, :environment_value => '[')
24
24
  rule.errors_on(:environment_value).should == ['is an invalid regular expression']
25
25
  end
26
26
 
@@ -31,7 +31,7 @@ describe RequestEnvironmentRule do
31
31
  end
32
32
 
33
33
  context 'with a case sensitive regex value' do
34
- subject { FactoryGirl.create(:request_environment_rule_regex) }
34
+ subject { create(:request_environment_rule_regex) }
35
35
 
36
36
  it "should know if it's matched" do
37
37
  subject.matches?({'QUERY_STRING' => 'something=value'}).should be_true
@@ -44,7 +44,7 @@ describe RequestEnvironmentRule do
44
44
  end
45
45
 
46
46
  context 'with a case insensitve regex value' do
47
- subject { FactoryGirl.create(:request_environment_rule_regex, :environment_value_is_case_sensitive => false) }
47
+ subject { create(:request_environment_rule_regex, :environment_value_is_case_sensitive => false) }
48
48
 
49
49
  it "should know if it's matched" do
50
50
  subject.matches?({'QUERY_STRING' => 'something=value'}).should be_true
data/spec/spec_helper.rb CHANGED
@@ -18,11 +18,13 @@ Rails.backtrace_cleaner.remove_silencers!
18
18
  DatabaseCleaner.strategy = :truncation
19
19
 
20
20
  RSpec.configure do |config|
21
+ config.include FactoryGirl::Syntax::Methods
22
+
21
23
  config.mock_with :rspec
22
24
  config.use_transactional_fixtures = true
23
25
  config.infer_base_class_for_anonymous_controllers = false
24
26
 
25
- config.after(:each, :type => :request) do
27
+ config.after(:each, :type => :feature) do
26
28
  DatabaseCleaner.clean # Truncate the database
27
29
  Capybara.reset_sessions! # Forget the (simulated) browser state
28
30
  Capybara.use_default_driver # Revert Capybara.current_driver to Capybara.default_driver
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redirector
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Landau
@@ -29,7 +29,7 @@ cert_chain:
29
29
  QHjym4e4y/FmXBJjpO/TtRoYd8a5YTCaOsML7M/nb/XrArvE3l5JaNEXkhH/nGs7
30
30
  wR9huisTMlESX3ReGKU=
31
31
  -----END CERTIFICATE-----
32
- date: 2014-03-08 00:00:00.000000000 Z
32
+ date: 2014-09-26 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rails
@@ -77,16 +77,16 @@ dependencies:
77
77
  name: rspec-rails
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 2.14.2
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 2.14.2
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: shoulda-matchers
92
92
  requirement: !ruby/object:Gem::Requirement
@@ -135,14 +135,14 @@ dependencies:
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '1.7'
138
+ version: '4.4'
139
139
  type: :development
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: '1.7'
145
+ version: '4.4'
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: appraisal
148
148
  requirement: !ruby/object:Gem::Requirement
@@ -266,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
266
266
  version: '0'
267
267
  requirements: []
268
268
  rubyforge_project:
269
- rubygems_version: 2.2.0
269
+ rubygems_version: 2.2.2
270
270
  signing_key:
271
271
  specification_version: 4
272
272
  summary: A Rails engine that adds a piece of middleware to the top of your middleware