Commit c435b16d05fd4dd83388e1fa22aaa40dbb9639ba

Authored by Moises Machado
Committed by Antonio Terceiro
1 parent 7c433c97

ActionItem929: fixed the comment url

  added the view_url method for article
  change several places that merged the view parameter into the article url to use the new view_url
app/controllers/my_profile/cms_controller.rb
... ... @@ -204,7 +204,7 @@ class CmsController < MyProfileController
204 204 if params[:back_to] == 'control_panel'
205 205 redirect_to :controller => 'profile_editor', :profile => @profile.identifier
206 206 elsif params[:back_to] == 'public_view'
207   - redirect_to @article.url.merge(:view => @article.image?)
  207 + redirect_to @article.view_url
208 208 elsif @article.parent
209 209 redirect_to :action => 'view', :id => @article.parent
210 210 else
... ... @@ -217,7 +217,7 @@ class CmsController < MyProfileController
217 217 referer.gsub!(/\?.*/, '') unless referer.nil?
218 218 if (maybe_ssl(url_for(@article.url)).include?(referer)) || (@article == profile.home_page && maybe_ssl(url_for(profile.url)).include?(referer))
219 219 @back_to = 'public_view'
220   - @back_url = @article.url.merge(:view => @article.image?)
  220 + @back_url = @article.view_url
221 221 end
222 222 end
223 223  
... ...
app/models/article.rb
... ... @@ -174,6 +174,10 @@ class Article < ActiveRecord::Base
174 174 self.profile.url.merge(:page => path.split('/'))
175 175 end
176 176  
  177 + def view_url
  178 + image? ? url.merge(:view => true) : url
  179 + end
  180 +
177 181 def allow_children?
178 182 true
179 183 end
... ...
app/models/comment.rb
... ... @@ -36,7 +36,7 @@ class Comment < ActiveRecord::Base
36 36 end
37 37  
38 38 def url
39   - article.url.merge(:anchor => anchor)
  39 + article.view_url.merge(:anchor => anchor)
40 40 end
41 41  
42 42 def anchor
... ...
app/views/content_viewer/_comment_form.rhtml
... ... @@ -17,7 +17,7 @@
17 17  
18 18 <h4><%= content_tag('a', '', :name => 'comment_form') + _('Post a comment') %></h4>
19 19  
20   -<% form_tag( @page.url.merge(:view => params[:view]), { :id => comment_form_id } ) do %>
  20 +<% form_tag( @page.view_url, { :id => comment_form_id } ) do %>
21 21  
22 22 <%= required_fields_message %>
23 23  
... ...
test/unit/article_test.rb
... ... @@ -627,4 +627,16 @@ class ArticleTest &lt; Test::Unit::TestCase
627 627 assert_equal true, a.can_display_hits?
628 628 end
629 629  
  630 + should 'return a view url when image' do
  631 + image = UploadedFile.create!(:profile => profile, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
  632 +
  633 + assert_equal image.url.merge(:view => true), image.view_url
  634 + end
  635 +
  636 + should 'not return a view url when common article' do
  637 + a = Article.create!(:name => 'Test article', :profile => profile)
  638 +
  639 + assert_equal a.url, a.view_url
  640 + end
  641 +
630 642 end
... ...
test/unit/comment_test.rb
... ... @@ -167,4 +167,12 @@ class CommentTest &lt; Test::Unit::TestCase
167 167 c1.destroy
168 168 end
169 169  
  170 + should 'generate links to comments on images with view set to true' do
  171 + owner = create_user('testuser').person
  172 + image = UploadedFile.create!(:profile => owner, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
  173 + comment = image.comments.create!(:article => image, :author => owner, :title => 'a random comment', :body => 'just another comment')
  174 +
  175 + assert comment.url[:view]
  176 + end
  177 +
170 178 end
... ...