Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 1837

Show
Ignore:
Timestamp:
07/15/05 15:00:39 (3 years ago)
Author:
ulysses
Message:

Fix assert_routing with nested controllers. Closes #1582 and #1386.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/actionpack/CHANGELOG

    r1835 r1837  
    11*SVN* 
     2 
     3* Fixed assert_routing so that testing controllers in modules works as expected [Nicholas Seckar, Rick Olson] 
    24 
    35* Fixed bug with :success/:failure callbacks for the JavaScriptHelper methods #1730 [court3nay/Thomas Fuchs] 
  • trunk/actionpack/lib/action_controller/assertions.rb

    r1661 r1837  
    139139        ActionController::Routing::Routes.reload if ActionController::Routing::Routes.empty?  
    140140       
    141         # Assume given controller 
    142         request = ActionController::TestRequest.new({}, {}, nil) 
    143         request.path_parameters = (defaults or {}).clone 
    144         request.path_parameters[:controller] ||= options[:controller] 
    145        
    146         generated_path, found_extras = ActionController::Routing::Routes.generate(options, request) 
     141        generated_path, found_extras = ActionController::Routing::Routes.generate(options, extras) 
    147142        msg = build_message(message, "found extras <?>, not <?>", found_extras, extras) 
    148143        assert_block(msg) { found_extras == extras } 
     
    157152      def assert_routing(path, options, defaults={}, extras={}, message=nil) 
    158153        assert_recognizes(options, path, extras, message) 
     154         
     155        controller, default_controller = options[:controller], defaults[:controller]  
     156        if controller && controller.include?(?/) && default_controller && default_controller.include?(?/) 
     157          options[:controller] = "/#{controller}" 
     158        end 
     159          
    159160        assert_generates(path, options, defaults, extras, message) 
    160161      end 
  • trunk/actionpack/test/controller/routing_test.rb

    r1834 r1837  
    11require File.dirname(__FILE__) + '/../abstract_unit' 
     2require File.dirname(__FILE__) + '/fake_controllers' 
    23require 'test/unit' 
    34require 'stringio' 
     
    9495  end 
    9596end  
    96  
    97 # XXX Extract to test/controller/fake_controllers.rb  
    98 module Object::Controllers 
    99   def self.const_available?(*args) 
    100     const_defined?(*args) 
    101   end 
    102    
    103   class ContentController 
    104   end 
    105   module Admin 
    106     def self.const_available?(*args) 
    107       const_defined?(*args) 
    108     end 
    109      
    110     class UserController 
    111     end 
    112  
    113     class NewsFeedController 
    114     end 
    115   end 
    116 end 
    117  
    11897 
    11998class RecognitionTests < Test::Unit::TestCase 
  • trunk/actionpack/test/controller/test_test.rb

    r1763 r1837  
    11require File.dirname(__FILE__) + '/../abstract_unit' 
     2require File.dirname(__FILE__) + '/fake_controllers' 
    23 
    34class TestTest < Test::Unit::TestCase 
     
    5354  def test_process_without_flash 
    5455    process :set_flash 
    55     assert_flash_equal "><", "test" 
     56    assert_equal '><', flash['test'] 
    5657  end           
    5758   
    5859  def test_process_with_flash 
    5960    process :set_flash, nil, nil, { "test" => "value" } 
    60     assert_flash_equal ">value<", "test" 
     61    assert_equal '>value<', flash['test'] 
    6162  end 
    6263 
     
    101102  end 
    102103 
     104  def test_assert_generates 
     105    assert_generates 'controller/action/5', :controller => 'controller', :action => 'action', :id => '5' 
     106  end 
     107 
    103108  def test_assert_routing 
    104     assert_generates 'controller/action/5', :controller => 'controller', :action => 'action', :id => '5' 
     109    assert_routing 'content', :controller => 'content', :action => 'index' 
     110  end 
     111 
     112  def test_assert_routing_in_module 
     113    assert_routing 'admin/user', :controller => 'admin/user', :action => 'index' 
    105114  end 
    106115