Permalink
Browse files

Fixed url rewriter confusion when the controller name was a substring…

… of the controller_prefix

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@397 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 8d5d716 commit cb8a020ec941101902307b81f4a1a6b9ac6d224d @dhh dhh committed Jan 12, 2005
View
@@ -1,5 +1,7 @@
*SVN*
+* Fixed url rewriter confusion when the controller name was a substring of the controller_prefix
+
* Added conditional layouts like <tt>layout "weblog_standard", :except => :rss</tt> #452 [Marcel Molina]
* Fixed that MemCacheStore wasn't included by default and added default MemCache object pointing to localhost #447 [Lucas Carlson]
@@ -88,10 +88,13 @@ def rewrite_action(path, options)
elsif action_prefix && !action_prefix.empty?
path = path.sub(action_prefix, action_name(options, action_prefix))
else
- path = path.sub(%r(#{@controller}/?), @controller + "/" + action_name(options)) # " ruby-mode
+ path = path.sub(%r(#{@controller}/?$), @controller + "/" + action_name(options)) # " ruby-mode
end
else
- path = path.sub(@controller + "/" + (action_prefix || "") + @action + (action_suffix || ""), @controller + "/" + action_name(options, action_prefix))
+ path = path.sub(
+ @controller + "/" + (action_prefix || "") + @action + (action_suffix || ""),
+ @controller + "/" + action_name(options, action_prefix)
+ )
end
if options[:controller_prefix] && !options[:controller]
@@ -191,7 +191,6 @@ def test_same_controller_and_action_names
assert_equal "http://www.singlefile.com/login/logout", @clean_url_with_same_action_and_controller_name.rewrite(:action => "logout")
end
- # FIXME
def xtest_same_module_and_controller_and_action_names
assert_equal "http://www.singlefile.com/login/login/logout", @clean_url_with_same_action_and_controller_and_module_name.rewrite(:action => "logout")
end
@@ -408,4 +407,13 @@ def test_on_explicit_index_page # My index page is very modest, thank you...
assert_equal("http://example.com/controller/foo", url.rewrite(:action => 'foo'))
end
+ def test_rewriting_on_similar_fragments
+ url = ActionController::UrlRewriter.new(
+ MockRequest.new(
+ "http://", "example.com", 80, "/advertisements/advert/",
+ {"controller"=>"advert", "action"=>"index"}
+ ), "advert", "index"
+ )
+ assert_equal("http://example.com/advertisements/advert/news", url.rewrite(:action => 'news'))
+ end
end

0 comments on commit cb8a020

Please sign in to comment.