rocketio 0.0.0.pre.alpha → 0.0.0
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.
- checksums.yaml +4 -4
 - data/.gitignore +5 -2
 - data/LICENSE.txt +22 -0
 - data/README.md +5 -22
 - data/Rakefile +1 -7
 - data/lib/rocketio.rb +3 -131
 - data/lib/rocketio/version.rb +2 -2
 - data/rocketio.gemspec +17 -21
 - metadata +11 -146
 - data/.travis.yml +0 -3
 - data/bin/console +0 -14
 - data/bin/setup +0 -7
 - data/lib/rocketio/application.rb +0 -31
 - data/lib/rocketio/controller.rb +0 -288
 - data/lib/rocketio/controller/authentication.rb +0 -141
 - data/lib/rocketio/controller/authorization.rb +0 -53
 - data/lib/rocketio/controller/cookies.rb +0 -59
 - data/lib/rocketio/controller/error_handlers.rb +0 -89
 - data/lib/rocketio/controller/filters.rb +0 -119
 - data/lib/rocketio/controller/flash.rb +0 -21
 - data/lib/rocketio/controller/helpers.rb +0 -438
 - data/lib/rocketio/controller/middleware.rb +0 -32
 - data/lib/rocketio/controller/render.rb +0 -148
 - data/lib/rocketio/controller/render/engine.rb +0 -76
 - data/lib/rocketio/controller/render/layout.rb +0 -27
 - data/lib/rocketio/controller/render/layouts.rb +0 -85
 - data/lib/rocketio/controller/render/templates.rb +0 -83
 - data/lib/rocketio/controller/request.rb +0 -115
 - data/lib/rocketio/controller/response.rb +0 -84
 - data/lib/rocketio/controller/sessions.rb +0 -64
 - data/lib/rocketio/controller/token_auth.rb +0 -118
 - data/lib/rocketio/controller/websocket.rb +0 -21
 - data/lib/rocketio/error_templates/404.html +0 -3
 - data/lib/rocketio/error_templates/409.html +0 -7
 - data/lib/rocketio/error_templates/500.html +0 -3
 - data/lib/rocketio/error_templates/501.html +0 -6
 - data/lib/rocketio/error_templates/layout.html +0 -1
 - data/lib/rocketio/exceptions.rb +0 -4
 - data/lib/rocketio/router.rb +0 -65
 - data/lib/rocketio/util.rb +0 -122
 - data/test/aliases_test.rb +0 -54
 - data/test/authentication_test.rb +0 -307
 - data/test/authorization_test.rb +0 -91
 - data/test/cache_control_test.rb +0 -268
 - data/test/content_type_test.rb +0 -124
 - data/test/cookies_test.rb +0 -49
 - data/test/error_handlers_test.rb +0 -125
 - data/test/etag_test.rb +0 -445
 - data/test/filters_test.rb +0 -177
 - data/test/halt_test.rb +0 -73
 - data/test/helpers_test.rb +0 -171
 - data/test/middleware_test.rb +0 -57
 - data/test/redirect_test.rb +0 -135
 - data/test/render/engine_test.rb +0 -71
 - data/test/render/get.erb +0 -1
 - data/test/render/items.erb +0 -1
 - data/test/render/layout.erb +0 -1
 - data/test/render/layout_test.rb +0 -104
 - data/test/render/layouts/master.erb +0 -1
 - data/test/render/layouts_test.rb +0 -145
 - data/test/render/master.erb +0 -1
 - data/test/render/post.erb +0 -1
 - data/test/render/put.erb +0 -1
 - data/test/render/render_test.rb +0 -101
 - data/test/render/setup.rb +0 -14
 - data/test/render/templates/a/get.erb +0 -1
 - data/test/render/templates/master.erb +0 -1
 - data/test/render/templates_test.rb +0 -146
 - data/test/request_test.rb +0 -105
 - data/test/response_test.rb +0 -119
 - data/test/routes_test.rb +0 -70
 - data/test/sendfile_test.rb +0 -209
 - data/test/sessions_test.rb +0 -176
 - data/test/setup.rb +0 -59
 
    
        data/test/filters_test.rb
    DELETED
    
    | 
         @@ -1,177 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'setup'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            spec :Filters do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              context :composition do
         
     | 
| 
       6 
     | 
    
         
            -
                it 'inherits filters from superclass' do
         
     | 
| 
       7 
     | 
    
         
            -
                  before, around, after = [], [], []
         
     | 
| 
       8 
     | 
    
         
            -
                  a = mock_controller {
         
     | 
| 
       9 
     | 
    
         
            -
                    before(:get) {before << :a}
         
     | 
| 
       10 
     | 
    
         
            -
                    around(:get) {|a| around << :a}
         
     | 
| 
       11 
     | 
    
         
            -
                    after(:get)  {after  << :a}
         
     | 
| 
       12 
     | 
    
         
            -
                    def get; end
         
     | 
| 
       13 
     | 
    
         
            -
                  }
         
     | 
| 
       14 
     | 
    
         
            -
                  b = mock_controller(a)
         
     | 
| 
       15 
     | 
    
         
            -
                  app(b)
         
     | 
| 
       16 
     | 
    
         
            -
                  get
         
     | 
| 
       17 
     | 
    
         
            -
                  assert([before, around, after]).all? {|a| a.include?(:a)}
         
     | 
| 
       18 
     | 
    
         
            -
                end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                it 'inherits filters explicitly' do
         
     | 
| 
       21 
     | 
    
         
            -
                  before, around, after = [], [], []
         
     | 
| 
       22 
     | 
    
         
            -
                  a = mock_controller {
         
     | 
| 
       23 
     | 
    
         
            -
                    before(:get) {before << :x}
         
     | 
| 
       24 
     | 
    
         
            -
                    around(:get) {|a| around << :x}
         
     | 
| 
       25 
     | 
    
         
            -
                    after(:get)  {after  << :x}
         
     | 
| 
       26 
     | 
    
         
            -
                    def get; end
         
     | 
| 
       27 
     | 
    
         
            -
                  }
         
     | 
| 
       28 
     | 
    
         
            -
                  b = mock_controller {
         
     | 
| 
       29 
     | 
    
         
            -
                    inherit :before, from: a
         
     | 
| 
       30 
     | 
    
         
            -
                    inherit :around, from: a
         
     | 
| 
       31 
     | 
    
         
            -
                    inherit :after, from: a
         
     | 
| 
       32 
     | 
    
         
            -
                  }
         
     | 
| 
       33 
     | 
    
         
            -
                  app(b)
         
     | 
| 
       34 
     | 
    
         
            -
                  get
         
     | 
| 
       35 
     | 
    
         
            -
                  assert([before, around, after]).all? {|a| a.include?(:x)}
         
     | 
| 
       36 
     | 
    
         
            -
                end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                test 'explicitly inherited filters overrides filters inherited from superclass' do
         
     | 
| 
       39 
     | 
    
         
            -
                  before, around, after = [], [], []
         
     | 
| 
       40 
     | 
    
         
            -
                  a = mock_controller {
         
     | 
| 
       41 
     | 
    
         
            -
                    before(:get) {before << :a}
         
     | 
| 
       42 
     | 
    
         
            -
                    around(:get) {|a| around << :a}
         
     | 
| 
       43 
     | 
    
         
            -
                    after(:get)  {after  << :a}
         
     | 
| 
       44 
     | 
    
         
            -
                    def get; end
         
     | 
| 
       45 
     | 
    
         
            -
                  }
         
     | 
| 
       46 
     | 
    
         
            -
                  b = mock_controller {
         
     | 
| 
       47 
     | 
    
         
            -
                    before(:get) {before << :b}
         
     | 
| 
       48 
     | 
    
         
            -
                    around(:get) {|a| around << :b}
         
     | 
| 
       49 
     | 
    
         
            -
                    after(:get)  {after  << :b}
         
     | 
| 
       50 
     | 
    
         
            -
                  }
         
     | 
| 
       51 
     | 
    
         
            -
                  c = mock_controller(a) {
         
     | 
| 
       52 
     | 
    
         
            -
                    inherit :before, from: b
         
     | 
| 
       53 
     | 
    
         
            -
                    inherit :around, from: b
         
     | 
| 
       54 
     | 
    
         
            -
                    inherit :after, from: b
         
     | 
| 
       55 
     | 
    
         
            -
                  }
         
     | 
| 
       56 
     | 
    
         
            -
                  app(c)
         
     | 
| 
       57 
     | 
    
         
            -
                  get
         
     | 
| 
       58 
     | 
    
         
            -
                  assert([before, around, after]).none? {|a| a.include?(:a)}
         
     | 
| 
       59 
     | 
    
         
            -
                  assert([before, around, after]).all? {|a| a.include?(:b)}
         
     | 
| 
       60 
     | 
    
         
            -
                end
         
     | 
| 
       61 
     | 
    
         
            -
             
     | 
| 
       62 
     | 
    
         
            -
                test 'explicitly inherited filters complements filters inherited from superclass' do
         
     | 
| 
       63 
     | 
    
         
            -
                  before_get, around_get, after_get = [], [], []
         
     | 
| 
       64 
     | 
    
         
            -
                  before_post, around_post, after_post = [], [], []
         
     | 
| 
       65 
     | 
    
         
            -
                  a = mock_controller {
         
     | 
| 
       66 
     | 
    
         
            -
                    before(:get) {before_get << :a}
         
     | 
| 
       67 
     | 
    
         
            -
                    around(:get) {|a| around_get << :a}
         
     | 
| 
       68 
     | 
    
         
            -
                    after(:get)  {after_get  << :a}
         
     | 
| 
       69 
     | 
    
         
            -
                  }
         
     | 
| 
       70 
     | 
    
         
            -
                  b = mock_controller {
         
     | 
| 
       71 
     | 
    
         
            -
                    before(:post) {before_post << :b}
         
     | 
| 
       72 
     | 
    
         
            -
                    around(:post) {|a| around_post << :b}
         
     | 
| 
       73 
     | 
    
         
            -
                    after(:post)  {after_post  << :b}
         
     | 
| 
       74 
     | 
    
         
            -
                  }
         
     | 
| 
       75 
     | 
    
         
            -
                  c = mock_controller(a) {
         
     | 
| 
       76 
     | 
    
         
            -
                    inherit :before, from: b
         
     | 
| 
       77 
     | 
    
         
            -
                    inherit :around, from: b
         
     | 
| 
       78 
     | 
    
         
            -
                    inherit :after, from: b
         
     | 
| 
       79 
     | 
    
         
            -
                  }
         
     | 
| 
       80 
     | 
    
         
            -
                  app(c)
         
     | 
| 
       81 
     | 
    
         
            -
                  get
         
     | 
| 
       82 
     | 
    
         
            -
                  assert([before_get, around_get, after_get]).all? {|a| a.include?(:a)}
         
     | 
| 
       83 
     | 
    
         
            -
                  post
         
     | 
| 
       84 
     | 
    
         
            -
                  assert([before_post, around_post, after_post]).all? {|a| a.include?(:b)}
         
     | 
| 
       85 
     | 
    
         
            -
                end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                it 'defined filters overrides filters inherited from superclass' do
         
     | 
| 
       88 
     | 
    
         
            -
                  before, around, after = [], [], []
         
     | 
| 
       89 
     | 
    
         
            -
                  a = mock_controller {
         
     | 
| 
       90 
     | 
    
         
            -
                    before(:get) {before << :a}
         
     | 
| 
       91 
     | 
    
         
            -
                    around(:get) {|a| around << :a}
         
     | 
| 
       92 
     | 
    
         
            -
                    after(:get)  {after  << :a}
         
     | 
| 
       93 
     | 
    
         
            -
                  }
         
     | 
| 
       94 
     | 
    
         
            -
                  b = mock_controller(a) {
         
     | 
| 
       95 
     | 
    
         
            -
                    before(:get) {before << :b}
         
     | 
| 
       96 
     | 
    
         
            -
                    after(:get)  {after  << :b}
         
     | 
| 
       97 
     | 
    
         
            -
                  }
         
     | 
| 
       98 
     | 
    
         
            -
                  app(b)
         
     | 
| 
       99 
     | 
    
         
            -
                  get
         
     | 
| 
       100 
     | 
    
         
            -
                  assert([before, after]).all? {|a| a == [:b]}
         
     | 
| 
       101 
     | 
    
         
            -
                  assert(around) == [:a]
         
     | 
| 
       102 
     | 
    
         
            -
                end
         
     | 
| 
       103 
     | 
    
         
            -
              end
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
              it 'defines filters for all requested methods if called without arguments' do
         
     | 
| 
       106 
     | 
    
         
            -
                before, around, after = [], [], []
         
     | 
| 
       107 
     | 
    
         
            -
                app mock_controller {
         
     | 
| 
       108 
     | 
    
         
            -
                  before() {before << requested_method}
         
     | 
| 
       109 
     | 
    
         
            -
                  around() {|a| around << requested_method}
         
     | 
| 
       110 
     | 
    
         
            -
                  after()  {after  << requested_method}
         
     | 
| 
       111 
     | 
    
         
            -
                }
         
     | 
| 
       112 
     | 
    
         
            -
                filters = [before, around, after]
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
                get
         
     | 
| 
       115 
     | 
    
         
            -
                assert(filters).all? {|a| a.include?(:get)}
         
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
                post
         
     | 
| 
       118 
     | 
    
         
            -
                assert(filters).all? {|a| a.include?(:post)}
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
                put
         
     | 
| 
       121 
     | 
    
         
            -
                assert(filters).all? {|a| a.include?(:put)}
         
     | 
| 
       122 
     | 
    
         
            -
             
     | 
| 
       123 
     | 
    
         
            -
                head
         
     | 
| 
       124 
     | 
    
         
            -
                assert(filters).all? {|a| a.include?(:head)}
         
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
                delete
         
     | 
| 
       127 
     | 
    
         
            -
                assert(filters).all? {|a| a.include?(:delete)}
         
     | 
| 
       128 
     | 
    
         
            -
              end
         
     | 
| 
       129 
     | 
    
         
            -
             
     | 
| 
       130 
     | 
    
         
            -
              it 'defines filters only for given requested method(s)' do
         
     | 
| 
       131 
     | 
    
         
            -
                before, around, after = [], [], []
         
     | 
| 
       132 
     | 
    
         
            -
                app mock_controller {
         
     | 
| 
       133 
     | 
    
         
            -
                  before(:get) {before << requested_method}
         
     | 
| 
       134 
     | 
    
         
            -
                  around(:put, :post) {|a| around << requested_method}
         
     | 
| 
       135 
     | 
    
         
            -
                  after(:delete) {after << requested_method}
         
     | 
| 
       136 
     | 
    
         
            -
                  def delete; end
         
     | 
| 
       137 
     | 
    
         
            -
                }
         
     | 
| 
       138 
     | 
    
         
            -
                get
         
     | 
| 
       139 
     | 
    
         
            -
                assert(before).include?(:get)
         
     | 
| 
       140 
     | 
    
         
            -
                assert([around, after]).none? {|a| a.include?(:get)}
         
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
                post
         
     | 
| 
       143 
     | 
    
         
            -
                assert(around).include?(:post)
         
     | 
| 
       144 
     | 
    
         
            -
                assert([before, after]).none? {|a| a.include?(:post)}
         
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
       146 
     | 
    
         
            -
                put
         
     | 
| 
       147 
     | 
    
         
            -
                assert(around).include?(:put)
         
     | 
| 
       148 
     | 
    
         
            -
                assert([before, after]).none? {|a| a.include?(:put)}
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
                delete
         
     | 
| 
       151 
     | 
    
         
            -
                assert(after).include?(:delete)
         
     | 
| 
       152 
     | 
    
         
            -
                assert([before, around]).none? {|a| a.include?(:delete)}
         
     | 
| 
       153 
     | 
    
         
            -
              end
         
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
              it 'creates a void filter if called without a block' do
         
     | 
| 
       156 
     | 
    
         
            -
                ctrl = mock_controller {
         
     | 
| 
       157 
     | 
    
         
            -
                  before(:get) {raise 'this should be overridden'}
         
     | 
| 
       158 
     | 
    
         
            -
                  before(:get)
         
     | 
| 
       159 
     | 
    
         
            -
                  def get; end
         
     | 
| 
       160 
     | 
    
         
            -
                }.initialize_controller
         
     | 
| 
       161 
     | 
    
         
            -
                app(ctrl)
         
     | 
| 
       162 
     | 
    
         
            -
                expect(ctrl).to_receive(:__before_get__)
         
     | 
| 
       163 
     | 
    
         
            -
                get
         
     | 
| 
       164 
     | 
    
         
            -
              end
         
     | 
| 
       165 
     | 
    
         
            -
             
     | 
| 
       166 
     | 
    
         
            -
              it 'it calls wildcard filters before specialized ones' do
         
     | 
| 
       167 
     | 
    
         
            -
                buffer = []
         
     | 
| 
       168 
     | 
    
         
            -
                app mock_controller {
         
     | 
| 
       169 
     | 
    
         
            -
                  # specialized filter, called only on GET requests
         
     | 
| 
       170 
     | 
    
         
            -
                  before(:get) {buffer << requested_method}
         
     | 
| 
       171 
     | 
    
         
            -
                  # wildcard filter, called on any requests
         
     | 
| 
       172 
     | 
    
         
            -
                  before {buffer << :*}
         
     | 
| 
       173 
     | 
    
         
            -
                }
         
     | 
| 
       174 
     | 
    
         
            -
                get
         
     | 
| 
       175 
     | 
    
         
            -
                assert(buffer) == [:*, :get]
         
     | 
| 
       176 
     | 
    
         
            -
              end
         
     | 
| 
       177 
     | 
    
         
            -
            end
         
     | 
    
        data/test/halt_test.rb
    DELETED
    
    | 
         @@ -1,73 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'setup'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            spec :HaltTest do
         
     | 
| 
       4 
     | 
    
         
            -
              def halt_app *args, &block
         
     | 
| 
       5 
     | 
    
         
            -
                app mock_controller {
         
     | 
| 
       6 
     | 
    
         
            -
                  define_method(:get) {
         
     | 
| 
       7 
     | 
    
         
            -
                    instance_exec(&block) if block
         
     | 
| 
       8 
     | 
    
         
            -
                    halt(*args)
         
     | 
| 
       9 
     | 
    
         
            -
                  }
         
     | 
| 
       10 
     | 
    
         
            -
                }
         
     | 
| 
       11 
     | 
    
         
            -
                get
         
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
              it 'is halting using current response if no args given' do
         
     | 
| 
       15 
     | 
    
         
            -
                halt_app {response.status = 222}
         
     | 
| 
       16 
     | 
    
         
            -
                assert(last_response.status) == 222
         
     | 
| 
       17 
     | 
    
         
            -
              end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
              it 'is setting status if a Integer arg given' do
         
     | 
| 
       20 
     | 
    
         
            -
                halt_app 222
         
     | 
| 
       21 
     | 
    
         
            -
                assert(last_response.status) == 222
         
     | 
| 
       22 
     | 
    
         
            -
              end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
              it 'is updating headers if a Hash arg given' do
         
     | 
| 
       25 
     | 
    
         
            -
                halt_app 'X' => 'Y'
         
     | 
| 
       26 
     | 
    
         
            -
                assert(last_response['X']) == 'Y'
         
     | 
| 
       27 
     | 
    
         
            -
              end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              it 'is sets  body if a no Array no Rack::Response no Hash no Integer arg given' do
         
     | 
| 
       30 
     | 
    
         
            -
                halt_app 'body'
         
     | 
| 
       31 
     | 
    
         
            -
                assert(last_response.body) == 'body'
         
     | 
| 
       32 
     | 
    
         
            -
              end
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
              it 'accepts status and headers' do
         
     | 
| 
       35 
     | 
    
         
            -
                halt_app 222, 'X' => 'Y'
         
     | 
| 
       36 
     | 
    
         
            -
                assert(last_response.status) == 222
         
     | 
| 
       37 
     | 
    
         
            -
                assert(last_response['X']) == 'Y'
         
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
              it 'accepts status, headers and body as separate arguments' do
         
     | 
| 
       41 
     | 
    
         
            -
                halt_app 222, 'body', 'X' => 'Y'
         
     | 
| 
       42 
     | 
    
         
            -
                assert(last_response.status) == 222
         
     | 
| 
       43 
     | 
    
         
            -
                assert(last_response['X']) == 'Y'
         
     | 
| 
       44 
     | 
    
         
            -
                assert(last_response.body) == 'body'
         
     | 
| 
       45 
     | 
    
         
            -
              end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
              it 'updates current response if an array given' do
         
     | 
| 
       48 
     | 
    
         
            -
                halt_app [222, {'X' => 'Y'}, 'body']
         
     | 
| 
       49 
     | 
    
         
            -
                assert(last_response.status) == 222
         
     | 
| 
       50 
     | 
    
         
            -
                assert(last_response['X']) == 'Y'
         
     | 
| 
       51 
     | 
    
         
            -
                assert(last_response.body) == 'body'
         
     | 
| 
       52 
     | 
    
         
            -
              end
         
     | 
| 
       53 
     | 
    
         
            -
             
     | 
| 
       54 
     | 
    
         
            -
              it 'ignores other arguments if an array given' do
         
     | 
| 
       55 
     | 
    
         
            -
                halt_app [222, {'X' => 'Y'}, 'body'], 400, {'X' => 'Z'}, 'altbody'
         
     | 
| 
       56 
     | 
    
         
            -
                assert(last_response.status) == 222
         
     | 
| 
       57 
     | 
    
         
            -
                assert(last_response['X']) == 'Y'
         
     | 
| 
       58 
     | 
    
         
            -
                assert(last_response.body) == 'body'
         
     | 
| 
       59 
     | 
    
         
            -
              end
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
     | 
    
         
            -
              it 'returns a fatal error unless given array\'s second element is a Hash' do
         
     | 
| 
       62 
     | 
    
         
            -
                halt_app [200, 'wrong headers', 'boby']
         
     | 
| 
       63 
     | 
    
         
            -
                assert(last_response.status) == 500
         
     | 
| 
       64 
     | 
    
         
            -
                assert(last_response.body) =~ /no implicit conversion of String into Hash/
         
     | 
| 
       65 
     | 
    
         
            -
              end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
              it 'halts right away ignoring other arguments if a Rack::Response passed as first argument' do
         
     | 
| 
       68 
     | 
    
         
            -
                halt_app Rack::Response.new('body', 222, {'X' => 'Y'}), 400, {'X' => 'Z'}, 'altbody'
         
     | 
| 
       69 
     | 
    
         
            -
                assert(last_response.status) == 222
         
     | 
| 
       70 
     | 
    
         
            -
                assert(last_response['X']) == 'Y'
         
     | 
| 
       71 
     | 
    
         
            -
                assert(last_response.body) == 'body'
         
     | 
| 
       72 
     | 
    
         
            -
              end
         
     | 
| 
       73 
     | 
    
         
            -
            end
         
     | 
    
        data/test/helpers_test.rb
    DELETED
    
    | 
         @@ -1,171 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'setup'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            spec :HelpersTest do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              def status_app(code, &block)
         
     | 
| 
       6 
     | 
    
         
            -
                code += 2 if [204, 205, 304].include? code
         
     | 
| 
       7 
     | 
    
         
            -
                block ||= proc { }
         
     | 
| 
       8 
     | 
    
         
            -
                app mock_controller {
         
     | 
| 
       9 
     | 
    
         
            -
                  define_method :get do
         
     | 
| 
       10 
     | 
    
         
            -
                    response.status = code
         
     | 
| 
       11 
     | 
    
         
            -
                    instance_eval(&block).inspect
         
     | 
| 
       12 
     | 
    
         
            -
                  end
         
     | 
| 
       13 
     | 
    
         
            -
                }
         
     | 
| 
       14 
     | 
    
         
            -
                get
         
     | 
| 
       15 
     | 
    
         
            -
              end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
              context 'status' do
         
     | 
| 
       18 
     | 
    
         
            -
                it 'sets the response status code' do
         
     | 
| 
       19 
     | 
    
         
            -
                  status_app 207
         
     | 
| 
       20 
     | 
    
         
            -
                  assert(last_response.status) == 207
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
              end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
              context 'not_found?' do
         
     | 
| 
       25 
     | 
    
         
            -
                it 'is true for status == 404' do
         
     | 
| 
       26 
     | 
    
         
            -
                  status_app(404) { not_found? }
         
     | 
| 
       27 
     | 
    
         
            -
                  assert(last_response.body) == 'true'
         
     | 
| 
       28 
     | 
    
         
            -
                end
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                it 'is false for status gt 404' do
         
     | 
| 
       31 
     | 
    
         
            -
                  status_app(405) { not_found? }
         
     | 
| 
       32 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       33 
     | 
    
         
            -
                end
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                it 'is false for status lt 404' do
         
     | 
| 
       36 
     | 
    
         
            -
                  status_app(403) { not_found? }
         
     | 
| 
       37 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       38 
     | 
    
         
            -
                end
         
     | 
| 
       39 
     | 
    
         
            -
              end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
              context 'informational?' do
         
     | 
| 
       42 
     | 
    
         
            -
                it 'is true for 1xx status' do
         
     | 
| 
       43 
     | 
    
         
            -
                  status_app(100 + rand(100)) { informational? }
         
     | 
| 
       44 
     | 
    
         
            -
                  assert(last_response.body) == 'true'
         
     | 
| 
       45 
     | 
    
         
            -
                end
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                it 'is false for status > 199' do
         
     | 
| 
       48 
     | 
    
         
            -
                  status_app(200 + rand(400)) { informational? }
         
     | 
| 
       49 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       50 
     | 
    
         
            -
                end
         
     | 
| 
       51 
     | 
    
         
            -
              end
         
     | 
| 
       52 
     | 
    
         
            -
             
     | 
| 
       53 
     | 
    
         
            -
              context 'success?' do
         
     | 
| 
       54 
     | 
    
         
            -
                it 'is true for 2xx status' do
         
     | 
| 
       55 
     | 
    
         
            -
                  status_app(200 + rand(100)) { success? }
         
     | 
| 
       56 
     | 
    
         
            -
                  assert(last_response.body) == 'true'
         
     | 
| 
       57 
     | 
    
         
            -
                end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                it 'is false for status < 200' do
         
     | 
| 
       60 
     | 
    
         
            -
                  status_app(100 + rand(100)) { success? }
         
     | 
| 
       61 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       62 
     | 
    
         
            -
                end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                it 'is false for status > 299' do
         
     | 
| 
       65 
     | 
    
         
            -
                  status_app(300 + rand(300)) { success? }
         
     | 
| 
       66 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       67 
     | 
    
         
            -
                end
         
     | 
| 
       68 
     | 
    
         
            -
              end
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
              context 'redirect?' do
         
     | 
| 
       71 
     | 
    
         
            -
                it 'is true for 3xx status' do
         
     | 
| 
       72 
     | 
    
         
            -
                  status_app(300 + rand(100)) { redirect? }
         
     | 
| 
       73 
     | 
    
         
            -
                  assert(last_response.body) == 'true'
         
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                it 'is false for status < 300' do
         
     | 
| 
       77 
     | 
    
         
            -
                  status_app(200 + rand(100)) { redirect? }
         
     | 
| 
       78 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       79 
     | 
    
         
            -
                end
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
                it 'is false for status > 399' do
         
     | 
| 
       82 
     | 
    
         
            -
                  status_app(400 + rand(200)) { redirect? }
         
     | 
| 
       83 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       84 
     | 
    
         
            -
                end
         
     | 
| 
       85 
     | 
    
         
            -
              end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
              context 'client_error?' do
         
     | 
| 
       88 
     | 
    
         
            -
                it 'is true for 4xx status' do
         
     | 
| 
       89 
     | 
    
         
            -
                  status_app(400 + rand(100)) { client_error? }
         
     | 
| 
       90 
     | 
    
         
            -
                  assert(last_response.body) == 'true'
         
     | 
| 
       91 
     | 
    
         
            -
                end
         
     | 
| 
       92 
     | 
    
         
            -
             
     | 
| 
       93 
     | 
    
         
            -
                it 'is false for status < 400' do
         
     | 
| 
       94 
     | 
    
         
            -
                  status_app(200 + rand(200)) { client_error? }
         
     | 
| 
       95 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       96 
     | 
    
         
            -
                end
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
                it 'is false for status > 499' do
         
     | 
| 
       99 
     | 
    
         
            -
                  status_app(500 + rand(100)) { client_error? }
         
     | 
| 
       100 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       101 
     | 
    
         
            -
                end
         
     | 
| 
       102 
     | 
    
         
            -
              end
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
              context 'server_error?' do
         
     | 
| 
       105 
     | 
    
         
            -
                it 'is true for 5xx status' do
         
     | 
| 
       106 
     | 
    
         
            -
                  status_app(500 + rand(100)) { server_error? }
         
     | 
| 
       107 
     | 
    
         
            -
                  assert(last_response.body) == 'true'
         
     | 
| 
       108 
     | 
    
         
            -
                end
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
                it 'is false for status < 500' do
         
     | 
| 
       111 
     | 
    
         
            -
                  status_app(200 + rand(300)) { server_error? }
         
     | 
| 
       112 
     | 
    
         
            -
                  assert(last_response.body) == 'false'
         
     | 
| 
       113 
     | 
    
         
            -
                end
         
     | 
| 
       114 
     | 
    
         
            -
              end
         
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
              context 'body' do
         
     | 
| 
       117 
     | 
    
         
            -
                it 'takes a block for deferred body generation' do
         
     | 
| 
       118 
     | 
    
         
            -
                  app mock_controller {
         
     | 
| 
       119 
     | 
    
         
            -
                    define_method(:get) { response.body = -> { 'Hello World' } }
         
     | 
| 
       120 
     | 
    
         
            -
                  }
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
                  get
         
     | 
| 
       123 
     | 
    
         
            -
                  assert(last_response.body) == 'Hello World'
         
     | 
| 
       124 
     | 
    
         
            -
                end
         
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
                it 'takes a String, Array, or other object responding to #each' do
         
     | 
| 
       127 
     | 
    
         
            -
                  app mock_controller {
         
     | 
| 
       128 
     | 
    
         
            -
                    define_method(:get) { response.body = 'Hello World' }
         
     | 
| 
       129 
     | 
    
         
            -
                  }
         
     | 
| 
       130 
     | 
    
         
            -
             
     | 
| 
       131 
     | 
    
         
            -
                  get
         
     | 
| 
       132 
     | 
    
         
            -
                  assert(last_response.body) == 'Hello World'
         
     | 
| 
       133 
     | 
    
         
            -
                end
         
     | 
| 
       134 
     | 
    
         
            -
              end
         
     | 
| 
       135 
     | 
    
         
            -
             
     | 
| 
       136 
     | 
    
         
            -
              context 'headers' do
         
     | 
| 
       137 
     | 
    
         
            -
                it 'sets headers on the response object when given a Hash' do
         
     | 
| 
       138 
     | 
    
         
            -
                  app mock_controller {
         
     | 
| 
       139 
     | 
    
         
            -
                    define_method(:get) {headers 'X-Foo' => 'bar', 'X-Baz' => 'bling'}
         
     | 
| 
       140 
     | 
    
         
            -
                  }
         
     | 
| 
       141 
     | 
    
         
            -
             
     | 
| 
       142 
     | 
    
         
            -
                  get
         
     | 
| 
       143 
     | 
    
         
            -
                  assert(last_response).ok?
         
     | 
| 
       144 
     | 
    
         
            -
                  assert(last_response['X-Foo']) == 'bar'
         
     | 
| 
       145 
     | 
    
         
            -
                  assert(last_response['X-Baz']) == 'bling'
         
     | 
| 
       146 
     | 
    
         
            -
                end
         
     | 
| 
       147 
     | 
    
         
            -
             
     | 
| 
       148 
     | 
    
         
            -
                it 'returns the response headers hash when no hash provided' do
         
     | 
| 
       149 
     | 
    
         
            -
                  app mock_controller {
         
     | 
| 
       150 
     | 
    
         
            -
                    define_method(:get) {headers['X-Foo'] = 'bar'}
         
     | 
| 
       151 
     | 
    
         
            -
                  }
         
     | 
| 
       152 
     | 
    
         
            -
             
     | 
| 
       153 
     | 
    
         
            -
                  get
         
     | 
| 
       154 
     | 
    
         
            -
                  assert(last_response).ok?
         
     | 
| 
       155 
     | 
    
         
            -
                  assert(last_response['X-Foo']) == 'bar'
         
     | 
| 
       156 
     | 
    
         
            -
                end
         
     | 
| 
       157 
     | 
    
         
            -
              end
         
     | 
| 
       158 
     | 
    
         
            -
             
     | 
| 
       159 
     | 
    
         
            -
              context 'back' do
         
     | 
| 
       160 
     | 
    
         
            -
                it "makes redirecting back pretty" do
         
     | 
| 
       161 
     | 
    
         
            -
                  app mock_controller('/foo') {
         
     | 
| 
       162 
     | 
    
         
            -
                    def get; redirect back end
         
     | 
| 
       163 
     | 
    
         
            -
                  }
         
     | 
| 
       164 
     | 
    
         
            -
             
     | 
| 
       165 
     | 
    
         
            -
                  env['HTTP_REFERER'] = 'http://github.com'
         
     | 
| 
       166 
     | 
    
         
            -
                  get '/foo'
         
     | 
| 
       167 
     | 
    
         
            -
                  assert(last_response).redirect?
         
     | 
| 
       168 
     | 
    
         
            -
                  assert(last_response.location) == "http://github.com"
         
     | 
| 
       169 
     | 
    
         
            -
                end
         
     | 
| 
       170 
     | 
    
         
            -
              end
         
     | 
| 
       171 
     | 
    
         
            -
            end
         
     | 
    
        data/test/middleware_test.rb
    DELETED
    
    | 
         @@ -1,57 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'setup'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            spec :Middleware do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              buff = []
         
     | 
| 
       6 
     | 
    
         
            -
              ware = Class.new {
         
     | 
| 
       7 
     | 
    
         
            -
                def initialize(*); yield end
         
     | 
| 
       8 
     | 
    
         
            -
                def call(*); [200, {}, []] end
         
     | 
| 
       9 
     | 
    
         
            -
              }
         
     | 
| 
       10 
     | 
    
         
            -
              before { buff.clear }
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
              it 'inherits middleware from superclass' do
         
     | 
| 
       13 
     | 
    
         
            -
                a = mock_controller {
         
     | 
| 
       14 
     | 
    
         
            -
                  use(ware) {buff << :x}
         
     | 
| 
       15 
     | 
    
         
            -
                  use(ware) {buff << :y}
         
     | 
| 
       16 
     | 
    
         
            -
                }
         
     | 
| 
       17 
     | 
    
         
            -
                b = mock_controller(a) {
         
     | 
| 
       18 
     | 
    
         
            -
                  def get; end
         
     | 
| 
       19 
     | 
    
         
            -
                }
         
     | 
| 
       20 
     | 
    
         
            -
                app mock_app(b)
         
     | 
| 
       21 
     | 
    
         
            -
                get
         
     | 
| 
       22 
     | 
    
         
            -
                assert(buff) == [:y, :x]
         
     | 
| 
       23 
     | 
    
         
            -
              end
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
              it 'complements middleware inherited from superclass' do
         
     | 
| 
       26 
     | 
    
         
            -
                a = mock_controller {
         
     | 
| 
       27 
     | 
    
         
            -
                  use(ware) {buff << 1}
         
     | 
| 
       28 
     | 
    
         
            -
                  use(ware) {buff << 2}
         
     | 
| 
       29 
     | 
    
         
            -
                }
         
     | 
| 
       30 
     | 
    
         
            -
                b = mock_controller {
         
     | 
| 
       31 
     | 
    
         
            -
                  use(ware) { buff << 3 }
         
     | 
| 
       32 
     | 
    
         
            -
                  inherit :middleware, from: a
         
     | 
| 
       33 
     | 
    
         
            -
                  def get; end
         
     | 
| 
       34 
     | 
    
         
            -
                }
         
     | 
| 
       35 
     | 
    
         
            -
                app mock_app(b)
         
     | 
| 
       36 
     | 
    
         
            -
                get
         
     | 
| 
       37 
     | 
    
         
            -
                assert(buff) == [3, 2, 1]
         
     | 
| 
       38 
     | 
    
         
            -
              end
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
              it 'uses `inherit` to complement middleware inherited from superclass' do
         
     | 
| 
       41 
     | 
    
         
            -
                a = mock_controller {
         
     | 
| 
       42 
     | 
    
         
            -
                  use(ware) {buff << :x}
         
     | 
| 
       43 
     | 
    
         
            -
                  use(ware) {buff << :y}
         
     | 
| 
       44 
     | 
    
         
            -
                }
         
     | 
| 
       45 
     | 
    
         
            -
                b = mock_controller(a) {
         
     | 
| 
       46 
     | 
    
         
            -
                  use(ware) {buff << :z}
         
     | 
| 
       47 
     | 
    
         
            -
                  def get; end
         
     | 
| 
       48 
     | 
    
         
            -
                }
         
     | 
| 
       49 
     | 
    
         
            -
                c = mock_controller(a) {
         
     | 
| 
       50 
     | 
    
         
            -
                  inherit :middleware, from: b
         
     | 
| 
       51 
     | 
    
         
            -
                  def get; end
         
     | 
| 
       52 
     | 
    
         
            -
                }
         
     | 
| 
       53 
     | 
    
         
            -
                app mock_app(c)
         
     | 
| 
       54 
     | 
    
         
            -
                get
         
     | 
| 
       55 
     | 
    
         
            -
                assert(buff) == [:y, :x, :z]
         
     | 
| 
       56 
     | 
    
         
            -
              end
         
     | 
| 
       57 
     | 
    
         
            -
            end
         
     |