]> source.dussan.org Git - redmine.git/commitdiff
Use /raw/ for url instead of ?format=raw for getting raw repository files (#1901...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 16 Nov 2009 19:39:16 +0000 (19:39 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 16 Nov 2009 19:39:16 +0000 (19:39 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3074 e93f8b46-1217-0410-a6f0-8f06a7374b81

config/routes.rb
test/functional/repositories_controller_test.rb

index 21e33f501ddbf03396b656bb8a55819aa58933d2..dbb159c335961393d7fce16e816ad4d432d0aa43 100644 (file)
@@ -224,7 +224,11 @@ ActionController::Routing::Routes.draw do |map|
       repository_views.connect 'projects/:id/repository/revisions/:rev', :action => 'revision'
       repository_views.connect 'projects/:id/repository/revisions/:rev/diff', :action => 'diff'
       repository_views.connect 'projects/:id/repository/revisions/:rev/diff.:format', :action => 'diff'
+      repository_views.connect 'projects/:id/repository/revisions/:rev/raw/*path', :action => 'entry', :format => 'raw', :requirements => { :rev => /[a-z0-9\.\-_]+/ }
       repository_views.connect 'projects/:id/repository/revisions/:rev/:action/*path', :requirements => { :rev => /[a-z0-9\.\-_]+/ }
+      repository_views.connect 'projects/:id/repository/raw/*path', :action => 'entry', :format => 'raw'
+      # TODO: why the following route is required?
+      repository_views.connect 'projects/:id/repository/entry/*path', :action => 'entry'
       repository_views.connect 'projects/:id/repository/:action/*path'
     end
     
index 5ff2a6a92292abb0e15384ba849aff2c31b317b4..7ed7b5bbc6edd363fed3fbcb10a308ffee40e2ad 100644 (file)
@@ -144,6 +144,20 @@ class RepositoriesControllerTest < ActionController::TestCase
       :controller => 'repositories', :action => 'entry', :id => 'restmine', :path => %w[path to file.c], :rev => '2'
     )
   end
+
+  def test_raw_routing
+    assert_routing(
+      {:method => :get, :path => '/projects/restmine/repository/raw/path/to/file.c'},
+      :controller => 'repositories', :action => 'entry', :id => 'restmine', :path => %w[path to file.c], :format => 'raw'
+    )
+  end
+
+  def test_raw_routing_with_revision
+    assert_routing(
+      {:method => :get, :path => '/projects/restmine/repository/revisions/2/raw/path/to/file.c'},
+      :controller => 'repositories', :action => 'entry', :id => 'restmine', :path => %w[path to file.c], :format => 'raw', :rev => '2'
+    )
+  end
   
   def test_annotate_routing
     assert_routing(