bartt-ssl_requirement 1.2.6 → 1.2.7
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.
- data/Rakefile +1 -0
 - data/VERSION +1 -1
 - data/bartt-ssl_requirement.gemspec +17 -20
 - data/lib/ssl_requirement.rb +2 -1
 - data/test/ssl_requirement_test.rb +48 -47
 - metadata +6 -18
 - data/.gitignore +0 -1
 
    
        data/Rakefile
    CHANGED
    
    
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1.2. 
     | 
| 
      
 1 
     | 
    
         
            +
            1.2.7
         
     | 
| 
         @@ -1,46 +1,43 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Generated by jeweler
         
     | 
| 
       2 
2 
     | 
    
         
             
            # DO NOT EDIT THIS FILE DIRECTLY
         
     | 
| 
       3 
     | 
    
         
            -
            # Instead, edit Jeweler::Tasks in Rakefile, and run  
     | 
| 
      
 3 
     | 
    
         
            +
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         
     | 
| 
       4 
4 
     | 
    
         
             
            # -*- encoding: utf-8 -*-
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = %q{bartt-ssl_requirement}
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "1.2. 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "1.2.7"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
     | 
    
         
            -
              s.authors = ["RailsJedi", "David Heinemeier Hansson", "jcnetdev", "bcurren", "bmpercy", "revo", "nathany", "bartt", "Thorben  
     | 
| 
       12 
     | 
    
         
            -
              s.date = %q{2011-05- 
     | 
| 
      
 11 
     | 
    
         
            +
              s.authors = ["RailsJedi", "David Heinemeier Hansson", "jcnetdev", "bcurren", "bmpercy", "revo", "nathany", "bartt", "Thorben Schröder"]
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = %q{2011-05-27}
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.description = %q{SSL requirement adds a declarative way of specifying that certain actions should only be allowed to run under SSL, and if they're accessed without it, they should be redirected.}
         
     | 
| 
       14 
14 
     | 
    
         
             
              s.email = %q{bart@thecodemill.biz}
         
     | 
| 
       15 
15 
     | 
    
         
             
              s.extra_rdoc_files = [
         
     | 
| 
       16 
16 
     | 
    
         
             
                "README"
         
     | 
| 
       17 
17 
     | 
    
         
             
              ]
         
     | 
| 
       18 
18 
     | 
    
         
             
              s.files = [
         
     | 
| 
       19 
     | 
    
         
            -
                " 
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                 "test/url_for_test.rb"
         
     | 
| 
      
 19 
     | 
    
         
            +
                "README",
         
     | 
| 
      
 20 
     | 
    
         
            +
                "Rakefile",
         
     | 
| 
      
 21 
     | 
    
         
            +
                "VERSION",
         
     | 
| 
      
 22 
     | 
    
         
            +
                "bartt-ssl_requirement.gemspec",
         
     | 
| 
      
 23 
     | 
    
         
            +
                "init.rb",
         
     | 
| 
      
 24 
     | 
    
         
            +
                "lib/ssl_requirement.rb",
         
     | 
| 
      
 25 
     | 
    
         
            +
                "lib/url_for.rb",
         
     | 
| 
      
 26 
     | 
    
         
            +
                "rails/init.rb",
         
     | 
| 
      
 27 
     | 
    
         
            +
                "shoulda_macros/ssl_requirement_macros.rb",
         
     | 
| 
      
 28 
     | 
    
         
            +
                "test/ssl_requirement_test.rb",
         
     | 
| 
      
 29 
     | 
    
         
            +
                "test/url_for_test.rb"
         
     | 
| 
       31 
30 
     | 
    
         
             
              ]
         
     | 
| 
       32 
31 
     | 
    
         
             
              s.homepage = %q{http://github.com/bartt/ssl_requirement}
         
     | 
| 
       33 
     | 
    
         
            -
              s.rdoc_options = ["--charset=UTF-8"]
         
     | 
| 
       34 
32 
     | 
    
         
             
              s.require_paths = ["lib"]
         
     | 
| 
       35 
     | 
    
         
            -
              s.rubygems_version = %q{1. 
     | 
| 
      
 33 
     | 
    
         
            +
              s.rubygems_version = %q{1.6.2}
         
     | 
| 
       36 
34 
     | 
    
         
             
              s.summary = %q{Allow controller actions to force SSL on specific parts of the site.}
         
     | 
| 
       37 
35 
     | 
    
         
             
              s.test_files = [
         
     | 
| 
       38 
36 
     | 
    
         
             
                "test/ssl_requirement_test.rb",
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
      
 37 
     | 
    
         
            +
                "test/url_for_test.rb"
         
     | 
| 
       40 
38 
     | 
    
         
             
              ]
         
     | 
| 
       41 
39 
     | 
    
         | 
| 
       42 
40 
     | 
    
         
             
              if s.respond_to? :specification_version then
         
     | 
| 
       43 
     | 
    
         
            -
                current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
         
     | 
| 
       44 
41 
     | 
    
         
             
                s.specification_version = 3
         
     | 
| 
       45 
42 
     | 
    
         | 
| 
       46 
43 
     | 
    
         
             
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         
     | 
    
        data/lib/ssl_requirement.rb
    CHANGED
    
    | 
         @@ -21,7 +21,8 @@ require "#{File.dirname(__FILE__)}/url_for" 
     | 
|
| 
       21 
21 
     | 
    
         
             
            # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         
     | 
| 
       22 
22 
     | 
    
         
             
            # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         
     | 
| 
       23 
23 
     | 
    
         
             
            module SslRequirement
         
     | 
| 
       24 
     | 
    
         
            -
              mattr_writer :ssl_host, :non_ssl_host, :disable_ssl_check 
     | 
| 
      
 24 
     | 
    
         
            +
              mattr_writer :ssl_host, :non_ssl_host, :disable_ssl_check
         
     | 
| 
      
 25 
     | 
    
         
            +
              mattr_accessor :redirect_status
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
              def self.ssl_host
         
     | 
| 
       27 
28 
     | 
    
         
             
                determine_host(@@ssl_host) rescue nil
         
     | 
| 
         @@ -18,10 +18,11 @@ MSG 
     | 
|
| 
       18 
18 
     | 
    
         
             
                end
         
     | 
| 
       19 
19 
     | 
    
         
             
              end
         
     | 
| 
       20 
20 
     | 
    
         
             
            end
         
     | 
| 
      
 21 
     | 
    
         
            +
            $:.unshift(File.dirname(__FILE__) + '/../lib')
         
     | 
| 
       21 
22 
     | 
    
         | 
| 
       22 
23 
     | 
    
         
             
            require 'action_dispatch/testing/test_process'
         
     | 
| 
       23 
24 
     | 
    
         
             
            require 'test/unit'
         
     | 
| 
       24 
     | 
    
         
            -
            require " 
     | 
| 
      
 25 
     | 
    
         
            +
            require "ssl_requirement"
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
            ActionController::Base.logger = nil
         
     | 
| 
       27 
28 
     | 
    
         
             
            ActionController::Routing::Routes.reload rescue nil
         
     | 
| 
         @@ -41,25 +42,25 @@ ROUTES.finalize! 
     | 
|
| 
       41 
42 
     | 
    
         | 
| 
       42 
43 
     | 
    
         
             
            class SslRequirementController < ActionController::Base
         
     | 
| 
       43 
44 
     | 
    
         
             
              include SslRequirement
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
       45 
46 
     | 
    
         
             
              ssl_required :a, :b
         
     | 
| 
       46 
47 
     | 
    
         
             
              ssl_allowed :c
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
       48 
49 
     | 
    
         
             
              def a
         
     | 
| 
       49 
50 
     | 
    
         
             
                flash[:abar] = "foo"
         
     | 
| 
       50 
51 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       51 
52 
     | 
    
         
             
              end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
       53 
54 
     | 
    
         
             
              def b
         
     | 
| 
       54 
55 
     | 
    
         
             
                flash[:bbar] = "foo"
         
     | 
| 
       55 
56 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       56 
57 
     | 
    
         
             
              end
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
       58 
59 
     | 
    
         
             
              def c
         
     | 
| 
       59 
60 
     | 
    
         
             
                flash[:cbar] = "foo"
         
     | 
| 
       60 
61 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       61 
62 
     | 
    
         
             
              end
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
       63 
64 
     | 
    
         
             
              def d
         
     | 
| 
       64 
65 
     | 
    
         
             
                flash[:dbar] = "foo"
         
     | 
| 
       65 
66 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
         @@ -69,7 +70,7 @@ class SslRequirementController < ActionController::Base 
     | 
|
| 
       69 
70 
     | 
    
         
             
                flash[:foo] = "bar"
         
     | 
| 
       70 
71 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       71 
72 
     | 
    
         
             
              end
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
       73 
74 
     | 
    
         
             
              def self._routes
         
     | 
| 
       74 
75 
     | 
    
         
             
                ROUTES
         
     | 
| 
       75 
76 
     | 
    
         
             
              end
         
     | 
| 
         @@ -77,27 +78,27 @@ end 
     | 
|
| 
       77 
78 
     | 
    
         | 
| 
       78 
79 
     | 
    
         
             
            class SslExceptionController < ActionController::Base
         
     | 
| 
       79 
80 
     | 
    
         
             
              include SslRequirement
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
       81 
82 
     | 
    
         
             
              ssl_required  :a
         
     | 
| 
       82 
83 
     | 
    
         
             
              ssl_exceptions :b
         
     | 
| 
       83 
84 
     | 
    
         
             
              ssl_allowed :d
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
       85 
86 
     | 
    
         
             
              def a
         
     | 
| 
       86 
87 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       87 
88 
     | 
    
         
             
              end
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
       89 
90 
     | 
    
         
             
              def b
         
     | 
| 
       90 
91 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       91 
92 
     | 
    
         
             
              end
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
       93 
94 
     | 
    
         
             
              def c
         
     | 
| 
       94 
95 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       95 
96 
     | 
    
         
             
              end
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
      
 97 
     | 
    
         
            +
             
     | 
| 
       97 
98 
     | 
    
         
             
              def d
         
     | 
| 
       98 
99 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       99 
100 
     | 
    
         
             
              end
         
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
       101 
102 
     | 
    
         
             
              def self._routes
         
     | 
| 
       102 
103 
     | 
    
         
             
                ROUTES
         
     | 
| 
       103 
104 
     | 
    
         
             
              end
         
     | 
| 
         @@ -105,13 +106,13 @@ end 
     | 
|
| 
       105 
106 
     | 
    
         | 
| 
       106 
107 
     | 
    
         
             
            class SslAllActionsController < ActionController::Base
         
     | 
| 
       107 
108 
     | 
    
         
             
              include SslRequirement
         
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
       109 
110 
     | 
    
         
             
              ssl_exceptions
         
     | 
| 
       110 
     | 
    
         
            -
             
     | 
| 
      
 111 
     | 
    
         
            +
             
     | 
| 
       111 
112 
     | 
    
         
             
              def a
         
     | 
| 
       112 
113 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       113 
114 
     | 
    
         
             
              end
         
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
       115 
116 
     | 
    
         
             
              def self._routes
         
     | 
| 
       116 
117 
     | 
    
         
             
                ROUTES
         
     | 
| 
       117 
118 
     | 
    
         
             
              end
         
     | 
| 
         @@ -119,17 +120,17 @@ end 
     | 
|
| 
       119 
120 
     | 
    
         | 
| 
       120 
121 
     | 
    
         
             
            class SslAllowAllActionsController < ActionController::Base
         
     | 
| 
       121 
122 
     | 
    
         
             
              include SslRequirement
         
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
       123 
124 
     | 
    
         
             
              ssl_allowed :all
         
     | 
| 
       124 
     | 
    
         
            -
             
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
       125 
126 
     | 
    
         
             
              def a
         
     | 
| 
       126 
127 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       127 
128 
     | 
    
         
             
              end
         
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
       129 
130 
     | 
    
         
             
              def b
         
     | 
| 
       130 
131 
     | 
    
         
             
                render :nothing => true
         
     | 
| 
       131 
132 
     | 
    
         
             
              end
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
      
 133 
     | 
    
         
            +
             
     | 
| 
       133 
134 
     | 
    
         
             
              def self._routes
         
     | 
| 
       134 
135 
     | 
    
         
             
                ROUTES
         
     | 
| 
       135 
136 
     | 
    
         
             
              end
         
     | 
| 
         @@ -141,7 +142,7 @@ end 
     | 
|
| 
       141 
142 
     | 
    
         | 
| 
       142 
143 
     | 
    
         
             
            # NOTE: The only way I could get the flash tests to work under Rails 2.3.2
         
     | 
| 
       143 
144 
     | 
    
         
             
            #       (without resorting to IntegrationTest with some artificial session
         
     | 
| 
       144 
     | 
    
         
            -
            #       store) was to use TestCase. In TestCases, it appears that flash 
     | 
| 
      
 145 
     | 
    
         
            +
            #       store) was to use TestCase. In TestCases, it appears that flash
         
     | 
| 
       145 
146 
     | 
    
         
             
            #       messages are effectively persisted in session after the last controller
         
     | 
| 
       146 
147 
     | 
    
         
             
            #       action that consumed them...so that when the TestCase inspects
         
     | 
| 
       147 
148 
     | 
    
         
             
            #       the FlashHash, it will find the flash still populated, even though
         
     | 
| 
         @@ -151,8 +152,8 @@ end 
     | 
|
| 
       151 
152 
     | 
    
         
             
            #       flash is persisted forever. But if subsequent controller actions add to
         
     | 
| 
       152 
153 
     | 
    
         
             
            #       flash, the older flash messages eventually disappear.
         
     | 
| 
       153 
154 
     | 
    
         
             
            #
         
     | 
| 
       154 
     | 
    
         
            -
            #       As a result, the flash-related tests now make two requests after the 
     | 
| 
       155 
     | 
    
         
            -
            #       set_flash, each of these requests is also modifying flash. flash is 
     | 
| 
      
 155 
     | 
    
         
            +
            #       As a result, the flash-related tests now make two requests after the
         
     | 
| 
      
 156 
     | 
    
         
            +
            #       set_flash, each of these requests is also modifying flash. flash is
         
     | 
| 
       156 
157 
     | 
    
         
             
            #       inspected after the second request returns.
         
     | 
| 
       157 
158 
     | 
    
         
             
            #
         
     | 
| 
       158 
159 
     | 
    
         
             
            #       This feels a little hacky, so if anyone can improve it, please do so!
         
     | 
| 
         @@ -161,7 +162,7 @@ end 
     | 
|
| 
       161 
162 
     | 
    
         
             
            class SslRequirementTest < ActionController::TestCase
         
     | 
| 
       162 
163 
     | 
    
         
             
              def setup
         
     | 
| 
       163 
164 
     | 
    
         
             
                @routes = ROUTES
         
     | 
| 
       164 
     | 
    
         
            -
             
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
       165 
166 
     | 
    
         
             
                @controller = SslRequirementController.new
         
     | 
| 
       166 
167 
     | 
    
         
             
                @ssl_host_override = 'www.example.com:80443'
         
     | 
| 
       167 
168 
     | 
    
         
             
                @non_ssl_host_override = 'www.example.com:8080'
         
     | 
| 
         @@ -187,7 +188,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       187 
188 
     | 
    
         
             
              end
         
     | 
| 
       188 
189 
     | 
    
         | 
| 
       189 
190 
     | 
    
         
             
              # flash-related tests
         
     | 
| 
       190 
     | 
    
         
            -
             
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
       191 
192 
     | 
    
         
             
              def test_redirect_to_https_preserves_flash
         
     | 
| 
       192 
193 
     | 
    
         
             
                assert_not_equal "on", @request.env["HTTPS"]
         
     | 
| 
       193 
194 
     | 
    
         
             
                get :set_flash
         
     | 
| 
         @@ -197,7 +198,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       197 
198 
     | 
    
         
             
                assert_response :redirect       # make sure it happens again
         
     | 
| 
       198 
199 
     | 
    
         
             
                assert_equal "bar", flash[:foo] # the flash would be gone now if no redirect
         
     | 
| 
       199 
200 
     | 
    
         
             
              end
         
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
       201 
202 
     | 
    
         
             
              def test_not_redirecting_to_https_does_not_preserve_the_flash
         
     | 
| 
       202 
203 
     | 
    
         
             
                assert_not_equal "on", @request.env["HTTPS"]
         
     | 
| 
       203 
204 
     | 
    
         
             
                get :set_flash
         
     | 
| 
         @@ -207,7 +208,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       207 
208 
     | 
    
         
             
                assert_response :success        # check no redirect
         
     | 
| 
       208 
209 
     | 
    
         
             
                assert_nil flash[:foo]          # the flash should be gone now
         
     | 
| 
       209 
210 
     | 
    
         
             
              end
         
     | 
| 
       210 
     | 
    
         
            -
             
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
       211 
212 
     | 
    
         
             
              def test_redirect_to_http_preserves_flash
         
     | 
| 
       212 
213 
     | 
    
         
             
                get :set_flash
         
     | 
| 
       213 
214 
     | 
    
         
             
                @request.env['HTTPS'] = "on"
         
     | 
| 
         @@ -217,7 +218,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       217 
218 
     | 
    
         
             
                assert_response :redirect       # make sure redirect happens
         
     | 
| 
       218 
219 
     | 
    
         
             
                assert_equal "bar", flash[:foo] # flash would be gone now if no redirect
         
     | 
| 
       219 
220 
     | 
    
         
             
              end
         
     | 
| 
       220 
     | 
    
         
            -
             
     | 
| 
      
 221 
     | 
    
         
            +
             
     | 
| 
       221 
222 
     | 
    
         
             
              def test_not_redirecting_to_http_does_not_preserve_the_flash
         
     | 
| 
       222 
223 
     | 
    
         
             
                get :set_flash
         
     | 
| 
       223 
224 
     | 
    
         
             
                @request.env['HTTPS'] = "on"
         
     | 
| 
         @@ -229,7 +230,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       229 
230 
     | 
    
         
             
              end
         
     | 
| 
       230 
231 
     | 
    
         | 
| 
       231 
232 
     | 
    
         
             
              # ssl required/allowed/exceptions testing
         
     | 
| 
       232 
     | 
    
         
            -
             
     | 
| 
      
 233 
     | 
    
         
            +
             
     | 
| 
       233 
234 
     | 
    
         
             
              def test_required_without_ssl
         
     | 
| 
       234 
235 
     | 
    
         
             
                assert_not_equal "on", @request.env["HTTPS"]
         
     | 
| 
       235 
236 
     | 
    
         
             
                get :a
         
     | 
| 
         @@ -239,7 +240,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       239 
240 
     | 
    
         
             
                assert_response :redirect
         
     | 
| 
       240 
241 
     | 
    
         
             
                assert_match %r{^https://}, @response.headers['Location']
         
     | 
| 
       241 
242 
     | 
    
         
             
              end
         
     | 
| 
       242 
     | 
    
         
            -
             
     | 
| 
      
 243 
     | 
    
         
            +
             
     | 
| 
       243 
244 
     | 
    
         
             
              def test_required_with_ssl
         
     | 
| 
       244 
245 
     | 
    
         
             
                @request.env['HTTPS'] = "on"
         
     | 
| 
       245 
246 
     | 
    
         
             
                get :a
         
     | 
| 
         @@ -253,7 +254,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       253 
254 
     | 
    
         
             
                get :d
         
     | 
| 
       254 
255 
     | 
    
         
             
                assert_response :success
         
     | 
| 
       255 
256 
     | 
    
         
             
              end
         
     | 
| 
       256 
     | 
    
         
            -
             
     | 
| 
      
 257 
     | 
    
         
            +
             
     | 
| 
       257 
258 
     | 
    
         
             
              def test_ssl_exceptions_without_ssl
         
     | 
| 
       258 
259 
     | 
    
         
             
                @controller = SslExceptionController.new
         
     | 
| 
       259 
260 
     | 
    
         
             
                assert_not_equal "on", @request.env["HTTPS"]
         
     | 
| 
         @@ -266,7 +267,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       266 
267 
     | 
    
         
             
                assert_response :redirect
         
     | 
| 
       267 
268 
     | 
    
         
             
                assert_match %r{^https://}, @response.headers['Location']
         
     | 
| 
       268 
269 
     | 
    
         
             
              end
         
     | 
| 
       269 
     | 
    
         
            -
             
     | 
| 
      
 270 
     | 
    
         
            +
             
     | 
| 
       270 
271 
     | 
    
         
             
              def test_ssl_exceptions_with_ssl
         
     | 
| 
       271 
272 
     | 
    
         
             
                @controller = SslExceptionController.new
         
     | 
| 
       272 
273 
     | 
    
         
             
                @request.env['HTTPS'] = "on"
         
     | 
| 
         @@ -275,14 +276,14 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       275 
276 
     | 
    
         
             
                get :c
         
     | 
| 
       276 
277 
     | 
    
         
             
                assert_response :success
         
     | 
| 
       277 
278 
     | 
    
         
             
              end
         
     | 
| 
       278 
     | 
    
         
            -
             
     | 
| 
      
 279 
     | 
    
         
            +
             
     | 
| 
       279 
280 
     | 
    
         
             
              def test_ssl_all_actions_without_ssl
         
     | 
| 
       280 
281 
     | 
    
         
             
                @controller = SslAllActionsController.new
         
     | 
| 
       281 
282 
     | 
    
         
             
                get :a
         
     | 
| 
       282 
283 
     | 
    
         
             
                assert_response :redirect
         
     | 
| 
       283 
284 
     | 
    
         
             
                assert_match %r{^https://}, @response.headers['Location']
         
     | 
| 
       284 
285 
     | 
    
         
             
              end
         
     | 
| 
       285 
     | 
    
         
            -
             
     | 
| 
      
 286 
     | 
    
         
            +
             
     | 
| 
       286 
287 
     | 
    
         
             
              def test_disallowed_with_ssl
         
     | 
| 
       287 
288 
     | 
    
         
             
                @request.env['HTTPS'] = "on"
         
     | 
| 
       288 
289 
     | 
    
         
             
                get :d
         
     | 
| 
         @@ -360,7 +361,7 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       360 
361 
     | 
    
         
             
              end
         
     | 
| 
       361 
362 
     | 
    
         | 
| 
       362 
363 
     | 
    
         
             
              # test ssl_host and ssl_non_host overrides with Procs
         
     | 
| 
       363 
     | 
    
         
            -
             
     | 
| 
      
 364 
     | 
    
         
            +
             
     | 
| 
       364 
365 
     | 
    
         
             
              def test_ssl_redirect_with_ssl_host_proc
         
     | 
| 
       365 
366 
     | 
    
         
             
                SslRequirement.ssl_host = Proc.new do
         
     | 
| 
       366 
367 
     | 
    
         
             
                  @ssl_host_override
         
     | 
| 
         @@ -368,14 +369,14 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       368 
369 
     | 
    
         
             
                assert_not_equal "on", @request.env["HTTPS"]
         
     | 
| 
       369 
370 
     | 
    
         
             
                get :a
         
     | 
| 
       370 
371 
     | 
    
         
             
                assert_response :redirect
         
     | 
| 
       371 
     | 
    
         
            -
                assert_match Regexp.new("^https://#{@ssl_host_override}"), 
     | 
| 
      
 372 
     | 
    
         
            +
                assert_match Regexp.new("^https://#{@ssl_host_override}"),
         
     | 
| 
       372 
373 
     | 
    
         
             
                             @response.headers['Location']
         
     | 
| 
       373 
374 
     | 
    
         
             
                SslRequirement.ssl_host = nil
         
     | 
| 
       374 
375 
     | 
    
         
             
              end
         
     | 
| 
       375 
376 
     | 
    
         | 
| 
       376 
377 
     | 
    
         
             
              def test_non_ssl_redirect_with_non_ssl_host_proc
         
     | 
| 
       377 
378 
     | 
    
         
             
                SslRequirement.non_ssl_host = Proc.new do
         
     | 
| 
       378 
     | 
    
         
            -
                  @non_ssl_host_override 
     | 
| 
      
 379 
     | 
    
         
            +
                  @non_ssl_host_override
         
     | 
| 
       379 
380 
     | 
    
         
             
                end
         
     | 
| 
       380 
381 
     | 
    
         
             
                @request.env['HTTPS'] = 'on'
         
     | 
| 
       381 
382 
     | 
    
         
             
                get :d
         
     | 
| 
         @@ -384,31 +385,31 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       384 
385 
     | 
    
         
             
                             @response.headers['Location']
         
     | 
| 
       385 
386 
     | 
    
         
             
                SslRequirement.non_ssl_host = nil
         
     | 
| 
       386 
387 
     | 
    
         
             
              end
         
     | 
| 
       387 
     | 
    
         
            -
             
     | 
| 
      
 388 
     | 
    
         
            +
             
     | 
| 
       388 
389 
     | 
    
         
             
              # test allowing ssl on any action by the :all symbol
         
     | 
| 
       389 
390 
     | 
    
         
             
              def test_controller_that_allows_ssl_on_all_actions_allows_requests_with_or_without_ssl_enabled
         
     | 
| 
       390 
391 
     | 
    
         
             
                @controller = SslAllowAllActionsController.new
         
     | 
| 
       391 
     | 
    
         
            -
             
     | 
| 
      
 392 
     | 
    
         
            +
             
     | 
| 
       392 
393 
     | 
    
         
             
                assert_not_equal "on", @request.env["HTTPS"]
         
     | 
| 
       393 
     | 
    
         
            -
             
     | 
| 
      
 394 
     | 
    
         
            +
             
     | 
| 
       394 
395 
     | 
    
         
             
                get :a
         
     | 
| 
       395 
396 
     | 
    
         
             
                assert_response :success
         
     | 
| 
       396 
     | 
    
         
            -
             
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
       397 
398 
     | 
    
         
             
                get :b
         
     | 
| 
       398 
399 
     | 
    
         
             
                assert_response :success
         
     | 
| 
       399 
     | 
    
         
            -
             
     | 
| 
      
 400 
     | 
    
         
            +
             
     | 
| 
       400 
401 
     | 
    
         
             
                @request.env["HTTPS"] = "on"
         
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
      
 402 
     | 
    
         
            +
             
     | 
| 
       402 
403 
     | 
    
         
             
                get :a
         
     | 
| 
       403 
404 
     | 
    
         
             
                assert_response :success
         
     | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
      
 405 
     | 
    
         
            +
             
     | 
| 
       405 
406 
     | 
    
         
             
                get :b
         
     | 
| 
       406 
407 
     | 
    
         
             
                assert_response :success
         
     | 
| 
       407 
408 
     | 
    
         
             
              end
         
     | 
| 
       408 
     | 
    
         
            -
             
     | 
| 
      
 409 
     | 
    
         
            +
             
     | 
| 
       409 
410 
     | 
    
         
             
              def test_required_without_ssl_and_allowed_all
         
     | 
| 
       410 
411 
     | 
    
         
             
                @controller = SslAllowAllAndRequireController.new
         
     | 
| 
       411 
     | 
    
         
            -
             
     | 
| 
      
 412 
     | 
    
         
            +
             
     | 
| 
       412 
413 
     | 
    
         
             
                assert_not_equal "on", @request.env["HTTPS"]
         
     | 
| 
       413 
414 
     | 
    
         
             
                get :a
         
     | 
| 
       414 
415 
     | 
    
         
             
                assert_response :redirect
         
     | 
| 
         @@ -417,5 +418,5 @@ class SslRequirementTest < ActionController::TestCase 
     | 
|
| 
       417 
418 
     | 
    
         
             
                assert_response :redirect
         
     | 
| 
       418 
419 
     | 
    
         
             
                assert_match %r{^https://}, @response.headers['Location']
         
     | 
| 
       419 
420 
     | 
    
         
             
              end
         
     | 
| 
       420 
     | 
    
         
            -
             
     | 
| 
      
 421 
     | 
    
         
            +
             
     | 
| 
       421 
422 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,8 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: bartt-ssl_requirement
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
       6 
     | 
    
         
            -
              segments: 
         
     | 
| 
       7 
     | 
    
         
            -
              - 1
         
     | 
| 
       8 
     | 
    
         
            -
              - 2
         
     | 
| 
       9 
     | 
    
         
            -
              - 6
         
     | 
| 
       10 
     | 
    
         
            -
              version: 1.2.6
         
     | 
| 
      
 4 
     | 
    
         
            +
              prerelease: 
         
     | 
| 
      
 5 
     | 
    
         
            +
              version: 1.2.7
         
     | 
| 
       11 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
7 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
8 
     | 
    
         
             
            - RailsJedi
         
     | 
| 
         @@ -23,7 +18,7 @@ autorequire: 
     | 
|
| 
       23 
18 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       24 
19 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       25 
20 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
            date: 2011-05- 
     | 
| 
      
 21 
     | 
    
         
            +
            date: 2011-05-27 00:00:00 -07:00
         
     | 
| 
       27 
22 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       28 
23 
     | 
    
         
             
            dependencies: []
         
     | 
| 
       29 
24 
     | 
    
         | 
| 
         @@ -36,7 +31,6 @@ extensions: [] 
     | 
|
| 
       36 
31 
     | 
    
         
             
            extra_rdoc_files: 
         
     | 
| 
       37 
32 
     | 
    
         
             
            - README
         
     | 
| 
       38 
33 
     | 
    
         
             
            files: 
         
     | 
| 
       39 
     | 
    
         
            -
            - .gitignore
         
     | 
| 
       40 
34 
     | 
    
         
             
            - README
         
     | 
| 
       41 
35 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       42 
36 
     | 
    
         
             
            - VERSION
         
     | 
| 
         @@ -53,8 +47,8 @@ homepage: http://github.com/bartt/ssl_requirement 
     | 
|
| 
       53 
47 
     | 
    
         
             
            licenses: []
         
     | 
| 
       54 
48 
     | 
    
         | 
| 
       55 
49 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       56 
     | 
    
         
            -
            rdoc_options: 
         
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
       58 
52 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       59 
53 
     | 
    
         
             
            - lib
         
     | 
| 
       60 
54 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         
     | 
| 
         @@ -62,23 +56,17 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       62 
56 
     | 
    
         
             
              requirements: 
         
     | 
| 
       63 
57 
     | 
    
         
             
              - - ">="
         
     | 
| 
       64 
58 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       65 
     | 
    
         
            -
                  hash: 3
         
     | 
| 
       66 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       67 
     | 
    
         
            -
                  - 0
         
     | 
| 
       68 
59 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       69 
60 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
       70 
61 
     | 
    
         
             
              none: false
         
     | 
| 
       71 
62 
     | 
    
         
             
              requirements: 
         
     | 
| 
       72 
63 
     | 
    
         
             
              - - ">="
         
     | 
| 
       73 
64 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
       74 
     | 
    
         
            -
                  hash: 3
         
     | 
| 
       75 
     | 
    
         
            -
                  segments: 
         
     | 
| 
       76 
     | 
    
         
            -
                  - 0
         
     | 
| 
       77 
65 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       78 
66 
     | 
    
         
             
            requirements: []
         
     | 
| 
       79 
67 
     | 
    
         | 
| 
       80 
68 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       81 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 69 
     | 
    
         
            +
            rubygems_version: 1.6.2
         
     | 
| 
       82 
70 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       83 
71 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       84 
72 
     | 
    
         
             
            summary: Allow controller actions to force SSL on specific parts of the site.
         
     | 
    
        data/.gitignore
    DELETED
    
    | 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            *.gem
         
     |