omghax-test_rails 1.0.0 → 1.1.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.
- data/History.txt +6 -0
- data/Manifest.txt +1 -0
- data/README.txt +60 -44
- data/lib/test/rails.rb +5 -1
- data/lib/test/rails/controller_test_case.rb +0 -3
- data/lib/test/rails/functional_test_case.rb +2 -2
- data/lib/test/rails/helper_test_case.rb +0 -3
- data/lib/test/rails/test_case.rb +1 -5
- data/lib/test/rails/version.rb +1 -1
- data/lib/test/rails/view_test_case.rb +2 -5
- data/test/test_help.rb +4 -1
- metadata +4 -4
    
        data/History.txt
    CHANGED
    
    
    
        data/Manifest.txt
    CHANGED
    
    
    
        data/README.txt
    CHANGED
    
    | @@ -1,68 +1,84 @@ | |
| 1 | 
            -
            =  | 
| 1 | 
            +
            = Test::Rails
         | 
| 2 2 |  | 
| 3 3 | 
             
            * http://www.zenspider.com/ZSS/Products/ZenTest/
         | 
| 4 4 | 
             
            * http://rubyforge.org/projects/zentest/
         | 
| 5 5 | 
             
            * mailto:ryand-ruby@zenspider.com
         | 
| 6 6 |  | 
| 7 | 
            +
            Test::Rails was dropped from ZenTest for the 4.0 release, but there
         | 
| 8 | 
            +
            are still a lot of tests that use it.  This is Dray Lacy's extraction of
         | 
| 9 | 
            +
            Test::Rails from ZenTest, updated to work with Rails 2.3.2 (at least
         | 
| 10 | 
            +
            partially).
         | 
| 11 | 
            +
             | 
| 7 12 | 
             
            == DESCRIPTION
         | 
| 8 13 |  | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 14 | 
            +
            Test::Rails helps you build industrial-strength Rails code.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            == FEATURES
         | 
| 11 17 |  | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 18 | 
            +
            * Test your controllers and views in isolation from each other.
         | 
| 19 | 
            +
            * Test helper methods in isolation from your controllers, including those that
         | 
| 20 | 
            +
              use routing.
         | 
| 21 | 
            +
            * Test::Rails provides some helpful assertions for dealing with collections,
         | 
| 22 | 
            +
              like #assert_empty and #assert_includes, as well as negated versions
         | 
| 23 | 
            +
              (#deny_empty, #deny_includes, etc.)
         | 
| 15 24 |  | 
| 16 | 
            -
             | 
| 17 | 
            -
            actual results and allow you to quickly see exactly what is wrong.
         | 
| 25 | 
            +
            == SYNOPSYS
         | 
| 18 26 |  | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
            corresponding dependent tests.
         | 
| 27 | 
            +
              # Typical View Test
         | 
| 28 | 
            +
              class RouteViewTest < Test::Rails::ViewTestCase
         | 
| 22 29 |  | 
| 23 | 
            -
             | 
| 24 | 
            -
            for compatibility checking! Use multiruby_setup to manage your
         | 
| 25 | 
            -
            installed versions.
         | 
| 30 | 
            +
                fixtures :users, :routes, :points, :photos
         | 
| 26 31 |  | 
| 27 | 
            -
             | 
| 32 | 
            +
                def test_delete
         | 
| 33 | 
            +
                  # Set up instance variables for template
         | 
| 34 | 
            +
                  assigns[:loggedin_user] = users(:herbert)
         | 
| 35 | 
            +
                  assigns[:route] = routes(:work)
         | 
| 28 36 |  | 
| 29 | 
            -
             | 
| 37 | 
            +
                  # render template for the delete action in RouteController
         | 
| 38 | 
            +
                  render
         | 
| 30 39 |  | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 40 | 
            +
                  # assert that there's a form with an action of "/route/destroy"
         | 
| 41 | 
            +
                  assert_form form_url, :post do
         | 
| 42 | 
            +
                    # with a hidden id field
         | 
| 43 | 
            +
                    assert_input :hidden, :id
         | 
| 44 | 
            +
                    # And a submit button that says 'Delete!'
         | 
| 45 | 
            +
                    assert_submit 'Delete!'
         | 
| 46 | 
            +
                  end
         | 
| 33 47 |  | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
            package. Writing those tests found 4 bugs I had no idea existed.
         | 
| 48 | 
            +
                  # And a link back to the route so you don't delete it
         | 
| 49 | 
            +
                  assert_links_to "/route/show/#{routes(:work).id}", 'No, I do not!'
         | 
| 50 | 
            +
                end
         | 
| 38 51 |  | 
| 39 | 
            -
             | 
| 40 | 
            -
            tests, allowing for very rapid development of both tests and
         | 
| 41 | 
            -
            implementation.
         | 
| 52 | 
            +
              end
         | 
| 42 53 |  | 
| 43 | 
            -
             | 
| 54 | 
            +
              # Typical Layout Test
         | 
| 55 | 
            +
              require 'test/test_helper'
         | 
| 44 56 |  | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
            * Test against multiple versions with multiruby.
         | 
| 49 | 
            -
            * Enhance and automatically audit your rails tests using Test::Rails.
         | 
| 50 | 
            -
            * Includes a LinuxJournal article on testing with ZenTest written by Pat Eyler.
         | 
| 51 | 
            -
            * See also: http://blog.zenspider.com/archives/zentest/
         | 
| 52 | 
            -
            * See also: http://blog.segment7.net/articles/category/zentest
         | 
| 57 | 
            +
              # Create a dummy controller for layout views. This lets the setup use the
         | 
| 58 | 
            +
              # right path with minimum fuss.
         | 
| 59 | 
            +
              class LayoutsController < ApplicationController; end
         | 
| 53 60 |  | 
| 54 | 
            -
             | 
| 61 | 
            +
              class LayoutsViewTest < Test::Rails::ViewTestCase
         | 
| 55 62 |  | 
| 56 | 
            -
             | 
| 63 | 
            +
                fixtures :users, :routes, :points, :photos
         | 
| 57 64 |  | 
| 58 | 
            -
             | 
| 65 | 
            +
                def test_default
         | 
| 66 | 
            +
                  # Template set-up
         | 
| 67 | 
            +
                  @request.request_uri = '/foo'
         | 
| 68 | 
            +
                  assigns[:action_title] = 'Hello & Goodbye'
         | 
| 59 69 |  | 
| 60 | 
            -
             | 
| 70 | 
            +
                  # Render an empty string with the 'application' layout.
         | 
| 71 | 
            +
                  render :text => '', :layout => 'application'
         | 
| 61 72 |  | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 73 | 
            +
                  # Assert content just like a regular view test.
         | 
| 74 | 
            +
                  assert_links_to '/', 'Home'
         | 
| 75 | 
            +
                  assert_links_to '/user', 'Login'
         | 
| 76 | 
            +
                  deny_links_to '/user/logout', 'Logout'
         | 
| 77 | 
            +
                  assert_title 'Hello & Goodbye'
         | 
| 78 | 
            +
                  assert_h 1, 'Hello & Goodbye'
         | 
| 79 | 
            +
                end
         | 
| 64 80 |  | 
| 65 | 
            -
               | 
| 81 | 
            +
              end
         | 
| 66 82 |  | 
| 67 83 | 
             
            == REQUIREMENTS
         | 
| 68 84 |  | 
| @@ -70,18 +86,18 @@ implementation. | |
| 70 86 | 
             
            * Test::Unit or miniunit
         | 
| 71 87 | 
             
            * Hoe
         | 
| 72 88 | 
             
            * rubygems
         | 
| 73 | 
            -
            *  | 
| 89 | 
            +
            * Rails 2.3.2 (for older versions of Rails, use Test::Rails 1.0.0)
         | 
| 74 90 |  | 
| 75 91 | 
             
            == INSTALL
         | 
| 76 92 |  | 
| 77 93 | 
             
            Using Rubygems:
         | 
| 78 94 |  | 
| 79 | 
            -
            * sudo gem install  | 
| 95 | 
            +
            * sudo gem install omghax-test_rails -s http://gems.github.com
         | 
| 80 96 |  | 
| 81 97 | 
             
            Using Rake:
         | 
| 82 98 |  | 
| 83 99 | 
             
            * rake test
         | 
| 84 | 
            -
            * sudo rake  | 
| 100 | 
            +
            * sudo rake install_gem
         | 
| 85 101 |  | 
| 86 102 | 
             
            == LICENSE
         | 
| 87 103 |  | 
    
        data/lib/test/rails.rb
    CHANGED
    
    | @@ -277,6 +277,10 @@ class Object # :nodoc: | |
| 277 277 | 
             
              end
         | 
| 278 278 | 
             
            end
         | 
| 279 279 |  | 
| 280 | 
            +
            require 'active_support'
         | 
| 281 | 
            +
            require 'active_support/test_case'
         | 
| 282 | 
            +
            require 'active_record/fixtures'
         | 
| 283 | 
            +
             | 
| 280 284 | 
             
            require 'test/zentest_assertions'
         | 
| 281 285 | 
             
            require 'test/rails/test_case'
         | 
| 282 286 | 
             
            require 'test/rails/functional_test_case'
         | 
| @@ -288,7 +292,7 @@ require 'test/rails/view_test_case' | |
| 288 292 | 
             
            ##
         | 
| 289 293 | 
             
            # Use sensible defaults.
         | 
| 290 294 |  | 
| 291 | 
            -
            class  | 
| 295 | 
            +
            class ActiveSupport::TestCase # :nodoc:
         | 
| 292 296 | 
             
              self.use_transactional_fixtures = true
         | 
| 293 297 | 
             
              self.use_instantiated_fixtures  = false
         | 
| 294 298 | 
             
            end
         | 
| @@ -6,8 +6,8 @@ $TESTING_RTC = defined?($TESTING_RTC) && $TESTING_RTC | |
| 6 6 |  | 
| 7 7 | 
             
            class Test::Rails::FunctionalTestCase < Test::Rails::TestCase
         | 
| 8 8 |  | 
| 9 | 
            -
               | 
| 10 | 
            -
               | 
| 9 | 
            +
              include ActionController::Assertions::SelectorAssertions
         | 
| 10 | 
            +
              include ActionController::TestProcess
         | 
| 11 11 |  | 
| 12 12 | 
             
              ##
         | 
| 13 13 | 
             
              # Sets up instance variables to allow tests depending on a controller work.
         | 
    
        data/lib/test/rails/test_case.rb
    CHANGED
    
    | @@ -3,14 +3,10 @@ | |
| 3 3 | 
             
            #--
         | 
| 4 4 | 
             
            # Eventually this will hold the fixture setup stuff.
         | 
| 5 5 |  | 
| 6 | 
            -
            class Test::Rails::TestCase <  | 
| 6 | 
            +
            class Test::Rails::TestCase < ActiveSupport::TestCase
         | 
| 7 7 |  | 
| 8 8 | 
             
              undef_method :default_test
         | 
| 9 9 |  | 
| 10 | 
            -
              # Set defaults because Rails has poor ones (and these don't inherit properly)
         | 
| 11 | 
            -
              self.use_transactional_fixtures = true
         | 
| 12 | 
            -
              self.use_instantiated_fixtures = false
         | 
| 13 | 
            -
             | 
| 14 10 | 
             
            end
         | 
| 15 11 |  | 
| 16 12 | 
             
            module Test::Unit::Assertions
         | 
    
        data/lib/test/rails/version.rb
    CHANGED
    
    
| @@ -95,9 +95,6 @@ | |
| 95 95 |  | 
| 96 96 | 
             
            class Test::Rails::ViewTestCase < Test::Rails::FunctionalTestCase
         | 
| 97 97 |  | 
| 98 | 
            -
              self.use_transactional_fixtures = true
         | 
| 99 | 
            -
              self.use_instantiated_fixtures = false
         | 
| 100 | 
            -
             | 
| 101 98 | 
             
              ##
         | 
| 102 99 | 
             
              # Sets up the test case.
         | 
| 103 100 |  | 
| @@ -204,7 +201,7 @@ class Test::Rails::ViewTestCase < Test::Rails::FunctionalTestCase | |
| 204 201 | 
             
              #
         | 
| 205 202 | 
             
              # If a view cannot be found the test will flunk.
         | 
| 206 203 |  | 
| 207 | 
            -
              def render(options = {},  | 
| 204 | 
            +
              def render(options = {}, *rest_args)
         | 
| 208 205 | 
             
                @action_name = action_name caller[0] if options.empty?
         | 
| 209 206 | 
             
                assigns[:action_name] = @action_name
         | 
| 210 207 |  | 
| @@ -238,7 +235,7 @@ class Test::Rails::ViewTestCase < Test::Rails::FunctionalTestCase | |
| 238 235 |  | 
| 239 236 | 
             
                # Do the render
         | 
| 240 237 | 
             
                options[:TR_force] = true
         | 
| 241 | 
            -
                @controller.render options,  | 
| 238 | 
            +
                @controller.send(:render, options, *rest_args)
         | 
| 242 239 |  | 
| 243 240 | 
             
                # Rails 1.1
         | 
| 244 241 | 
             
                @controller.send :process_cleanup rescue nil
         | 
    
        data/test/test_help.rb
    CHANGED
    
    | @@ -22,7 +22,10 @@ module ActionView::Helpers::FormHelper; end | |
| 22 22 | 
             
            module ActionView::Helpers::UrlHelper; end
         | 
| 23 23 | 
             
            module ActionView::Helpers::AssetTagHelper; end
         | 
| 24 24 |  | 
| 25 | 
            -
             | 
| 25 | 
            +
            # ActiveSupport
         | 
| 26 | 
            +
            require 'active_support'
         | 
| 27 | 
            +
            require 'active_support/test_case'
         | 
| 28 | 
            +
            class << ActiveSupport::TestCase
         | 
| 26 29 | 
             
              attr_accessor :use_transactional_fixtures
         | 
| 27 30 | 
             
              attr_accessor :use_instantiated_fixtures
         | 
| 28 31 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: omghax-test_rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Ryan Davis
         | 
| @@ -11,7 +11,7 @@ autorequire: | |
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 13 |  | 
| 14 | 
            -
            date: 2009- | 
| 14 | 
            +
            date: 2009-05-21 00:00:00 -07:00
         | 
| 15 15 | 
             
            default_executable: 
         | 
| 16 16 | 
             
            dependencies: 
         | 
| 17 17 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| @@ -24,7 +24,7 @@ dependencies: | |
| 24 24 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 25 25 | 
             
                    version: 1.8.3
         | 
| 26 26 | 
             
                version: 
         | 
| 27 | 
            -
            description:  | 
| 27 | 
            +
            description: Test::Rails helps you build industrial-strength Rails code.
         | 
| 28 28 | 
             
            email: 
         | 
| 29 29 | 
             
            - ryand-ruby@zenspider.com
         | 
| 30 30 | 
             
            - drbrain@segment7.net
         | 
| @@ -85,7 +85,7 @@ rubyforge_project: test_rails | |
| 85 85 | 
             
            rubygems_version: 1.2.0
         | 
| 86 86 | 
             
            signing_key: 
         | 
| 87 87 | 
             
            specification_version: 2
         | 
| 88 | 
            -
            summary:  | 
| 88 | 
            +
            summary: Test::Rails helps you build industrial-strength Rails code.
         | 
| 89 89 | 
             
            test_files: 
         | 
| 90 90 | 
             
            - test/test_help.rb
         | 
| 91 91 | 
             
            - test/test_rails_controller_test_case.rb
         |