bbq 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/CHANGELOG +7 -1
- data/README.md +2 -2
- data/bbq.gemspec +1 -1
- data/lib/bbq/test_client.rb +6 -5
- data/lib/bbq/version.rb +1 -1
- data/test/dummy/app/controllers/home_controller.rb +4 -0
- data/test/dummy/config/routes.rb +1 -0
- data/test/test_helper.rb +5 -0
- data/test/unit/bbq_session_pool_test.rb +1 -1
- data/test/unit/bbq_test_client_test.rb +28 -0
- data/test/unit/bbq_test_unit_test.rb +8 -1
- data/test/unit/bbq_test_user_test.rb +2 -2
- metadata +9 -7
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 008a8ef2d4f50633903d790c99a6d01d7a0d4e99
         | 
| 4 | 
            +
              data.tar.gz: 0b56fa74ab51b1175d52a2f43baf5950259d9a9c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 2b55f0cd8ef02a7e9bb4e93c3f3145b2c6d80cbaeec088669baeefdbc063989202ab3338388bad815572fb2de6d9285fee8287ff276f8afaddf3fd14afc8db71
         | 
| 7 | 
            +
              data.tar.gz: 1ade338defca2ce4f35c355d9a3c940f5906b971e8ec07f0f3ddfec277408d0e180919eae34e76bec0fcd0afd8479cceebd52f5e048ab5ded8d74a9b7661cc05
         | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/CHANGELOG
    CHANGED
    
    | @@ -1,4 +1,10 @@ | |
| 1 | 
            -
            0.2. | 
| 1 | 
            +
            0.2.1 / 2013-08-22
         | 
| 2 | 
            +
            ==================
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            	* bugfix: Bbq::TestClient propagates NoMethodErrors from the controller of
         | 
| 5 | 
            +
            	tested app instead of rising unsupported method errors.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            0.2.0 / 2013-01-06
         | 
| 2 8 | 
             
            ==================
         | 
| 3 9 |  | 
| 4 10 | 
             
            	* Dropped support for Ruby 1.8.7
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            # BBQ
         | 
| 2 2 |  | 
| 3 | 
            -
            [](http://travis-ci.org/drugpl/bbq) [](https://gemnasium.com/drugpl/bbq) [](https://codeclimate.com/github/drugpl/bbq) [](http://badge.fury.io/rb/bbq) | 
| 3 | 
            +
            [](http://travis-ci.org/drugpl/bbq) [](https://gemnasium.com/drugpl/bbq) [](https://codeclimate.com/github/drugpl/bbq) [](http://badge.fury.io/rb/bbq)
         | 
| 4 4 |  | 
| 5 5 | 
             
            Object oriented acceptance testing using personas.
         | 
| 6 6 |  | 
| @@ -16,7 +16,7 @@ Object oriented acceptance testing using personas. | |
| 16 16 | 
             
            First, add BBQ to your apps `Gemfile`:
         | 
| 17 17 |  | 
| 18 18 | 
             
            ```ruby
         | 
| 19 | 
            -
            gem "bbq", "0.2. | 
| 19 | 
            +
            gem "bbq", "0.2.1"
         | 
| 20 20 | 
             
            ```
         | 
| 21 21 |  | 
| 22 22 | 
             
            Run install generator:
         | 
    
        data/bbq.gemspec
    CHANGED
    
    | @@ -28,5 +28,5 @@ Gem::Specification.new do |s| | |
| 28 28 | 
             
              s.add_development_dependency "devise",      ">= 1.4.0"
         | 
| 29 29 | 
             
              s.add_development_dependency "sinatra",     ">= 1.2.6"
         | 
| 30 30 | 
             
              s.add_development_dependency "rspec-rails", "~> 2.6"
         | 
| 31 | 
            -
              s.add_development_dependency "rails",       " | 
| 31 | 
            +
              s.add_development_dependency "rails",       "~> 3.0"
         | 
| 32 32 | 
             
            end
         | 
    
        data/lib/bbq/test_client.rb
    CHANGED
    
    | @@ -15,18 +15,19 @@ module Bbq | |
| 15 15 | 
             
                HTTP_METHODS.each do |method|
         | 
| 16 16 | 
             
                  class_eval <<-RUBY
         | 
| 17 17 | 
             
                    def #{method}(path, params = {}, headers = {})
         | 
| 18 | 
            -
                       | 
| 18 | 
            +
                      unless driver.respond_to? :#{method}
         | 
| 19 | 
            +
                        raise UnsupportedMethodError, "Your driver does not support #{method.upcase} method"
         | 
| 20 | 
            +
                      end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                      response = driver.#{method}(path, params, default_headers.merge(headers))
         | 
| 19 23 | 
             
                      parsed_response = parse_response(response)
         | 
| 20 24 | 
             
                      yield parsed_response if block_given?
         | 
| 21 25 | 
             
                      parsed_response
         | 
| 22 | 
            -
                    rescue NoMethodError
         | 
| 23 | 
            -
                      raise UnsupportedMethodError, "Your driver does not support #{method.upcase} method"
         | 
| 24 26 | 
             
                    end
         | 
| 25 27 | 
             
                  RUBY
         | 
| 26 28 | 
             
                end
         | 
| 27 29 |  | 
| 28 30 | 
             
                protected
         | 
| 29 | 
            -
             | 
| 30 31 | 
             
                def app
         | 
| 31 32 | 
             
                  @options[:app] || Bbq.app
         | 
| 32 33 | 
             
                end
         | 
| @@ -71,7 +72,7 @@ module Bbq | |
| 71 72 | 
             
                        k = k.upcase.gsub("-", "_")
         | 
| 72 73 | 
             
                        k = "HTTP_#{k}" unless ["CONTENT_TYPE", "CONTENT_LENGTH"].include?(k)
         | 
| 73 74 | 
             
                        { k => v }
         | 
| 74 | 
            -
                      end.inject(:merge)
         | 
| 75 | 
            +
                      end.inject({}, :merge)
         | 
| 75 76 | 
             
                    end
         | 
| 76 77 | 
             
                  end
         | 
| 77 78 |  | 
    
        data/lib/bbq/version.rb
    CHANGED
    
    
    
        data/test/dummy/config/routes.rb
    CHANGED
    
    
    
        data/test/test_helper.rb
    CHANGED
    
    | @@ -13,5 +13,10 @@ ActiveRecord::Base.establish_connection("test") | |
| 13 13 | 
             
            ActiveRecord::Migration.verbose = false
         | 
| 14 14 | 
             
            load(File.expand_path("../dummy/db/schema.rb", __FILE__))
         | 
| 15 15 |  | 
| 16 | 
            +
            require 'capybara'
         | 
| 17 | 
            +
            Capybara.register_driver :rack_test_the_other do |app|
         | 
| 18 | 
            +
              Capybara::RackTest::Driver.new(app)
         | 
| 19 | 
            +
            end
         | 
| 20 | 
            +
             | 
| 16 21 | 
             
            # Load support files
         | 
| 17 22 | 
             
            Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
         | 
| @@ -34,7 +34,7 @@ class BbqSessionPoolTest < Test::Unit::TestCase | |
| 34 34 | 
             
              def test_pool_returns_correct_driver
         | 
| 35 35 | 
             
                pool = Bbq::Session::Pool.new
         | 
| 36 36 | 
             
                pool.next(:rack_test)
         | 
| 37 | 
            -
                pool.next(: | 
| 37 | 
            +
                pool.next(:rack_test_the_other)
         | 
| 38 38 | 
             
                pool.release
         | 
| 39 39 |  | 
| 40 40 | 
             
                assert_equal :rack_test, pool.next(:rack_test).mode
         | 
| @@ -0,0 +1,28 @@ | |
| 1 | 
            +
            require 'test_helper'
         | 
| 2 | 
            +
            require 'bbq/test_client'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            class BbqTestClientTest < Test::Unit::TestCase
         | 
| 5 | 
            +
              def test_rack_test_to_env_headers_for_empty_hash
         | 
| 6 | 
            +
                test_client = Bbq::TestClient::RackTest.new(:app)
         | 
| 7 | 
            +
                assert_equal({}, test_client.to_env_headers({}))
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def test_rack_test_to_env_headers_for_content_type_or_content_length
         | 
| 11 | 
            +
                test_client = Bbq::TestClient::RackTest.new(:app)
         | 
| 12 | 
            +
                result = test_client.to_env_headers({
         | 
| 13 | 
            +
                  "content-type" => "text/plain",
         | 
| 14 | 
            +
                  "content-length" => "40"
         | 
| 15 | 
            +
                })
         | 
| 16 | 
            +
                assert_includes(result.keys, "CONTENT_TYPE")
         | 
| 17 | 
            +
                assert_includes(result.keys, "CONTENT_LENGTH")
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
              def test_rack_test_to_env_headers_for_other_headers
         | 
| 21 | 
            +
                test_client = Bbq::TestClient::RackTest.new(:app)
         | 
| 22 | 
            +
                result = test_client.to_env_headers({
         | 
| 23 | 
            +
                  "silly-header" => "silly-value"
         | 
| 24 | 
            +
                })
         | 
| 25 | 
            +
                assert_includes(result.keys, "HTTP_SILLY_HEADER")
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
| 28 | 
            +
             | 
| @@ -136,6 +136,13 @@ class BbqTestUnitTest < Test::Unit::TestCase | |
| 136 136 | 
             
                      assert_equal 7, response.body["colors"]
         | 
| 137 137 | 
             
                    end
         | 
| 138 138 |  | 
| 139 | 
            +
                    scenario 'client should propagate errors from the app' do
         | 
| 140 | 
            +
                      assert_raise NoMethodError do
         | 
| 141 | 
            +
                        client = Bbq::TestClient.new
         | 
| 142 | 
            +
                        client.get "/uh_oh"
         | 
| 143 | 
            +
                      end
         | 
| 144 | 
            +
                    end
         | 
| 145 | 
            +
             | 
| 139 146 | 
             
                    scenario 'client using driver with unsupported method' do
         | 
| 140 147 | 
             
                      class CustomDriverClient < Bbq::TestClient
         | 
| 141 148 | 
             
                        def driver
         | 
| @@ -152,7 +159,7 @@ class BbqTestUnitTest < Test::Unit::TestCase | |
| 152 159 | 
             
                TESTUNIT
         | 
| 153 160 |  | 
| 154 161 | 
             
                run_cmd 'ruby -Ilib -Itest/dummy/test test/dummy/test/acceptance/api_test.rb'
         | 
| 155 | 
            -
                assert_match  | 
| 162 | 
            +
                assert_match /\d+ tests, \d+ assertions, 0 failures, 0 errors/, output
         | 
| 156 163 | 
             
              end
         | 
| 157 164 |  | 
| 158 165 | 
             
              def test_session_pool
         | 
| @@ -28,8 +28,8 @@ class BbqTestUserTest < Test::Unit::TestCase | |
| 28 28 | 
             
              end
         | 
| 29 29 |  | 
| 30 30 | 
             
              def test_driver_option
         | 
| 31 | 
            -
                user = TestUser.new(:driver => : | 
| 32 | 
            -
                assert_equal : | 
| 31 | 
            +
                user = TestUser.new(:driver => :rack_test_the_other)
         | 
| 32 | 
            +
                assert_equal :rack_test_the_other, user.page.mode
         | 
| 33 33 | 
             
              end
         | 
| 34 34 |  | 
| 35 35 | 
             
              def test_roles
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: bbq
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - DRUG - Dolnośląska Grupa Użytkowników Ruby
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2013- | 
| 11 | 
            +
            date: 2013-08-22 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: capybara
         | 
| @@ -126,16 +126,16 @@ dependencies: | |
| 126 126 | 
             
              name: rails
         | 
| 127 127 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 128 128 | 
             
                requirements:
         | 
| 129 | 
            -
                - -  | 
| 129 | 
            +
                - - ~>
         | 
| 130 130 | 
             
                  - !ruby/object:Gem::Version
         | 
| 131 | 
            -
                    version: 3.0 | 
| 131 | 
            +
                    version: '3.0'
         | 
| 132 132 | 
             
              type: :development
         | 
| 133 133 | 
             
              prerelease: false
         | 
| 134 134 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 135 135 | 
             
                requirements:
         | 
| 136 | 
            -
                - -  | 
| 136 | 
            +
                - - ~>
         | 
| 137 137 | 
             
                  - !ruby/object:Gem::Version
         | 
| 138 | 
            -
                    version: 3.0 | 
| 138 | 
            +
                    version: '3.0'
         | 
| 139 139 | 
             
            description: Objected oriented acceptance testing for Rails, using personas.
         | 
| 140 140 | 
             
            email:
         | 
| 141 141 | 
             
            - bbq@drug.org.pl
         | 
| @@ -219,6 +219,7 @@ files: | |
| 219 219 | 
             
            - test/unit/bbq_install_generator_test.rb
         | 
| 220 220 | 
             
            - test/unit/bbq_rspec_test.rb
         | 
| 221 221 | 
             
            - test/unit/bbq_session_pool_test.rb
         | 
| 222 | 
            +
            - test/unit/bbq_test_client_test.rb
         | 
| 222 223 | 
             
            - test/unit/bbq_test_generator_test.rb
         | 
| 223 224 | 
             
            - test/unit/bbq_test_unit_test.rb
         | 
| 224 225 | 
             
            - test/unit/bbq_test_user_test.rb
         | 
| @@ -243,7 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 243 244 | 
             
                  version: '0'
         | 
| 244 245 | 
             
            requirements: []
         | 
| 245 246 | 
             
            rubyforge_project: bbq
         | 
| 246 | 
            -
            rubygems_version: 2.0. | 
| 247 | 
            +
            rubygems_version: 2.0.3
         | 
| 247 248 | 
             
            signing_key: 
         | 
| 248 249 | 
             
            specification_version: 4
         | 
| 249 250 | 
             
            summary: Objected oriented acceptance testing for Rails, using personas.
         | 
| @@ -287,6 +288,7 @@ test_files: | |
| 287 288 | 
             
            - test/unit/bbq_install_generator_test.rb
         | 
| 288 289 | 
             
            - test/unit/bbq_rspec_test.rb
         | 
| 289 290 | 
             
            - test/unit/bbq_session_pool_test.rb
         | 
| 291 | 
            +
            - test/unit/bbq_test_client_test.rb
         | 
| 290 292 | 
             
            - test/unit/bbq_test_generator_test.rb
         | 
| 291 293 | 
             
            - test/unit/bbq_test_unit_test.rb
         | 
| 292 294 | 
             
            - test/unit/bbq_test_user_test.rb
         |