summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEtienne Massip <etienne.massip@gmail.com>2012-01-14 16:08:51 +0000
committerEtienne Massip <etienne.massip@gmail.com>2012-01-14 16:08:51 +0000
commit54c0b531e127dc960e32d18a190fd8d87564ad34 (patch)
tree52c43e7f0bc9c28b2073d3f8fbe9d9deb342a4f9
parent002081f2245eb2f75848c0fed0cacf93902d0cf7 (diff)
downloadredmine-54c0b531e127dc960e32d18a190fd8d87564ad34.tar.gz
redmine-54c0b531e127dc960e32d18a190fd8d87564ad34.zip
Fixed double escaping of Atom feed links.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8646 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/views/common/feed.atom.builder4
-rw-r--r--test/functional/activities_controller_test.rb32
2 files changed, 33 insertions, 3 deletions
diff --git a/app/views/common/feed.atom.builder b/app/views/common/feed.atom.builder
index 70dacc75a..d76f0acd1 100644
--- a/app/views/common/feed.atom.builder
+++ b/app/views/common/feed.atom.builder
@@ -1,8 +1,8 @@
xml.instruct!
xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do
xml.title truncate_single_line(@title, :length => 100)
- xml.link "rel" => "self", "href" => url_for(params.merge(:only_path => false))
- xml.link "rel" => "alternate", "href" => url_for(params.merge(:only_path => false, :format => nil, :key => nil))
+ xml.link "rel" => "self", "href" => url_for(params.merge(:only_path => false, :escape => false))
+ xml.link "rel" => "alternate", "href" => url_for(params.merge(:only_path => false, :format => nil, :key => nil, :escape => false))
xml.id url_for(:controller => 'welcome', :only_path => false)
xml.updated((@items.first ? @items.first.event_datetime : Time.now).xmlschema)
xml.author { xml.name "#{Setting.app_title}" }
diff --git a/test/functional/activities_controller_test.rb b/test/functional/activities_controller_test.rb
index f9d061325..5275034d0 100644
--- a/test/functional/activities_controller_test.rb
+++ b/test/functional/activities_controller_test.rb
@@ -97,9 +97,39 @@ class ActivitiesControllerTest < ActionController::TestCase
end
def test_index_atom_feed
- get :index, :format => 'atom'
+ get :index, :format => 'atom', :with_subprojects => 0
assert_response :success
assert_template 'common/feed.atom'
+
+ assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
+ :attributes => {:rel => 'self', :href => 'http://test.host/activity.atom?with_subprojects=0'}
+ assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
+ :attributes => {:rel => 'alternate', :href => 'http://test.host/activity?with_subprojects=0'}
+
+ assert_tag :tag => 'entry', :child => {
+ :tag => 'link',
+ :attributes => {:href => 'http://test.host/issues/11'}}
+ end
+
+ def test_index_atom_feed_with_explicit_selection
+ get :index, :format => 'atom', :with_subprojects => 0,
+ :show_changesets => 1,
+ :show_documents => 1,
+ :show_files => 1,
+ :show_issues => 1,
+ :show_messages => 1,
+ :show_news => 1,
+ :show_time_entries => 1,
+ :show_wiki_edits => 1
+
+ assert_response :success
+ assert_template 'common/feed.atom'
+
+ assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
+ :attributes => {:rel => 'self', :href => 'http://test.host/activity.atom?show_changesets=1&amp;show_documents=1&amp;show_files=1&amp;show_issues=1&amp;show_messages=1&amp;show_news=1&amp;show_time_entries=1&amp;show_wiki_edits=1&amp;with_subprojects=0'}
+ assert_tag :tag => 'link', :parent => {:tag => 'feed', :parent => nil },
+ :attributes => {:rel => 'alternate', :href => 'http://test.host/activity?show_changesets=1&amp;show_documents=1&amp;show_files=1&amp;show_issues=1&amp;show_messages=1&amp;show_news=1&amp;show_time_entries=1&amp;show_wiki_edits=1&amp;with_subprojects=0'}
+
assert_tag :tag => 'entry', :child => {
:tag => 'link',
:attributes => {:href => 'http://test.host/issues/11'}}