Commit 173bc36f14ade4cdc27ae2da9ea892528a637622
1 parent
59b1f0c0
Exists in
master
and in
28 other branches
Enhancements on wall
Showing
29 changed files
with
225 additions
and
260 deletions
Show diff stats
app/controllers/public/profile_controller.rb
| @@ -178,8 +178,8 @@ class ProfileController < PublicController | @@ -178,8 +178,8 @@ class ProfileController < PublicController | ||
| 178 | @scrap.receiver= receiver | 178 | @scrap.receiver= receiver |
| 179 | @tab_action = params[:tab_action] | 179 | @tab_action = params[:tab_action] |
| 180 | @message = @scrap.save ? _("Message successfully sent.") : _("You can't leave an empty message.") | 180 | @message = @scrap.save ? _("Message successfully sent.") : _("You can't leave an empty message.") |
| 181 | - @activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) if params[:not_load_scraps].nil? | ||
| 182 | - render :partial => 'profile_activities_list' | 181 | + activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) if params[:not_load_scraps].nil? |
| 182 | + render :partial => 'profile_activities_list', :locals => {:activities => activities} | ||
| 183 | end | 183 | end |
| 184 | 184 | ||
| 185 | def leave_comment_on_activity | 185 | def leave_comment_on_activity |
| @@ -191,8 +191,8 @@ class ProfileController < PublicController | @@ -191,8 +191,8 @@ class ProfileController < PublicController | ||
| 191 | @comment.source_type, @comment.source_id = (@activity.target_type == 'Article' ? ['Article', @activity.target_id] : [@activity.class.to_s, @activity.id]) | 191 | @comment.source_type, @comment.source_id = (@activity.target_type == 'Article' ? ['Article', @activity.target_id] : [@activity.class.to_s, @activity.id]) |
| 192 | @tab_action = params[:tab_action] | 192 | @tab_action = params[:tab_action] |
| 193 | @message = @comment.save ? _("Comment successfully added.") : _("You can't leave an empty comment.") | 193 | @message = @comment.save ? _("Comment successfully added.") : _("You can't leave an empty comment.") |
| 194 | - @activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) if params[:not_load_scraps].nil? | ||
| 195 | - render :partial => 'profile_activities_list' | 194 | + activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) if params[:not_load_scraps].nil? |
| 195 | + render :partial => 'profile_activities_list', :locals => {:activities => activities} | ||
| 196 | end | 196 | end |
| 197 | 197 | ||
| 198 | def view_more_scraps | 198 | def view_more_scraps |
| @@ -202,7 +202,7 @@ class ProfileController < PublicController | @@ -202,7 +202,7 @@ class ProfileController < PublicController | ||
| 202 | 202 | ||
| 203 | def view_more_activities | 203 | def view_more_activities |
| 204 | @activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) | 204 | @activities = @profile.activities.paginate(:per_page => 30, :page => params[:page]) |
| 205 | - render :partial => 'profile_activities_scraps', :locals => {:activities => @activities} | 205 | + render :partial => 'profile_activities_list', :locals => {:activities => @activities} |
| 206 | end | 206 | end |
| 207 | 207 | ||
| 208 | def view_more_network_activities | 208 | def view_more_network_activities |
app/models/enterprise.rb
| @@ -181,4 +181,8 @@ class Enterprise < Organization | @@ -181,4 +181,8 @@ class Enterprise < Organization | ||
| 181 | true | 181 | true |
| 182 | end | 182 | end |
| 183 | 183 | ||
| 184 | + def activities | ||
| 185 | + Scrap.find_by_sql("SELECT id, updated_at, 'Scrap' AS klass FROM scraps WHERE scraps.receiver_id = #{self.id} AND scraps.scrap_id IS NULL UNION SELECT id, updated_at, 'ActionTracker::Record' AS klass FROM action_tracker WHERE action_tracker.target_id = #{self.id} UNION SELECT action_tracker.id, action_tracker.updated_at, 'ActionTracker::Record' AS klass FROM action_tracker INNER JOIN articles ON action_tracker.target_id = articles.id WHERE articles.profile_id = #{self.id} AND action_tracker.target_type = 'Article' ORDER BY action_tracker.updated_at DESC") | ||
| 186 | + end | ||
| 187 | + | ||
| 184 | end | 188 | end |
app/models/scrap.rb
| @@ -13,6 +13,8 @@ class Scrap < ActiveRecord::Base | @@ -13,6 +13,8 @@ class Scrap < ActiveRecord::Base | ||
| 13 | 13 | ||
| 14 | track_actions :leave_scrap, :after_create, :keep_params => ['sender.name', 'content', 'receiver.name', 'receiver.url'], :if => Proc.new{|s| s.receiver != s.sender}, :custom_target => :action_tracker_target | 14 | track_actions :leave_scrap, :after_create, :keep_params => ['sender.name', 'content', 'receiver.name', 'receiver.url'], :if => Proc.new{|s| s.receiver != s.sender}, :custom_target => :action_tracker_target |
| 15 | 15 | ||
| 16 | + track_actions :leave_scrap_to_self, :after_create, :keep_params => ['sender.name', 'content'], :if => Proc.new{|s| s.receiver == s.sender} | ||
| 17 | + | ||
| 16 | after_create do |scrap| | 18 | after_create do |scrap| |
| 17 | scrap.root.update_attribute('updated_at', DateTime.now) unless scrap.root.nil? | 19 | scrap.root.update_attribute('updated_at', DateTime.now) unless scrap.root.nil? |
| 18 | Scrap::Notifier.deliver_mail(scrap) if scrap.send_notification? | 20 | Scrap::Notifier.deliver_mail(scrap) if scrap.send_notification? |
app/models/uploaded_file.rb
app/views/profile/_comment.rhtml
| 1 | +<%# Comment %> | ||
| 1 | <li class="article-comment" style='border-bottom:none;'> | 2 | <li class="article-comment" style='border-bottom:none;'> |
| 2 | <div class="article-comment-inner"> | 3 | <div class="article-comment-inner"> |
| 3 | 4 | ||
| 4 | <div class="comment-content comment-logged-in"> | 5 | <div class="comment-content comment-logged-in"> |
| 5 | 6 | ||
| 6 | - <% if Person.find(comment.author_id) %> | ||
| 7 | - <%= link_to image_tag(profile_icon(Person.find(comment.author_id), :minor)), | 7 | + <% if comment.author %> |
| 8 | + <%= link_to image_tag(profile_icon(comment.author, :minor)), | ||
| 8 | Person.find(comment.author_id).url, | 9 | Person.find(comment.author_id).url, |
| 9 | :class => 'comment-picture', | 10 | :class => 'comment-picture', |
| 10 | - :title => Person.find(comment.author_id).name | 11 | + :title => comment.author_name |
| 11 | %> | 12 | %> |
| 12 | <% end %> | 13 | <% end %> |
| 13 | 14 | ||
| 14 | <div class="comment-details"> | 15 | <div class="comment-details"> |
| 15 | <div class="comment-text"> | 16 | <div class="comment-text"> |
| 16 | - <%= link_to(Person.find(comment.author_id).name, Person.find(comment.author_id).url) %> <%= txt2html comment.body %> | 17 | + <%= link_to(comment.author_name, comment.author.url) %> <%= txt2html comment.body %> |
| 17 | </div> | 18 | </div> |
| 18 | <div class="profile-activity-time"> | 19 | <div class="profile-activity-time"> |
| 19 | <%= time_ago_as_sentence(comment.created_at) %> | 20 | <%= time_ago_as_sentence(comment.created_at) %> |
| 20 | </div> | 21 | </div> |
| 21 | </div> | 22 | </div> |
| 22 | 23 | ||
| 23 | - <% if logged_in? && (user == profile || user == Person.find(comment.author_id) || user.has_permission?(:moderate_comments, profile)) %> | 24 | + <% if logged_in? && (user == profile || user == comment.author || user.has_permission?(:moderate_comments, profile)) %> |
| 24 | <% button_bar(:style => 'float: right; margin-top: 0px;') do %> | 25 | <% button_bar(:style => 'float: right; margin-top: 0px;') do %> |
| 25 | <%= icon_button(:delete, _('Remove'), { :action => :remove_comment, :comment_id => comment.id }, :method => :get, :confirm => _('Are you sure you want to remove this comment and all its replies?')) %> | 26 | <%= icon_button(:delete, _('Remove'), { :action => :remove_comment, :comment_id => comment.id }, :method => :get, :confirm => _('Are you sure you want to remove this comment and all its replies?')) %> |
| 26 | <% end %> | 27 | <% end %> |
| @@ -37,7 +38,7 @@ | @@ -37,7 +38,7 @@ | ||
| 37 | }); | 38 | }); |
| 38 | </script> | 39 | </script> |
| 39 | <% end %> | 40 | <% end %> |
| 40 | - <%= report_abuse(Person.find(comment.author_id), :comment_link, comment) if Person.find(comment.author_id) %> | 41 | + <%= report_abuse(comment.author, :comment_link, comment) if comment.author %> |
| 41 | <%= link_to_function _('Reply'), | 42 | <%= link_to_function _('Reply'), |
| 42 | "var f = add_comment_reply_form(this, %s); f.find('input[name=comment[title]], textarea').val(''); return false" % comment.id, | 43 | "var f = add_comment_reply_form(this, %s); f.find('input[name=comment[title]], textarea').val(''); return false" % comment.id, |
| 43 | :class => 'comment-footer comment-footer-link comment-footer-hide', | 44 | :class => 'comment-footer comment-footer-link comment-footer-hide', |
| @@ -47,7 +48,7 @@ | @@ -47,7 +48,7 @@ | ||
| 47 | 48 | ||
| 48 | </div> | 49 | </div> |
| 49 | 50 | ||
| 50 | - <% unless Comment.find(comment.id).replies.blank? %> | 51 | + <% unless comment.replies.blank? %> |
| 51 | <ul class="comment-replies"> | 52 | <ul class="comment-replies"> |
| 52 | <% comment.replies.each do |reply| %> | 53 | <% comment.replies.each do |reply| %> |
| 53 | <%= render :partial => 'comment', :locals => { :comment => reply } %> | 54 | <%= render :partial => 'comment', :locals => { :comment => reply } %> |
app/views/profile/_create_article.rhtml
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | <div class='profile-activity-description profile-activity-article-<%= activity.target.class.icon_name %>'> | 4 | <div class='profile-activity-description profile-activity-article-<%= activity.target.class.icon_name %>'> |
| 5 | <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %></p> | 5 | <p class='profile-activity-text'><%= link_to activity.user.name, activity.user.url %></p> |
| 6 | <div class='profile-activity-lead'> | 6 | <div class='profile-activity-lead'> |
| 7 | - <b><%= activity.params['name'] %></b> | 7 | + <b><%= link_to(activity.params['name'], activity.params['url']) %></b> |
| 8 | <span title='<%= activity.target.class.short_description %>' class='profile-activity-icon icon-new icon-new<%= activity.target.class.icon_name %>'></span><br /> | 8 | <span title='<%= activity.target.class.short_description %>' class='profile-activity-icon icon-new icon-new<%= activity.target.class.icon_name %>'></span><br /> |
| 9 | <%= image_tag(activity.params['first_image']) unless activity.params['first_image'].blank? %><%= strip_tags(activity.params['lead']).gsub(/(\xA0|\xC2|\s)+/, ' ').gsub(/^\s+/, '') %> <small><%= link_to(_('See more'), activity.params['url']) unless activity.get_lead.blank? %></small></div> | 9 | <%= image_tag(activity.params['first_image']) unless activity.params['first_image'].blank? %><%= strip_tags(activity.params['lead']).gsub(/(\xA0|\xC2|\s)+/, ' ').gsub(/^\s+/, '') %> <small><%= link_to(_('See more'), activity.params['url']) unless activity.get_lead.blank? %></small></div> |
| 10 | <%= content_tag(:p, link_to(_('See complete forum'), activity.get_url), :class => 'see-forum') if activity.target.is_a?(Forum) %> | 10 | <%= content_tag(:p, link_to(_('See complete forum'), activity.get_url), :class => 'see-forum') if activity.target.is_a?(Forum) %> |
app/views/profile/_leave_comment_on_activity.rhtml
app/views/profile/_leave_scrap.rhtml
app/views/profile/_leave_scrap_to_self.rhtml
app/views/profile/_profile.rhtml
| 1 | -<tr> | ||
| 2 | - <td colspan='2'> | 1 | +NÃO DEVE APARECER |
| 3 | 2 | ||
| 4 | - <% plugins_tabs = @plugins.dispatch(:profile_tabs). | ||
| 5 | - map { |tab| {:title => tab[:title], :id => tab[:id], :content => instance_eval(&tab[:content]), :start => tab[:title]} }%> | ||
| 6 | - | ||
| 7 | - <% tabs = plugins_tabs.select { |tab| tab[:start] } %> | ||
| 8 | - | ||
| 9 | - <% if @profile.organization? %> | ||
| 10 | - <% tabs << {:title => _('Profile'), :id => 'organization-profile', :content => (render :partial => 'organization_profile')} %> | ||
| 11 | - <% if logged_in? && current_person.follows?(@profile) %> | ||
| 12 | - <% tabs << {:title => _('Wall'), :id => 'profile-wall', :content => (render :partial => 'profile_wall')} %> | ||
| 13 | - <% end %> | ||
| 14 | - <% tabs << {:title => _('What\'s new'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> | ||
| 15 | - <% elsif @profile.person? %> | ||
| 16 | - <% tabs << {:title => _('Profile'), :id => 'person-profile', :content => (render :partial => 'person_profile')} %> | ||
| 17 | - <% if logged_in? && current_person.follows?(@profile) %> | ||
| 18 | - <% tabs << {:title => _('Wall'), :id => 'profile-wall', :content => (render :partial => 'profile_wall')} %> | ||
| 19 | - <% tabs << {:title => _('Network'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> | ||
| 20 | - <% end %> | ||
| 21 | - <% end %> | ||
| 22 | - | ||
| 23 | - <% tabs += plugins_tabs.select { |tab| !tab[:start] } %> | ||
| 24 | - | ||
| 25 | - <%= render_tabs(tabs) %> | ||
| 26 | - | ||
| 27 | - </td> | ||
| 28 | -</tr> |
app/views/profile/_profile_activities_list.rhtml
| 1 | -<%= @message %> | ||
| 2 | -<% unless @activities.nil? %> | ||
| 3 | - <%= render :partial => 'profile_activities_scraps', :locals => {:activities => @activities} %> | 1 | +<% unless activities.nil? %> |
| 2 | + <% activities.each do |a| %> | ||
| 3 | + <% activity = a.klass.constantize.find(a.id) %> | ||
| 4 | + <% if activity.kind_of?(ActionTracker::Record) %> | ||
| 5 | + <%= render :partial => 'profile_activity', :locals => {:activity => activity} if activity.visible? %> | ||
| 6 | + <% else %> | ||
| 7 | + <%= render :partial => 'profile_scrap', :locals => {:scrap => activity } %> | ||
| 8 | + <% end %> | ||
| 9 | + <% end %> | ||
| 4 | <% end %> | 10 | <% end %> |
app/views/profile/_profile_activities_scraps.rhtml
| 1 | -<% activities.each do |a| %> | ||
| 2 | - <% activity = a.klass.constantize.find(a.id) %> | ||
| 3 | - <% if activity.kind_of?(ActionTracker::Record) %> | ||
| 4 | - <%= render :partial => 'profile_activity', :locals => {:activity => activity} if activity.visible? %> | ||
| 5 | - <% else %> | ||
| 6 | - <%= render :partial => 'profile_scrap', :locals => {:scrap => activity } %> | ||
| 7 | - <% end %> | ||
| 8 | -<% end %> | 1 | +NÂO DEVE APARECER!! |
| 2 | + |
app/views/profile/_profile_wall.rhtml
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | </div> | 8 | </div> |
| 9 | <div id='leave_scrap_response'></div> | 9 | <div id='leave_scrap_response'></div> |
| 10 | <ul id='profile_activities'> | 10 | <ul id='profile_activities'> |
| 11 | - <%= render :partial => 'profile_activities_scraps', :locals => {:activities => @activities} %> | 11 | + <%= render :partial => 'profile_activities_list', :locals => {:activities => @activities} %> |
| 12 | </ul> | 12 | </ul> |
| 13 | 13 | ||
| 14 | <% if @activities.current_page < @activities.total_pages %> | 14 | <% if @activities.current_page < @activities.total_pages %> |
app/views/profile/index.rhtml
| @@ -17,6 +17,31 @@ | @@ -17,6 +17,31 @@ | ||
| 17 | 17 | ||
| 18 | <% if @profile.public? || (logged_in? && current_person.follows?(@profile)) %> | 18 | <% if @profile.public? || (logged_in? && current_person.follows?(@profile)) %> |
| 19 | <table class='profile'> | 19 | <table class='profile'> |
| 20 | - <%= render :partial => 'profile' %> | 20 | + <tr> |
| 21 | + <td colspan='2'> | ||
| 22 | + <% plugins_tabs = @plugins.dispatch(:profile_tabs). | ||
| 23 | + map { |tab| {:title => tab[:title], :id => tab[:id], :content => instance_eval(&tab[:content]), :start => tab[:title]} }%> | ||
| 24 | + | ||
| 25 | + <% tabs = plugins_tabs.select { |tab| tab[:start] } %> | ||
| 26 | + | ||
| 27 | + <% if @profile.organization? %> | ||
| 28 | + <% tabs << {:title => _('Profile'), :id => 'organization-profile', :content => (render :partial => 'organization_profile')} %> | ||
| 29 | + <% if logged_in? && current_person.follows?(@profile) %> | ||
| 30 | + <% tabs << {:title => _('Wall'), :id => 'profile-wall', :content => (render :partial => 'profile_wall')} %> | ||
| 31 | + <% end %> | ||
| 32 | + <% tabs << {:title => _('What\'s new'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> | ||
| 33 | + <% elsif @profile.person? %> | ||
| 34 | + <% tabs << {:title => _('Profile'), :id => 'person-profile', :content => (render :partial => 'person_profile')} %> | ||
| 35 | + <% if logged_in? && current_person.follows?(@profile) %> | ||
| 36 | + <% tabs << {:title => _('Wall'), :id => 'profile-wall', :content => (render :partial => 'profile_wall')} %> | ||
| 37 | + <% tabs << {:title => _('Network'), :id => 'profile-network', :content => (render :partial => 'profile_network')} %> | ||
| 38 | + <% end %> | ||
| 39 | + <% end %> | ||
| 40 | + | ||
| 41 | + <% tabs += plugins_tabs.select { |tab| !tab[:start] } %> | ||
| 42 | + | ||
| 43 | + <%= render_tabs(tabs) %> | ||
| 44 | + </td> | ||
| 45 | + </tr> | ||
| 21 | </table> | 46 | </table> |
| 22 | <% end %> | 47 | <% end %> |
config/initializers/action_tracker.rb
| @@ -23,7 +23,7 @@ ActionTrackerConfig.verbs = { | @@ -23,7 +23,7 @@ ActionTrackerConfig.verbs = { | ||
| 23 | }, | 23 | }, |
| 24 | 24 | ||
| 25 | :upload_image => { | 25 | :upload_image => { |
| 26 | - :description => lambda { n_('uploaded 1 image: %{details}<br />%{thumbnails}<br style="clear: both;" />', 'uploaded %{num} images: %{details}<br />%{thumbnails}<br style="clear: both;" />', get_view_url.size) % { :num => get_view_url.size, :thumbnails => '{{ta.collect_group_with_index(:thumbnail_path){ |t,i| content_tag(:span, image_tag(t) + link_to(nil, ta.get_view_url[i]))}.last(3).join}}', :details => '{{unique_with_count(ta.collect_group_with_index(:parent_name){ |n,i| link_to(n, ta.get_parent_url[i])}, "%s").join(", ")}}' % _("in the gallery") } }, | 26 | + :description => lambda { n_('uploaded 1 image<br />%{thumbnails}<br style="clear: both;" />', 'uploaded %{num} images<br />%{thumbnails}<br style="clear: both;" />', get_view_url.size) % { :num => get_view_url.size, :thumbnails => '{{ta.collect_group_with_index(:thumbnail_path){ |t,i| content_tag(:span, image_tag(t) + link_to(nil, ta.get_view_url[i]))}.last(3).join}}' } }, |
| 27 | :type => :groupable | 27 | :type => :groupable |
| 28 | }, | 28 | }, |
| 29 | 29 |
features/profile_activities.feature
| @@ -1,88 +0,0 @@ | @@ -1,88 +0,0 @@ | ||
| 1 | -Feature: list activities of a profile | ||
| 2 | - As a visitor | ||
| 3 | - I want to see the activities of a profile | ||
| 4 | - | ||
| 5 | - Background: | ||
| 6 | - Given the following users | ||
| 7 | - | login | name | | ||
| 8 | - | joaosilva | Joao Silva | | ||
| 9 | - And the following articles | ||
| 10 | - | owner | name | body | | ||
| 11 | - | joaosilva | article to comment | first paragraph | | ||
| 12 | - And the following comments | ||
| 13 | - | article | author | title | body | | ||
| 14 | - | article to comment | joaosilva | hi | how are you? | | ||
| 15 | - | ||
| 16 | - Scenario: see the activity of a profile | ||
| 17 | - Given I am logged in as "joaosilva" | ||
| 18 | - When I go to Joao Silva's homepage | ||
| 19 | -#Não tá rodando o delayed job :( | ||
| 20 | -Then I should see "dkjfhv" | ||
| 21 | - Then I should see "first paragraph" within ".profile-activity-item" | ||
| 22 | - And I should see "how are you?" within ".profile-wall-activities-comments" | ||
| 23 | - | ||
| 24 | - @selenium | ||
| 25 | - Scenario: post a comment while not authenticated | ||
| 26 | - Given I am on /booking/article-to-comment | ||
| 27 | - And I fill in "Name" with "Joey Ramone" | ||
| 28 | - And I fill in "e-mail" with "joey@ramones.com" | ||
| 29 | - And I fill in "Title" with "Hey ho, let's go!" | ||
| 30 | - And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
| 31 | - When I press "Post comment" | ||
| 32 | - Then I should see "Hey ho, let's go" | ||
| 33 | - | ||
| 34 | - @selenium | ||
| 35 | - Scenario: post comment while authenticated | ||
| 36 | - Given I am logged in as "booking" | ||
| 37 | - And I am on /booking/article-to-comment | ||
| 38 | - And I fill in "Title" with "Hey ho, let's go!" | ||
| 39 | - And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
| 40 | - When I press "Post comment" | ||
| 41 | - Then I should see "Hey ho, let's go" | ||
| 42 | - | ||
| 43 | - @selenium | ||
| 44 | - Scenario: redirect to right place after comment a picture | ||
| 45 | - Given the following files | ||
| 46 | - | owner | file | mime | | ||
| 47 | - | booking | rails.png | image/png | | ||
| 48 | - Given I am logged in as "booking" | ||
| 49 | - And I am on /booking/rails.png?view=true | ||
| 50 | - And I fill in "Title" with "Hey ho, let's go!" | ||
| 51 | - And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
| 52 | - When I press "Post comment" | ||
| 53 | - Then I should be exactly on /booking/rails.png?view=true | ||
| 54 | - | ||
| 55 | - @selenium | ||
| 56 | - Scenario: show error messages when make a blank comment | ||
| 57 | - Given I am logged in as "booking" | ||
| 58 | - And I am on /booking/article-to-comment | ||
| 59 | - When I press "Post comment" | ||
| 60 | - Then I should see "Title can't be blank" | ||
| 61 | - And I should see "Body can't be blank" | ||
| 62 | - | ||
| 63 | - @selenium | ||
| 64 | - Scenario: disable post comment button | ||
| 65 | - Given I am on /booking/article-to-comment | ||
| 66 | - And I fill in "Name" with "Joey Ramone" | ||
| 67 | - And I fill in "e-mail" with "joey@ramones.com" | ||
| 68 | - And I fill in "Title" with "Hey ho, let's go!" | ||
| 69 | - And I fill in "Enter your comment" with "Hey ho, let's go!" | ||
| 70 | - When I press "Post comment" | ||
| 71 | - Then the "value.Post comment" button should not be enabled | ||
| 72 | - And I should see "Hey ho, let's go" | ||
| 73 | - | ||
| 74 | - @selenium | ||
| 75 | - Scenario: render comment form and go to bottom | ||
| 76 | - Given I am on /booking/article-with-comment | ||
| 77 | - When I follow "Post a comment" within ".post-comment-button" | ||
| 78 | - Then I should see "Enter your comment" within "div#page-comment-form div.post_comment_box.opened" | ||
| 79 | - And I should be exactly on /booking/article-with-comment | ||
| 80 | - And I should be moved to anchor "comment_form" | ||
| 81 | - | ||
| 82 | - @selenium | ||
| 83 | - Scenario: keep comments field filled while trying to do a comment | ||
| 84 | - Given I am on /booking/article-with-comment | ||
| 85 | - And I fill in "Name" with "Joey Ramone" | ||
| 86 | - When I press "Post comment" | ||
| 87 | - Then the "Name" field should contain "Joey Ramone" | ||
| 88 | - And I should see "errors prohibited" |
public/stylesheets/application.css
| @@ -1434,7 +1434,8 @@ a.comment-picture { | @@ -1434,7 +1434,8 @@ a.comment-picture { | ||
| 1434 | border-radius: 5px; | 1434 | border-radius: 5px; |
| 1435 | } | 1435 | } |
| 1436 | 1436 | ||
| 1437 | -.comment-replies .article-comment-inner { | 1437 | +.comment-replies .article-comment-inner, |
| 1438 | +.scrap-replies { | ||
| 1438 | border: 1px solid #fff; | 1439 | border: 1px solid #fff; |
| 1439 | padding: 0; | 1440 | padding: 0; |
| 1440 | -moz-border-radius: 4px; | 1441 | -moz-border-radius: 4px; |
| @@ -5895,6 +5896,9 @@ h1#agenda-title { | @@ -5895,6 +5896,9 @@ h1#agenda-title { | ||
| 5895 | position: relative; | 5896 | position: relative; |
| 5896 | } | 5897 | } |
| 5897 | 5898 | ||
| 5899 | +#profile-activity li, #profile-network li, #profile-wall li { | ||
| 5900 | +} | ||
| 5901 | + | ||
| 5898 | .profile-activity-lead img { | 5902 | .profile-activity-lead img { |
| 5899 | width: 124px; | 5903 | width: 124px; |
| 5900 | float: left; | 5904 | float: left; |
| @@ -5954,12 +5958,12 @@ h1#agenda-title { | @@ -5954,12 +5958,12 @@ h1#agenda-title { | ||
| 5954 | } | 5958 | } |
| 5955 | 5959 | ||
| 5956 | #profile-wall li.profile-activity-item.upload_image span, | 5960 | #profile-wall li.profile-activity-item.upload_image span, |
| 5957 | -#profile-wall li.profile-activity-item.upload_image span img, | 5961 | +#Xprofile-wall li.profile-activity-item.upload_image span img, |
| 5958 | #profile-wall li.profile-activity-item.upload_image span a, | 5962 | #profile-wall li.profile-activity-item.upload_image span a, |
| 5959 | #profile-network li.profile-activity-item.upload_image span, | 5963 | #profile-network li.profile-activity-item.upload_image span, |
| 5960 | -#profile-network li.profile-activity-item.upload_image span img, | 5964 | +#Xprofile-network li.profile-activity-item.upload_image span img, |
| 5961 | #profile-network li.profile-activity-item.upload_image span a { | 5965 | #profile-network li.profile-activity-item.upload_image span a { |
| 5962 | - width: 124px; | 5966 | + width: 120px; |
| 5963 | height: 100px; | 5967 | height: 100px; |
| 5964 | display: block; | 5968 | display: block; |
| 5965 | overflow: hidden; | 5969 | overflow: hidden; |
| @@ -5967,13 +5971,16 @@ h1#agenda-title { | @@ -5967,13 +5971,16 @@ h1#agenda-title { | ||
| 5967 | } | 5971 | } |
| 5968 | 5972 | ||
| 5969 | #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span, | 5973 | #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span, |
| 5970 | -#profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span img, | ||
| 5971 | #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a, | 5974 | #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a, |
| 5972 | #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span, | 5975 | #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span, |
| 5973 | -#profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span img, | ||
| 5974 | #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a { | 5976 | #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a { |
| 5975 | width: 383px; | 5977 | width: 383px; |
| 5976 | - height: 177px; | 5978 | + height: auto; |
| 5979 | +} | ||
| 5980 | + | ||
| 5981 | +#profile-wall li.profile-activity-item.upload_image span img, | ||
| 5982 | +#profile-network li.profile-activity-item.upload_image span img { | ||
| 5983 | + display: block; | ||
| 5977 | } | 5984 | } |
| 5978 | 5985 | ||
| 5979 | #profile-wall li.profile-activity-item.upload_image span, | 5986 | #profile-wall li.profile-activity-item.upload_image span, |
| @@ -5992,6 +5999,7 @@ h1#agenda-title { | @@ -5992,6 +5999,7 @@ h1#agenda-title { | ||
| 5992 | #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a, | 5999 | #profile-wall li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a, |
| 5993 | #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a { | 6000 | #profile-network li.profile-activity-item.upload_image .activity-gallery-images-count-1 span a { |
| 5994 | background-image: url(/images/gallery-image-activity-border-big.png); | 6001 | background-image: url(/images/gallery-image-activity-border-big.png); |
| 6002 | + position: relative; | ||
| 5995 | } | 6003 | } |
| 5996 | 6004 | ||
| 5997 | #profile-wall li.profile-activity-item.upload_image .article-comment span, | 6005 | #profile-wall li.profile-activity-item.upload_image .article-comment span, |
| @@ -6555,6 +6563,10 @@ h1#agenda-title { | @@ -6555,6 +6563,10 @@ h1#agenda-title { | ||
| 6555 | padding: 0 5px; | 6563 | padding: 0 5px; |
| 6556 | } | 6564 | } |
| 6557 | 6565 | ||
| 6566 | +.scrap-replies .profile-wall-reply-form { | ||
| 6567 | + margin-left: 0px; | ||
| 6568 | +} | ||
| 6569 | + | ||
| 6558 | .profile-wall-scrap-replies { | 6570 | .profile-wall-scrap-replies { |
| 6559 | float: right; | 6571 | float: right; |
| 6560 | margin-right: 2px; | 6572 | margin-right: 2px; |
| @@ -6584,11 +6596,6 @@ h1#agenda-title { | @@ -6584,11 +6596,6 @@ h1#agenda-title { | ||
| 6584 | word-wrap: break-word; | 6596 | word-wrap: break-word; |
| 6585 | } | 6597 | } |
| 6586 | 6598 | ||
| 6587 | -#profile-wall .profile-wall-scrap-replies textarea, | ||
| 6588 | -#profile-network textarea, #profile-wall textarea { | ||
| 6589 | - width: 98%; | ||
| 6590 | -} | ||
| 6591 | - | ||
| 6592 | #profile-wall textarea { | 6599 | #profile-wall textarea { |
| 6593 | width: 375px; | 6600 | width: 375px; |
| 6594 | } | 6601 | } |
| @@ -6597,6 +6604,12 @@ h1#agenda-title { | @@ -6597,6 +6604,12 @@ h1#agenda-title { | ||
| 6597 | width: 388px; | 6604 | width: 388px; |
| 6598 | } | 6605 | } |
| 6599 | 6606 | ||
| 6607 | +#profile-wall .profile-wall-scrap-replies textarea, | ||
| 6608 | +#profile-network textarea, #profile-wall textarea, | ||
| 6609 | +#profile-wall li .profile-wall-reply-form textarea { | ||
| 6610 | + width: 98%; | ||
| 6611 | +} | ||
| 6612 | + | ||
| 6600 | #profile-wall #leave_scrap textarea { | 6613 | #profile-wall #leave_scrap textarea { |
| 6601 | width: 442px; | 6614 | width: 442px; |
| 6602 | } | 6615 | } |
test/factories.rb
| @@ -370,7 +370,7 @@ module Noosfero::Factory | @@ -370,7 +370,7 @@ module Noosfero::Factory | ||
| 370 | ############################################### | 370 | ############################################### |
| 371 | 371 | ||
| 372 | def defaults_for_scrap(params = {}) | 372 | def defaults_for_scrap(params = {}) |
| 373 | - { :content => 'soment content ', :sender_id => 1, :receiver_id => 1, :created_at => DateTime.now }.merge(params) | 373 | + { :content => 'some content ', :sender_id => 1, :receiver_id => 1, :created_at => DateTime.now }.merge(params) |
| 374 | end | 374 | end |
| 375 | 375 | ||
| 376 | ############################################### | 376 | ############################################### |
test/functional/profile_controller_test.rb
| @@ -714,22 +714,15 @@ class ProfileControllerTest < ActionController::TestCase | @@ -714,22 +714,15 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 714 | assert_no_tag :tag => 'p', :content => 'A scrap' | 714 | assert_no_tag :tag => 'p', :content => 'A scrap' |
| 715 | end | 715 | end |
| 716 | 716 | ||
| 717 | - should 'see only actions of the current profile when he is not followed by the viewer' do | ||
| 718 | - p1= Person.first | 717 | + should 'not display activities of the current profile when he is not followed by the viewer' do |
| 718 | + p1= fast_create(Person) | ||
| 719 | p2= fast_create(Person) | 719 | p2= fast_create(Person) |
| 720 | - p3= fast_create(Person) | ||
| 721 | 720 | ||
| 722 | -# UserStampSweeper.any_instance.stubs(:current_user).returns(p1) | ||
| 723 | - ActionTracker::Record.destroy_all | ||
| 724 | - scrap1 = Scrap.create!(defaults_for_scrap(:sender => p1, :receiver => p1)) | ||
| 725 | - | ||
| 726 | -# UserStampSweeper.any_instance.stubs(:current_user).returns(p2) | ||
| 727 | - scrap2 = Scrap.create!(defaults_for_scrap(:sender => p2, :receiver => p3)) | ||
| 728 | -# a2 = ActionTracker::Record.last | 721 | + UserStampSweeper.any_instance.stubs(:current_user).returns(p1) |
| 722 | + scrap1 = Scrap.create!(defaults_for_scrap(:sender => p1, :receiver => p2)) | ||
| 729 | 723 | ||
| 730 | -# UserStampSweeper.any_instance.stubs(:current_user).returns(p3) | ||
| 731 | - scrap3 = Scrap.create!(defaults_for_scrap(:sender => p3, :receiver => p1)) | ||
| 732 | -# a3 = ActionTracker::Record.last | 724 | + UserStampSweeper.any_instance.stubs(:current_user).returns(p2) |
| 725 | + scrap2 = Scrap.create!(defaults_for_scrap(:sender => p2, :receiver => p1)) | ||
| 733 | 726 | ||
| 734 | UserStampSweeper.any_instance.stubs(:current_user).returns(p1) | 727 | UserStampSweeper.any_instance.stubs(:current_user).returns(p1) |
| 735 | TinyMceArticle.create!(:profile => p1, :name => 'An article about free software') | 728 | TinyMceArticle.create!(:profile => p1, :name => 'An article about free software') |
| @@ -737,8 +730,7 @@ class ProfileControllerTest < ActionController::TestCase | @@ -737,8 +730,7 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 737 | 730 | ||
| 738 | login_as(profile.identifier) | 731 | login_as(profile.identifier) |
| 739 | get :index, :profile => p1.identifier | 732 | get :index, :profile => p1.identifier |
| 740 | - assert_not_nil assigns(:activities) | ||
| 741 | - assert_equal [a1], assigns(:activities) | 733 | + assert_nil assigns(:activities) |
| 742 | end | 734 | end |
| 743 | 735 | ||
| 744 | should 'see the activities_items paginated' do | 736 | should 'see the activities_items paginated' do |
| @@ -750,31 +742,27 @@ class ProfileControllerTest < ActionController::TestCase | @@ -750,31 +742,27 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 750 | assert_equal 30, assigns(:activities).count | 742 | assert_equal 30, assigns(:activities).count |
| 751 | end | 743 | end |
| 752 | 744 | ||
| 753 | - should 'not see the friends actions and scraps in the current profile activity' do | ||
| 754 | - p1= Person.first | 745 | + should 'not see the friends activities in the current profile' do |
| 755 | p2= fast_create(Person) | 746 | p2= fast_create(Person) |
| 756 | - assert !p1.is_a_friend?(p2) | 747 | + assert !profile.is_a_friend?(p2) |
| 757 | p3= fast_create(Person) | 748 | p3= fast_create(Person) |
| 758 | - p1.add_friend(p3) | ||
| 759 | - assert p1.is_a_friend?(p3) | 749 | + p3.add_friend(profile) |
| 750 | + assert p3.is_a_friend?(profile) | ||
| 760 | ActionTracker::Record.destroy_all | 751 | ActionTracker::Record.destroy_all |
| 761 | 752 | ||
| 762 | - scrap1 = Scrap.create!(defaults_for_scrap(:sender => p1, :receiver => p1)) | ||
| 763 | - scrap2 = Scrap.create!(defaults_for_scrap(:sender => p2, :receiver => p3)) | ||
| 764 | - scrap3 = Scrap.create!(defaults_for_scrap(:sender => p3, :receiver => p1)) | 753 | + scrap1 = Scrap.create!(defaults_for_scrap(:sender => p2, :receiver => p3)) |
| 754 | + scrap2 = Scrap.create!(defaults_for_scrap(:sender => p2, :receiver => profile)) | ||
| 765 | 755 | ||
| 766 | UserStampSweeper.any_instance.stubs(:current_user).returns(p3) | 756 | UserStampSweeper.any_instance.stubs(:current_user).returns(p3) |
| 767 | - TinyMceArticle.create!(:profile => p3, :name => 'An article about free software') | ||
| 768 | - a1 = ActionTracker::Record.last | 757 | + article1 = TinyMceArticle.create!(:profile => p3, :name => 'An article about free software') |
| 769 | 758 | ||
| 770 | - UserStampSweeper.any_instance.stubs(:current_user).returns(p1) | ||
| 771 | - TinyMceArticle.create!(:profile => p1, :name => 'Another article about free software') | ||
| 772 | - a2 = ActionTracker::Record.last | 759 | + UserStampSweeper.any_instance.stubs(:current_user).returns(p2) |
| 760 | + article2 = TinyMceArticle.create!(:profile => p2, :name => 'Another article about free software') | ||
| 773 | 761 | ||
| 774 | login_as(profile.identifier) | 762 | login_as(profile.identifier) |
| 775 | - get :index, :profile => p1.identifier | 763 | + get :index, :profile => p3.identifier |
| 776 | assert_not_nil assigns(:activities) | 764 | assert_not_nil assigns(:activities) |
| 777 | - assert_equal [a2], assigns(:activities) | 765 | + assert_equivalent [scrap1, article1.activity], assigns(:activities).map { |a| a.klass.constantize.find(a.id) } |
| 778 | end | 766 | end |
| 779 | 767 | ||
| 780 | should 'see all the activities in the current profile network' do | 768 | should 'see all the activities in the current profile network' do |
| @@ -942,13 +930,29 @@ class ProfileControllerTest < ActionController::TestCase | @@ -942,13 +930,29 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 942 | assert_template 'index' | 930 | assert_template 'index' |
| 943 | end | 931 | end |
| 944 | 932 | ||
| 945 | - should 'have wall_itens defined' do | ||
| 946 | - p1= ActionTracker::Record.current_user_from_model | 933 | + should 'not have activities defined if not logged in' do |
| 934 | + p1= fast_create(Person) | ||
| 947 | get :index, :profile => p1.identifier | 935 | get :index, :profile => p1.identifier |
| 948 | - assert_equal [], assigns(:wall_items) | 936 | + assert_nil assigns(:actvities) |
| 949 | end | 937 | end |
| 950 | 938 | ||
| 951 | - should 'the wall_itens be the received scraps in people profile' do | 939 | + should 'not have activities defined if logged in but is not following profile' do |
| 940 | + login_as(profile.identifier) | ||
| 941 | + p1= fast_create(Person) | ||
| 942 | + get :index, :profile => p1.identifier | ||
| 943 | + assert_nil assigns(:activities) | ||
| 944 | + end | ||
| 945 | + | ||
| 946 | + should 'have activities defined if logged in and is following profile' do | ||
| 947 | + login_as(profile.identifier) | ||
| 948 | + p1= fast_create(Person) | ||
| 949 | + p1.add_friend(profile) | ||
| 950 | + ActionTracker::Record.destroy_all | ||
| 951 | + get :index, :profile => p1.identifier | ||
| 952 | + assert_equal [], assigns(:activities) | ||
| 953 | + end | ||
| 954 | + | ||
| 955 | + should 'the activities be the received scraps in people profile' do | ||
| 952 | p1 = ActionTracker::Record.current_user_from_model | 956 | p1 = ActionTracker::Record.current_user_from_model |
| 953 | p2 = fast_create(Person) | 957 | p2 = fast_create(Person) |
| 954 | p3 = fast_create(Person) | 958 | p3 = fast_create(Person) |
| @@ -963,10 +967,10 @@ class ProfileControllerTest < ActionController::TestCase | @@ -963,10 +967,10 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 963 | @controller.stubs(:current_user).returns(user) | 967 | @controller.stubs(:current_user).returns(user) |
| 964 | Person.any_instance.stubs(:follows?).returns(true) | 968 | Person.any_instance.stubs(:follows?).returns(true) |
| 965 | get :index, :profile => p1.identifier | 969 | get :index, :profile => p1.identifier |
| 966 | - assert_equal [s2,s3], assigns(:wall_items) | 970 | + assert_equal [s2,s3], assigns(:activities) |
| 967 | end | 971 | end |
| 968 | 972 | ||
| 969 | - should 'the wall_itens be the received scraps in community profile' do | 973 | + should 'the activities be the received scraps in community profile' do |
| 970 | c = fast_create(Community) | 974 | c = fast_create(Community) |
| 971 | p1 = fast_create(Person) | 975 | p1 = fast_create(Person) |
| 972 | p2 = fast_create(Person) | 976 | p2 = fast_create(Person) |
| @@ -982,10 +986,10 @@ class ProfileControllerTest < ActionController::TestCase | @@ -982,10 +986,10 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 982 | @controller.stubs(:current_user).returns(user) | 986 | @controller.stubs(:current_user).returns(user) |
| 983 | Person.any_instance.stubs(:follows?).returns(true) | 987 | Person.any_instance.stubs(:follows?).returns(true) |
| 984 | get :index, :profile => c.identifier | 988 | get :index, :profile => c.identifier |
| 985 | - assert_equal [s2,s3], assigns(:wall_items) | 989 | + assert_equal [s2,s3], assigns(:activities) |
| 986 | end | 990 | end |
| 987 | 991 | ||
| 988 | - should 'the wall_itens be paginated in people profiles' do | 992 | + should 'the activities be paginated in people profiles' do |
| 989 | p1 = Person.first | 993 | p1 = Person.first |
| 990 | 40.times{fast_create(Scrap, :sender_id => p1.id, :created_at => Time.now)} | 994 | 40.times{fast_create(Scrap, :sender_id => p1.id, :created_at => Time.now)} |
| 991 | 995 | ||
| @@ -997,10 +1001,10 @@ class ProfileControllerTest < ActionController::TestCase | @@ -997,10 +1001,10 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 997 | Person.any_instance.stubs(:follows?).returns(true) | 1001 | Person.any_instance.stubs(:follows?).returns(true) |
| 998 | assert_equal 40, p1.scraps_received.not_replies.count | 1002 | assert_equal 40, p1.scraps_received.not_replies.count |
| 999 | get :index, :profile => p1.identifier | 1003 | get :index, :profile => p1.identifier |
| 1000 | - assert_equal 30, assigns(:wall_items).count | 1004 | + assert_equal 30, assigns(:activities).count |
| 1001 | end | 1005 | end |
| 1002 | 1006 | ||
| 1003 | - should 'the wall_itens be paginated in community profiles' do | 1007 | + should 'the activities be paginated in community profiles' do |
| 1004 | p1 = Person.first | 1008 | p1 = Person.first |
| 1005 | c = fast_create(Community) | 1009 | c = fast_create(Community) |
| 1006 | 40.times{fast_create(Scrap, :receiver_id => c.id)} | 1010 | 40.times{fast_create(Scrap, :receiver_id => c.id)} |
| @@ -1013,7 +1017,7 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1013,7 +1017,7 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 1013 | Person.any_instance.stubs(:follows?).returns(true) | 1017 | Person.any_instance.stubs(:follows?).returns(true) |
| 1014 | assert_equal 40, c.scraps_received.not_replies.count | 1018 | assert_equal 40, c.scraps_received.not_replies.count |
| 1015 | get :index, :profile => c.identifier | 1019 | get :index, :profile => c.identifier |
| 1016 | - assert_equal 30, assigns(:wall_items).count | 1020 | + assert_equal 30, assigns(:activities).count |
| 1017 | end | 1021 | end |
| 1018 | 1022 | ||
| 1019 | should "the owner of activity could remove it" do | 1023 | should "the owner of activity could remove it" do |
| @@ -1083,17 +1087,17 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1083,17 +1087,17 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 1083 | end | 1087 | end |
| 1084 | end | 1088 | end |
| 1085 | 1089 | ||
| 1086 | - should "not show the scrap button on network activity if the user don't follow the user" do | 1090 | + should "not show the network activity if the viewer don't follow the profile" do |
| 1087 | login_as(profile.identifier) | 1091 | login_as(profile.identifier) |
| 1088 | person = fast_create(Person) | 1092 | person = fast_create(Person) |
| 1089 | at = fast_create(ActionTracker::Record, :user_id => person.id) | 1093 | at = fast_create(ActionTracker::Record, :user_id => person.id) |
| 1090 | atn = fast_create(ActionTrackerNotification, :profile_id => profile.id, :action_tracker_id => at.id) | 1094 | atn = fast_create(ActionTrackerNotification, :profile_id => profile.id, :action_tracker_id => at.id) |
| 1091 | - get :index, :profile => profile.identifier | ||
| 1092 | - assert_no_tag :tag => 'p', :attributes => {:class => 'profile-network-send-message'} | 1095 | + get :index, :profile => person.identifier |
| 1096 | + assert_no_tag :tag => 'div', :attributes => {:id => 'profile-network'} | ||
| 1093 | 1097 | ||
| 1094 | person.add_friend(profile) | 1098 | person.add_friend(profile) |
| 1095 | - get :index, :profile => profile.identifier | ||
| 1096 | - assert_tag :tag => 'p', :attributes => {:class => 'profile-network-send-message'} | 1099 | + get :index, :profile => person.identifier |
| 1100 | + assert_tag :tag => 'div', :attributes => {:id => 'profile-network'} | ||
| 1097 | end | 1101 | end |
| 1098 | 1102 | ||
| 1099 | should "not show the scrap button on network activity if the user is himself" do | 1103 | should "not show the scrap button on network activity if the user is himself" do |
| @@ -1104,16 +1108,16 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1104,16 +1108,16 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 1104 | assert_no_tag :tag => 'p', :attributes => {:class => 'profile-network-send-message'} | 1108 | assert_no_tag :tag => 'p', :attributes => {:class => 'profile-network-send-message'} |
| 1105 | end | 1109 | end |
| 1106 | 1110 | ||
| 1107 | - should "not show the scrap button on wall activity if the user don't follow the user" do | 1111 | + should "not show the scrap area on wall if the user don't follow the user" do |
| 1108 | login_as(profile.identifier) | 1112 | login_as(profile.identifier) |
| 1109 | person = fast_create(Person) | 1113 | person = fast_create(Person) |
| 1110 | scrap = fast_create(Scrap, :sender_id => person.id, :receiver_id => profile.id) | 1114 | scrap = fast_create(Scrap, :sender_id => person.id, :receiver_id => profile.id) |
| 1111 | - get :index, :profile => profile.identifier | ||
| 1112 | - assert_no_tag :tag => 'p', :attributes => {:class => 'profile-wall-send-message'} | 1115 | + get :index, :profile => person.identifier |
| 1116 | + assert_no_tag :tag => 'div', :attributes => {:id => 'leave_scrap'}, :descendant => { :tag => 'input', :attributes => {:value => 'Share'} } | ||
| 1113 | 1117 | ||
| 1114 | person.add_friend(profile) | 1118 | person.add_friend(profile) |
| 1115 | - get :index, :profile => profile.identifier | ||
| 1116 | - assert_tag :tag => 'p', :attributes => {:class => 'profile-wall-send-message'} | 1119 | + get :index, :profile => person.identifier |
| 1120 | + assert_tag :tag => 'div', :attributes => {:id => 'leave_scrap'}, :descendant => { :tag => 'input', :attributes => {:value => 'Share'} } | ||
| 1117 | end | 1121 | end |
| 1118 | 1122 | ||
| 1119 | should "not show the scrap button on wall activity if the user is himself" do | 1123 | should "not show the scrap button on wall activity if the user is himself" do |
| @@ -1169,7 +1173,7 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1169,7 +1173,7 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 1169 | assert_equal 40, profile.tracked_actions.count | 1173 | assert_equal 40, profile.tracked_actions.count |
| 1170 | get :view_more_activities, :profile => profile.identifier, :page => 2 | 1174 | get :view_more_activities, :profile => profile.identifier, :page => 2 |
| 1171 | assert_response :success | 1175 | assert_response :success |
| 1172 | - assert_template '_profile_activities_scraps' | 1176 | + assert_template '_profile_activities_list' |
| 1173 | assert_equal 10, assigns(:activities).count | 1177 | assert_equal 10, assigns(:activities).count |
| 1174 | end | 1178 | end |
| 1175 | 1179 | ||
| @@ -1270,8 +1274,8 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1270,8 +1274,8 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 1270 | login_as(profile.identifier) | 1274 | login_as(profile.identifier) |
| 1271 | get :index, :profile => profile.identifier | 1275 | get :index, :profile => profile.identifier |
| 1272 | 1276 | ||
| 1273 | - assert_tag :tag => 'div', :attributes => { :id => 'profile-wall' }, :descendant => { :tag => 'p', :content => 'A scrap' } | ||
| 1274 | - assert_tag :tag => 'div', :attributes => { :id => 'profile-wall' }, :descendant => { :tag => 'a', :content => 'An article about free software' } | 1277 | + assert_tag :tag => 'p', :content => 'A scrap', :attributes => { :class => 'profile-activity-text'} |
| 1278 | + assert_tag :tag => 'div', :attributes => { :class => 'profile-activity-lead' }, :descendant => { :tag => 'a', :content => 'An article about free software' } | ||
| 1275 | end | 1279 | end |
| 1276 | 1280 | ||
| 1277 | should 'have scraps and activities on activities' do | 1281 | should 'have scraps and activities on activities' do |
| @@ -1307,7 +1311,7 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1307,7 +1311,7 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 1307 | 1311 | ||
| 1308 | assert_equal 0, count | 1312 | assert_equal 0, count |
| 1309 | post :leave_comment_on_activity, :profile => profile.identifier, :comment => {:body => 'something'}, :source_id => activity.id | 1313 | post :leave_comment_on_activity, :profile => profile.identifier, :comment => {:body => 'something'}, :source_id => activity.id |
| 1310 | - assert_equal count + 1, activity.comments.count | 1314 | + assert_equal count + 1, ActionTracker::Record.find(activity.id).comments_count |
| 1311 | assert_response :success | 1315 | assert_response :success |
| 1312 | assert_equal "Comment successfully added.", assigns(:message) | 1316 | assert_equal "Comment successfully added.", assigns(:message) |
| 1313 | end | 1317 | end |
| @@ -1318,10 +1322,9 @@ class ProfileControllerTest < ActionController::TestCase | @@ -1318,10 +1322,9 @@ class ProfileControllerTest < ActionController::TestCase | ||
| 1318 | TinyMceArticle.create!(:profile => another_person, :name => 'An article about free software') | 1322 | TinyMceArticle.create!(:profile => another_person, :name => 'An article about free software') |
| 1319 | activity = ActionTracker::Record.last | 1323 | activity = ActionTracker::Record.last |
| 1320 | count = activity.comments.count | 1324 | count = activity.comments.count |
| 1321 | -puts activity.inspect | ||
| 1322 | assert_equal 0, count | 1325 | assert_equal 0, count |
| 1323 | post :leave_comment_on_activity, :profile => another_person.identifier, :comment => {:body => 'something'}, :source_id => activity.id | 1326 | post :leave_comment_on_activity, :profile => another_person.identifier, :comment => {:body => 'something'}, :source_id => activity.id |
| 1324 | - assert_equal count + 1, activity.comments.count | 1327 | + assert_equal count + 1, ActionTracker::Record.find(activity.id).comments_count |
| 1325 | assert_response :success | 1328 | assert_response :success |
| 1326 | assert_equal "Comment successfully added.", assigns(:message) | 1329 | assert_equal "Comment successfully added.", assigns(:message) |
| 1327 | end | 1330 | end |
test/unit/article_test.rb
| @@ -323,11 +323,13 @@ class ArticleTest < ActiveSupport::TestCase | @@ -323,11 +323,13 @@ class ArticleTest < ActiveSupport::TestCase | ||
| 323 | (1..4).each do |n| | 323 | (1..4).each do |n| |
| 324 | create(TextileArticle, :name => "art #{n}", :profile_id => profile.id) | 324 | create(TextileArticle, :name => "art #{n}", :profile_id => profile.id) |
| 325 | end | 325 | end |
| 326 | - 2.times { profile.articles.first.comments.build(:title => 'test', :body => 'asdsad', :author => profile).save! } | ||
| 327 | - 4.times { profile.articles.last.comments.build(:title => 'test', :body => 'asdsad', :author => profile).save! } | ||
| 328 | -assert_equal 'bla', profile.articles.map(&:comments_count) | 326 | + first_article = profile.articles.first |
| 327 | + 2.times { Comment.create(:title => 'test', :body => 'asdsad', :author => profile, :source => first_article).save! } | ||
| 328 | + | ||
| 329 | + last_article = profile.articles.last | ||
| 330 | + 4.times { Comment.create(:title => 'test', :body => 'asdsad', :author => profile, :source => last_article).save! } | ||
| 329 | # should respect the order (more commented comes first) | 331 | # should respect the order (more commented comes first) |
| 330 | - assert_equal [profile.articles.first], profile.articles.most_commented(2) | 332 | + assert_equal [last_article, first_article], profile.articles.most_commented(2) |
| 331 | end | 333 | end |
| 332 | 334 | ||
| 333 | should 'identify itself as a non-folder' do | 335 | should 'identify itself as a non-folder' do |
| @@ -361,16 +363,16 @@ assert_equal 'bla', profile.articles.map(&:comments_count) | @@ -361,16 +363,16 @@ assert_equal 'bla', profile.articles.map(&:comments_count) | ||
| 361 | 363 | ||
| 362 | should 'index comments title together with article' do | 364 | should 'index comments title together with article' do |
| 363 | owner = create_user('testuser').person | 365 | owner = create_user('testuser').person |
| 364 | - art = owner.articles.build(:name => 'ytest'); art.save! | ||
| 365 | - c1 = art.comments.build(:title => 'a nice comment', :body => 'anything', :author => owner); c1.save! | 366 | + art = fast_create(TinyMceArticle, :profile_id => owner.id, :name => 'ytest') |
| 367 | + c1 = Comment.create(:title => 'a nice comment', :body => 'anything', :author => owner, :source => art ); c1.save! | ||
| 366 | 368 | ||
| 367 | assert_includes Article.find_by_contents('nice'), art | 369 | assert_includes Article.find_by_contents('nice'), art |
| 368 | end | 370 | end |
| 369 | 371 | ||
| 370 | should 'index comments body together with article' do | 372 | should 'index comments body together with article' do |
| 371 | owner = create_user('testuser').person | 373 | owner = create_user('testuser').person |
| 372 | - art = owner.articles.build(:name => 'ytest'); art.save! | ||
| 373 | - c1 = art.comments.build(:title => 'test comment', :body => 'anything', :author => owner); c1.save! | 374 | + art = fast_create(TinyMceArticle, :profile_id => owner.id, :name => 'ytest') |
| 375 | + c1 = Comment.create(:title => 'test comment', :body => 'anything', :author => owner, :source => art); c1.save! | ||
| 374 | 376 | ||
| 375 | assert_includes Article.find_by_contents('anything'), art | 377 | assert_includes Article.find_by_contents('anything'), art |
| 376 | end | 378 | end |
test/unit/category_finder_test.rb
| @@ -188,17 +188,20 @@ class CategoryFinderTest < ActiveSupport::TestCase | @@ -188,17 +188,20 @@ class CategoryFinderTest < ActiveSupport::TestCase | ||
| 188 | end | 188 | end |
| 189 | 189 | ||
| 190 | should 'return most commented articles' do | 190 | should 'return most commented articles' do |
| 191 | + person = create_user('testuser').person | ||
| 191 | Article.delete_all | 192 | Article.delete_all |
| 192 | 193 | ||
| 193 | - person = create_user('testuser').person | ||
| 194 | - articles = (1..4).map {|n| a = person.articles.build(:name => "art #{n}", :category_ids => [@category.id]); a.save!; a } | 194 | + (1..4).map {|n| create(TextileArticle, :profile_id => person.id, :name => "art #{n}", :category_ids => [@category.id]) } |
| 195 | + | ||
| 196 | + first_article = person.articles.first | ||
| 197 | + 2.times { Comment.create(:title => 'test', :body => 'asdsad', :author => person, :source => first_article) } | ||
| 195 | 198 | ||
| 196 | - 2.times { articles[0].comments.build(:title => 'test', :body => 'asdsad', :author => person).save! } | ||
| 197 | - 4.times { articles[1].comments.build(:title => 'test', :body => 'asdsad', :author => person).save! } | 199 | + last_article = person.articles.last |
| 200 | + 4.times { Comment.create(:title => 'test', :body => 'asdsad', :author => person, :source => last_article) } | ||
| 198 | 201 | ||
| 199 | result = @finder.most_commented_articles(2) | 202 | result = @finder.most_commented_articles(2) |
| 200 | # should respect the order (more commented comes first) | 203 | # should respect the order (more commented comes first) |
| 201 | - assert_equal [articles[1], articles[0]], result | 204 | + assert_equal [last_article, first_article], result |
| 202 | assert_respond_to result, :total_entries | 205 | assert_respond_to result, :total_entries |
| 203 | end | 206 | end |
| 204 | 207 |
test/unit/category_test.rb
| @@ -260,13 +260,14 @@ class CategoryTest < ActiveSupport::TestCase | @@ -260,13 +260,14 @@ class CategoryTest < ActiveSupport::TestCase | ||
| 260 | a2 = person.articles.build(:name => 'art2', :category_ids => [c.id]); a2.save! | 260 | a2 = person.articles.build(:name => 'art2', :category_ids => [c.id]); a2.save! |
| 261 | a3 = person.articles.build(:name => 'art3', :category_ids => [c.id]); a3.save! | 261 | a3 = person.articles.build(:name => 'art3', :category_ids => [c.id]); a3.save! |
| 262 | 262 | ||
| 263 | - a1.comments.build(:title => 'test', :body => 'asdsa', :author => person).save! | ||
| 264 | - 5.times { a2.comments.build(:title => 'test', :body => 'asdsa', :author => person).save! } | 263 | + Comment.create(:title => 'test', :body => 'asdsa', :author => person, :source => a1) |
| 264 | + 5.times { Comment.create(:title => 'test', :body => 'asdsa', :author => person, :source => a2) } | ||
| 265 | 265 | ||
| 266 | - 10.times { a3.comments.build(:title => 'test', :body => 'kajsdsa', :author => person).save! } | 266 | + 10.times { Comment.create(:title => 'test', :body => 'kajsdsa', :author => person, :source => a3) } |
| 267 | 267 | ||
| 268 | assert_equal [a3, a2], c.most_commented_articles(2) | 268 | assert_equal [a3, a2], c.most_commented_articles(2) |
| 269 | end | 269 | end |
| 270 | + | ||
| 270 | should 'have comments' do | 271 | should 'have comments' do |
| 271 | c = @env.categories.build(:name => 'my category'); c.save! | 272 | c = @env.categories.build(:name => 'my category'); c.save! |
| 272 | person = create_user('testuser').person | 273 | person = create_user('testuser').person |
test/unit/comment_notifier_test.rb
| @@ -12,26 +12,26 @@ class CommentNotifierTest < ActiveSupport::TestCase | @@ -12,26 +12,26 @@ class CommentNotifierTest < ActiveSupport::TestCase | ||
| 12 | @article = fast_create(Article, :name => 'Article test', :profile_id => @profile.id, :notify_comments => true) | 12 | @article = fast_create(Article, :name => 'Article test', :profile_id => @profile.id, :notify_comments => true) |
| 13 | end | 13 | end |
| 14 | 14 | ||
| 15 | - should 'deliver mail after make aarticle commment' do | 15 | + should 'deliver mail after make an article comment' do |
| 16 | assert_difference ActionMailer::Base.deliveries, :size do | 16 | assert_difference ActionMailer::Base.deliveries, :size do |
| 17 | - @article.comments << Comment.new(:author => @profile, :title => 'test comment', :body => 'you suck!') | 17 | + Comment.create(:author => @profile, :title => 'test comment', :body => 'you suck!', :source => @article ) |
| 18 | end | 18 | end |
| 19 | end | 19 | end |
| 20 | 20 | ||
| 21 | should 'deliver mail to owner of article' do | 21 | should 'deliver mail to owner of article' do |
| 22 | - @article.comments << Comment.new(:author => @profile, :title => 'test comment', :body => 'you suck!') | 22 | + Comment.create(:author => @profile, :title => 'test comment', :body => 'you suck!', :source => @article ) |
| 23 | sent = ActionMailer::Base.deliveries.first | 23 | sent = ActionMailer::Base.deliveries.first |
| 24 | assert_equal [@profile.email], sent.to | 24 | assert_equal [@profile.email], sent.to |
| 25 | end | 25 | end |
| 26 | 26 | ||
| 27 | should 'display author name in delivered mail' do | 27 | should 'display author name in delivered mail' do |
| 28 | - @article.comments << Comment.new(:author => @profile, :title => 'test comment', :body => 'you suck!') | 28 | + Comment.create(:author => @profile, :title => 'test comment', :body => 'you suck!', :source => @article) |
| 29 | sent = ActionMailer::Base.deliveries.first | 29 | sent = ActionMailer::Base.deliveries.first |
| 30 | assert_match /user_comment_test/, sent.body | 30 | assert_match /user_comment_test/, sent.body |
| 31 | end | 31 | end |
| 32 | 32 | ||
| 33 | should 'display unauthenticated author name and email in delivered mail' do | 33 | should 'display unauthenticated author name and email in delivered mail' do |
| 34 | - @article.comments << Comment.new(:name => 'flatline', :email => 'flatline@invalid.com', :title => 'test comment', :body => 'you suck!') | 34 | + Comment.create(:name => 'flatline', :email => 'flatline@invalid.com', :title => 'test comment', :body => 'you suck!', :source => @article ) |
| 35 | sent = ActionMailer::Base.deliveries.first | 35 | sent = ActionMailer::Base.deliveries.first |
| 36 | assert_match /flatline/, sent.body | 36 | assert_match /flatline/, sent.body |
| 37 | assert_match /flatline@invalid.com/, sent.body | 37 | assert_match /flatline@invalid.com/, sent.body |
| @@ -45,13 +45,13 @@ class CommentNotifierTest < ActiveSupport::TestCase | @@ -45,13 +45,13 @@ class CommentNotifierTest < ActiveSupport::TestCase | ||
| 45 | end | 45 | end |
| 46 | 46 | ||
| 47 | should 'include comment title in the e-mail' do | 47 | should 'include comment title in the e-mail' do |
| 48 | - @article.comments << Comment.new(:author => @profile, :title => 'comment title', :body => 'comment title') | 48 | + Comment.create(:author => @profile, :title => 'comment title', :body => 'comment body', :source => @article) |
| 49 | sent = ActionMailer::Base.deliveries.first | 49 | sent = ActionMailer::Base.deliveries.first |
| 50 | assert_match /comment title/, sent.body | 50 | assert_match /comment title/, sent.body |
| 51 | end | 51 | end |
| 52 | 52 | ||
| 53 | should 'include comment text in the e-mail' do | 53 | should 'include comment text in the e-mail' do |
| 54 | - @article.comments << Comment.new(:author => @profile, :title => 'comment title', :body => 'comment body') | 54 | + Comment.create(:author => @profile, :title => 'comment title', :body => 'comment body', :source => @article) |
| 55 | sent = ActionMailer::Base.deliveries.first | 55 | sent = ActionMailer::Base.deliveries.first |
| 56 | assert_match /comment body/, sent.body | 56 | assert_match /comment body/, sent.body |
| 57 | end | 57 | end |
test/unit/comment_test.rb
| @@ -339,8 +339,6 @@ class CommentTest < ActiveSupport::TestCase | @@ -339,8 +339,6 @@ class CommentTest < ActiveSupport::TestCase | ||
| 339 | assert c.rejected? | 339 | assert c.rejected? |
| 340 | end | 340 | end |
| 341 | 341 | ||
| 342 | - should 'update activity when add a comment' | ||
| 343 | - | ||
| 344 | should 'update article activity when add a comment' do | 342 | should 'update article activity when add a comment' do |
| 345 | profile = create_user('testuser').person | 343 | profile = create_user('testuser').person |
| 346 | article = create(TinyMceArticle, :profile => profile) | 344 | article = create(TinyMceArticle, :profile => profile) |
test/unit/enterprise_test.rb
| @@ -451,5 +451,36 @@ class EnterpriseTest < ActiveSupport::TestCase | @@ -451,5 +451,36 @@ class EnterpriseTest < ActiveSupport::TestCase | ||
| 451 | assert_respond_to e, :production_costs | 451 | assert_respond_to e, :production_costs |
| 452 | end | 452 | end |
| 453 | 453 | ||
| 454 | - should 'return tracked_actions and scraps as activities' | 454 | + should 'return scraps as activities' do |
| 455 | + person = fast_create(Person) | ||
| 456 | + enterprise = fast_create(Enterprise) | ||
| 457 | + | ||
| 458 | + | ||
| 459 | + activity = ActionTracker::Record.last | ||
| 460 | + scrap = Scrap.create!(defaults_for_scrap(:sender => person, :receiver => enterprise, :content => 'A scrap')) | ||
| 461 | + | ||
| 462 | + assert_equal [scrap], enterprise.activities.map { |a| a.klass.constantize.find(a.id) } | ||
| 463 | + end | ||
| 464 | + | ||
| 465 | + should 'return tracked_actions of community as activities' do | ||
| 466 | + person = fast_create(Person) | ||
| 467 | + enterprise = fast_create(Enterprise) | ||
| 468 | + | ||
| 469 | + UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | ||
| 470 | + article = create(TinyMceArticle, :profile => enterprise, :name => 'An article about free software') | ||
| 471 | + | ||
| 472 | + assert_equal [article.activity], enterprise.activities.map { |a| a.klass.constantize.find(a.id) } | ||
| 473 | + end | ||
| 474 | + | ||
| 475 | + should 'not return tracked_actions of other community as activities' do | ||
| 476 | + person = fast_create(Person) | ||
| 477 | + enterprise = fast_create(Enterprise) | ||
| 478 | + enterprise2 = fast_create(Enterprise) | ||
| 479 | + | ||
| 480 | + UserStampSweeper.any_instance.expects(:current_user).returns(person).at_least_once | ||
| 481 | + article = create(TinyMceArticle, :profile => enterprise2, :name => 'Another article about free software') | ||
| 482 | + | ||
| 483 | + assert_not_includes enterprise.activities.map { |a| a.klass.constantize.find(a.id) }, article.activity | ||
| 484 | + end | ||
| 485 | + | ||
| 455 | end | 486 | end |
test/unit/forum_helper_test.rb
| @@ -63,7 +63,7 @@ class ForumHelperTest < ActiveSupport::TestCase | @@ -63,7 +63,7 @@ class ForumHelperTest < ActiveSupport::TestCase | ||
| 63 | some_post.comments << Comment.new(:name => 'John', :email => 'lenon@example.com', :title => 'test', :body => 'test') | 63 | some_post.comments << Comment.new(:name => 'John', :email => 'lenon@example.com', :title => 'test', :body => 'test') |
| 64 | c = Comment.last | 64 | c = Comment.last |
| 65 | out = last_topic_update(some_post) | 65 | out = last_topic_update(some_post) |
| 66 | - assert_match "#{c.created_at.to_s} ago by John", out | 66 | + assert_match "#{c.created_at.to_s} by John", out |
| 67 | assert_match 'John', out | 67 | assert_match 'John', out |
| 68 | end | 68 | end |
| 69 | 69 |
test/unit/textile_article_test.rb
| @@ -47,7 +47,7 @@ class TextileArticleTest < ActiveSupport::TestCase | @@ -47,7 +47,7 @@ class TextileArticleTest < ActiveSupport::TestCase | ||
| 47 | assert_equal 3, ActionTracker::Record.count | 47 | assert_equal 3, ActionTracker::Record.count |
| 48 | end | 48 | end |
| 49 | 49 | ||
| 50 | - should 'update activity on update of an article' do | 50 | + should 'not update activity on update of an article' do |
| 51 | ActionTracker::Record.delete_all | 51 | ActionTracker::Record.delete_all |
| 52 | profile = fast_create(Profile) | 52 | profile = fast_create(Profile) |
| 53 | article = create(TextileArticle, :profile_id => profile.id) | 53 | article = create(TextileArticle, :profile_id => profile.id) |
| @@ -57,7 +57,7 @@ class TextileArticleTest < ActiveSupport::TestCase | @@ -57,7 +57,7 @@ class TextileArticleTest < ActiveSupport::TestCase | ||
| 57 | article.name = 'foo' | 57 | article.name = 'foo' |
| 58 | article.save! | 58 | article.save! |
| 59 | end | 59 | end |
| 60 | - assert_equal time + 1.day, article.activity.updated_at | 60 | + assert_equal time, article.activity.updated_at |
| 61 | end | 61 | end |
| 62 | 62 | ||
| 63 | should 'not create trackers activity when updating articles' do | 63 | should 'not create trackers activity when updating articles' do |
test/unit/tiny_mce_article_test.rb
| @@ -144,7 +144,7 @@ class TinyMceArticleTest < ActiveSupport::TestCase | @@ -144,7 +144,7 @@ class TinyMceArticleTest < ActiveSupport::TestCase | ||
| 144 | assert_equal 3, ActionTracker::Record.count | 144 | assert_equal 3, ActionTracker::Record.count |
| 145 | end | 145 | end |
| 146 | 146 | ||
| 147 | - should 'update activity on update of an article' do | 147 | + should 'not update activity on update of an article' do |
| 148 | ActionTracker::Record.delete_all | 148 | ActionTracker::Record.delete_all |
| 149 | profile = fast_create(Profile) | 149 | profile = fast_create(Profile) |
| 150 | article = create(TinyMceArticle, :profile_id => profile.id) | 150 | article = create(TinyMceArticle, :profile_id => profile.id) |
| @@ -154,7 +154,7 @@ class TinyMceArticleTest < ActiveSupport::TestCase | @@ -154,7 +154,7 @@ class TinyMceArticleTest < ActiveSupport::TestCase | ||
| 154 | article.name = 'foo' | 154 | article.name = 'foo' |
| 155 | article.save! | 155 | article.save! |
| 156 | end | 156 | end |
| 157 | - assert_equal time + 1.day, article.activity.updated_at | 157 | + assert_equal time, article.activity.updated_at |
| 158 | end | 158 | end |
| 159 | 159 | ||
| 160 | should 'not create trackers activity when updating articles' do | 160 | should 'not create trackers activity when updating articles' do |
test/unit/uploaded_file_test.rb
| @@ -231,10 +231,10 @@ class UploadedFileTest < ActiveSupport::TestCase | @@ -231,10 +231,10 @@ class UploadedFileTest < ActiveSupport::TestCase | ||
| 231 | should 'return a thumbnail for images' do | 231 | should 'return a thumbnail for images' do |
| 232 | f = UploadedFile.new | 232 | f = UploadedFile.new |
| 233 | f.expects(:image?).returns(true) | 233 | f.expects(:image?).returns(true) |
| 234 | - f.expects(:full_filename).with(:thumb).returns(File.join(RAILS_ROOT, 'public', 'images', '0000', '0005', 'x.png')) | 234 | + f.expects(:full_filename).with(:display).returns(File.join(RAILS_ROOT, 'public', 'images', '0000', '0005', 'x.png')) |
| 235 | assert_equal '/images/0000/0005/x.png', f.thumbnail_path | 235 | assert_equal '/images/0000/0005/x.png', f.thumbnail_path |
| 236 | f = UploadedFile.new | 236 | f = UploadedFile.new |
| 237 | - f.stubs(:full_filename).with(:thumb).returns(File.join(RAILS_ROOT, 'public', 'images', '0000', '0005', 'x.png')) | 237 | + f.stubs(:full_filename).with(:display).returns(File.join(RAILS_ROOT, 'public', 'images', '0000', '0005', 'x.png')) |
| 238 | f.expects(:image?).returns(false) | 238 | f.expects(:image?).returns(false) |
| 239 | assert_nil f.thumbnail_path | 239 | assert_nil f.thumbnail_path |
| 240 | end | 240 | end |
| @@ -330,11 +330,11 @@ class UploadedFileTest < ActiveSupport::TestCase | @@ -330,11 +330,11 @@ class UploadedFileTest < ActiveSupport::TestCase | ||
| 330 | assert_equal 'hello_world.php.txt', file.filename | 330 | assert_equal 'hello_world.php.txt', file.filename |
| 331 | end | 331 | end |
| 332 | 332 | ||
| 333 | - should 'use the gallery as the parent for action tracker' do | 333 | + should 'use itself as target for action tracker' do |
| 334 | p = fast_create(Gallery, :profile_id => @profile.id) | 334 | p = fast_create(Gallery, :profile_id => @profile.id) |
| 335 | f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile) | 335 | f = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :parent => p, :profile => @profile) |
| 336 | - ta = ActionTracker::Record.last(:conditions => { :verb => "upload_image" }) | ||
| 337 | - assert_equal f.parent, ta.target | 336 | + ta = f.activity |
| 337 | + assert_equal f, ta.target | ||
| 338 | end | 338 | end |
| 339 | 339 | ||
| 340 | end | 340 | end |