Commit 88d1389164217db4432b9349d65af228b747b84e
1 parent
6a3b50fc
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Refactor SuggestArticle to accept other article types
Showing
10 changed files
with
75 additions
and
87 deletions
Show diff stats
app/models/article.rb
| ... | ... | @@ -5,7 +5,7 @@ class Article < ActiveRecord::Base |
| 5 | 5 | :allow_members_to_edit, :translation_of_id, :language, |
| 6 | 6 | :license_id, :parent_id, :display_posts_in_current_language, |
| 7 | 7 | :category_ids, :posts_per_page, :moderate_comments, |
| 8 | - :accept_comments, :feed, :published, :source, | |
| 8 | + :accept_comments, :feed, :published, :source, :source_name, | |
| 9 | 9 | :highlighted, :notify_comments, :display_hits, :slug, |
| 10 | 10 | :external_feed_builder, :display_versions, :external_link, |
| 11 | 11 | :image_builder, :show_to_followers | ... | ... |
app/models/suggest_article.rb
| 1 | 1 | class SuggestArticle < Task |
| 2 | 2 | |
| 3 | - validates_presence_of :target_id, :article_name, :article_body | |
| 3 | + validates_presence_of :target_id | |
| 4 | 4 | validates_presence_of :email, :name, :if => Proc.new { |task| task.requestor.blank? } |
| 5 | + validates_associated :article_object | |
| 5 | 6 | |
| 6 | 7 | settings_items :email, :type => String |
| 7 | 8 | settings_items :name, :type => String |
| 8 | - settings_items :article_name, :type => String | |
| 9 | - settings_items :article_body, :type => String | |
| 10 | - settings_items :article_abstract, :type => String | |
| 11 | - settings_items :article_parent_id, :type => String | |
| 12 | - settings_items :source, :type => String | |
| 13 | - settings_items :source_name, :type => String | |
| 14 | - settings_items :highlighted, :type => :boolean, :default => false | |
| 15 | 9 | settings_items :ip_address, :type => String |
| 16 | 10 | settings_items :user_agent, :type => String |
| 17 | 11 | settings_items :referrer, :type => String |
| 12 | + settings_items :article, :type => Hash, :default => {} | |
| 18 | 13 | |
| 19 | 14 | after_create :schedule_spam_checking |
| 20 | 15 | |
| ... | ... | @@ -28,24 +23,34 @@ class SuggestArticle < Task |
| 28 | 23 | requestor ? "#{requestor.name}" : "#{name} (#{email})" |
| 29 | 24 | end |
| 30 | 25 | |
| 26 | + def article_object | |
| 27 | + if @article_object.nil? | |
| 28 | + @article_object = article_type.new(article.merge({:profile => target})) | |
| 29 | + if requestor.present? | |
| 30 | + @article_object.author = requestor | |
| 31 | + else | |
| 32 | + @article_object.author_name = name | |
| 33 | + end | |
| 34 | + end | |
| 35 | + @article_object | |
| 36 | + end | |
| 37 | + | |
| 38 | + def article_type | |
| 39 | + (article[:type] || 'TinyMceArticle').constantize | |
| 40 | + end | |
| 41 | + | |
| 31 | 42 | def perform |
| 32 | - task = TinyMceArticle.new | |
| 33 | - task.profile = target | |
| 34 | - task.name = article_name | |
| 35 | - task.author_name = name | |
| 36 | - task.body = article_body | |
| 37 | - task.abstract = article_abstract | |
| 38 | - task.parent_id = article_parent_id | |
| 39 | - task.source = source | |
| 40 | - task.source_name = source_name | |
| 41 | - task.highlighted = highlighted | |
| 42 | - task.save! | |
| 43 | + article_object.save! | |
| 43 | 44 | end |
| 44 | 45 | |
| 45 | 46 | def title |
| 46 | 47 | _("Article suggestion") |
| 47 | 48 | end |
| 48 | 49 | |
| 50 | + def article_name | |
| 51 | + article[:name] | |
| 52 | + end | |
| 53 | + | |
| 49 | 54 | def subject |
| 50 | 55 | article_name |
| 51 | 56 | end | ... | ... |
app/views/cms/suggest_an_article.html.erb
| ... | ... | @@ -6,18 +6,18 @@ |
| 6 | 6 | |
| 7 | 7 | <%= labelled_form_for 'task' do |f| %> |
| 8 | 8 | |
| 9 | - <%= required labelled_form_field(_('Title'), text_field(:task, 'article_name', :size => 50)) %> | |
| 9 | + <%= required labelled_form_field(_('Title'), text_field('task[article]', 'name', :size => 50)) %> | |
| 10 | 10 | |
| 11 | - <%= labelled_form_field(_('Source'), text_field(:task, 'source_name')) %> | |
| 11 | + <%= labelled_form_field(_('Source'), text_field('task[article]', 'source_name')) %> | |
| 12 | 12 | |
| 13 | - <%= labelled_form_field(_('Source URL'), text_field(:task, 'source')) %> | |
| 13 | + <%= labelled_form_field(_('Source URL'), text_field('task[article]', 'source')) %> | |
| 14 | 14 | |
| 15 | 15 | <% unless logged_in? %> |
| 16 | 16 | <%= required labelled_form_field(_('Your name'), text_field(:task, 'name')) %> |
| 17 | 17 | <%= required labelled_form_field(_('Email'), text_field(:task, 'email')) %> |
| 18 | 18 | <% end %> |
| 19 | 19 | |
| 20 | - <%= render :partial => 'shared/lead_and_body', :locals => {:tiny_mce => true, :object => :task, :abstract_method => 'article_abstract', :body_method => 'article_body'} %> | |
| 20 | + <%= render :partial => 'shared/lead_and_body', :locals => {:tiny_mce => true, :object => 'task[article]'} %> | |
| 21 | 21 | |
| 22 | 22 | <%= hidden_field_tag('back_to', @back_to) %> |
| 23 | 23 | ... | ... |
app/views/spam/_suggest_article.html.erb
| ... | ... | @@ -7,13 +7,13 @@ |
| 7 | 7 | <ul class="suggest-article-details" style="display: none"> |
| 8 | 8 | <li><strong><%=_('Sent by')%></strong>: <%=task.name%> </li> |
| 9 | 9 | <li><strong><%=_('Email')%></strong>: <%=task.email%> </li> |
| 10 | - <li><strong><%=_('Source')%></strong>: <%=task.source_name%> </li> | |
| 11 | - <li><strong><%=_('Source URL')%></strong>: <%=task.source%> </li> | |
| 12 | - <li><strong><%=_('Folder')%></strong>: <%=(a = Article.find_by_id(task.article_parent_id))?a.name : '<em>' + s_('Folder|none') + '</em>'%> </li> | |
| 13 | - <li><strong><%=_('Lead')%></strong>: <%=task.article_abstract.blank? ? '<em>' + s_('Abstract|empty') + '</em>' : task.article_abstract%> </li> | |
| 10 | + <li><strong><%=_('Source')%></strong>: <%=task.article_object.source_name%> </li> | |
| 11 | + <li><strong><%=_('Source URL')%></strong>: <%=task.article_object.source%> </li> | |
| 12 | + <li><strong><%=_('Folder')%></strong>: <%=(a = Article.find_by_id(task.article_object.parent_id))?a.name : '<em>' + s_('Folder|none') + '</em>'%> </li> | |
| 13 | + <li><strong><%=_('Lead')%></strong>: <%=task.article_object.abstract.blank? ? '<em>' + s_('Abstract|empty') + '</em>' : task.article_object.abstract%> </li> | |
| 14 | 14 | <li><strong><%=_('Body')%></strong>: |
| 15 | 15 | <div class='suggest-article-body'> |
| 16 | - <%= task.article_body %> | |
| 16 | + <%= task.article_object.body %> | |
| 17 | 17 | </div> |
| 18 | 18 | </li> |
| 19 | 19 | </ul> | ... | ... |
app/views/tasks/_suggest_article_accept_details.html.erb
| ... | ... | @@ -4,11 +4,14 @@ |
| 4 | 4 | <%= labelled_form_field(_("Sent by: "), f.text_field(:name)) %> |
| 5 | 5 | <p><%= label_tag(_("Email: %s") % task.email) %> </p> |
| 6 | 6 | <% end %> |
| 7 | -<%= required labelled_form_field(_('Title'), f.text_field(:article_name, :size => 50)) %> | |
| 8 | -<%= labelled_form_field(_('Source'), f.text_field(:source_name)) %> | |
| 9 | -<%= labelled_form_field(_("Source URL"), f.text_field(:source)) %> | |
| 10 | 7 | |
| 11 | -<%= select_profile_folder(_('Select the folder where the article must be published'), "tasks[#{task.id}][task][article_parent_id]", task.target) %> | |
| 12 | -<%= labelled_form_field(_('Highlight this article'), f.check_box(:highlighted)) %> | |
| 8 | +<%= f.fields_for 'article', OpenStruct.new(task.article) do |a| %> | |
| 9 | + <%= required labelled_form_field(_('Title'), a.text_field(:name, :size => 50)) %> | |
| 10 | + <%= labelled_form_field(_('Source'), a.text_field(:source_name)) %> | |
| 11 | + <%= labelled_form_field(_("Source URL"), a.text_field(:source)) %> | |
| 13 | 12 | |
| 14 | -<%= render :partial => 'shared/lead_and_body', :locals => {:tiny_mce => true, :f => f, :abstract_method => 'article_abstract', :body_method => 'article_body', :lead_id => task.id} %> | |
| 13 | + <%= select_profile_folder(_('Select the folder where the article must be published'), "tasks[#{task.id}][task][article][parent_id]", task.target) %> | |
| 14 | + <%= labelled_form_field(_('Highlight this article'), a.check_box(:highlighted)) %> | |
| 15 | + | |
| 16 | + <%= render :partial => 'shared/lead_and_body', :locals => {:tiny_mce => true, :f => a, :lead_id => task.id} %> | |
| 17 | +<% end %> | ... | ... |
test/factories.rb
| ... | ... | @@ -454,7 +454,7 @@ module Noosfero::Factory |
| 454 | 454 | end |
| 455 | 455 | |
| 456 | 456 | def defaults_for_suggest_article |
| 457 | - { :name => 'Sender', :email => 'sender@example.com', :article_name => 'Some title', :article_body => 'some body text', :article_abstract => 'some abstract text'} | |
| 457 | + { :name => 'Sender', :email => 'sender@example.com', :article => {:name => 'Some title', :body => 'some body text', :abstract => 'some abstract text'}} | |
| 458 | 458 | end |
| 459 | 459 | |
| 460 | 460 | def defaults_for_comment(params = {}) | ... | ... |
test/functional/cms_controller_test.rb
| ... | ... | @@ -1439,22 +1439,22 @@ class CmsControllerTest < ActionController::TestCase |
| 1439 | 1439 | logout |
| 1440 | 1440 | get :suggest_an_article, :profile => profile.identifier |
| 1441 | 1441 | |
| 1442 | - assert_tag :tag => 'textarea', :attributes => { :name => /article_abstract/, :class => 'mceEditor' } | |
| 1443 | - assert_tag :tag => 'textarea', :attributes => { :name => /article_body/, :class => 'mceEditor' } | |
| 1442 | + assert_tag :tag => 'textarea', :attributes => { :name => /task\[article\]\[abstract\]/, :class => 'mceEditor' } | |
| 1443 | + assert_tag :tag => 'textarea', :attributes => { :name => /task\[article\]\[body\]/, :class => 'mceEditor' } | |
| 1444 | 1444 | end |
| 1445 | 1445 | |
| 1446 | 1446 | should 'create a task suggest task to a profile' do |
| 1447 | 1447 | c = Community.create!(:name => 'test comm', :identifier => 'test_comm', :moderated_articles => true) |
| 1448 | 1448 | |
| 1449 | 1449 | assert_difference 'SuggestArticle.count' do |
| 1450 | - post :suggest_an_article, :profile => c.identifier, :back_to => 'action_view', :task => {:article_name => 'some name', :article_body => 'some body', :email => 'some@localhost.com', :name => 'some name'} | |
| 1450 | + post :suggest_an_article, :profile => c.identifier, :back_to => 'action_view', :task => {:article => {:name => 'some name', :body => 'some body'}, :email => 'some@localhost.com', :name => 'some name'} | |
| 1451 | 1451 | end |
| 1452 | 1452 | end |
| 1453 | 1453 | |
| 1454 | 1454 | should 'create suggest task with logged in user as the article author' do |
| 1455 | 1455 | c = Community.create!(:name => 'test comm', :identifier => 'test_comm', :moderated_articles => true) |
| 1456 | 1456 | |
| 1457 | - post :suggest_an_article, :profile => c.identifier, :back_to => 'action_view', :task => {:article_name => 'some name', :article_body => 'some body'} | |
| 1457 | + post :suggest_an_article, :profile => c.identifier, :back_to => 'action_view', :task => {:article => {:name => 'some name', :body => 'some body'}} | |
| 1458 | 1458 | assert_equal profile, SuggestArticle.last.requestor |
| 1459 | 1459 | end |
| 1460 | 1460 | ... | ... |
test/functional/spam_controller_test.rb
| ... | ... | @@ -10,7 +10,7 @@ class SpamControllerTest < ActionController::TestCase |
| 10 | 10 | @article = fast_create(TextileArticle, :profile_id => @community.id) |
| 11 | 11 | @spam_comment = fast_create(Comment, :source_id => @article.id, :spam => true, :name => 'foo', :email => 'foo@example.com') |
| 12 | 12 | |
| 13 | - @spam_suggest_article = SuggestArticle.create!(:name => 'spammer', :article_name => 'Spam article', :email => 'spammer@shady.place', :article_body => "Something you don't need", :target => @community, :spam => true) | |
| 13 | + @spam_suggest_article = SuggestArticle.create!(:name => 'spammer', :article => {:name => 'Spam article', :body => "Something you don't need"}, :email => 'spammer@shady.place', :target => @community, :spam => true) | |
| 14 | 14 | login_as @profile.identifier |
| 15 | 15 | end |
| 16 | 16 | ... | ... |
test/functional/tasks_controller_test.rb
| ... | ... | @@ -264,11 +264,11 @@ class TasksControllerTest < ActionController::TestCase |
| 264 | 264 | c = fast_create(Community) |
| 265 | 265 | c.add_admin profile |
| 266 | 266 | @controller.stubs(:profile).returns(c) |
| 267 | - t = SuggestArticle.create!(:article_name => 'test name', :article_abstract => 'test abstract', :article_body => 'test body', :name => 'some name', :email => 'test@localhost.com', :target => c) | |
| 267 | + t = SuggestArticle.create!(:article => {:name => 'test name', :abstract => 'test abstract', :body => 'test body'}, :name => 'some name', :email => 'test@localhost.com', :target => c) | |
| 268 | 268 | |
| 269 | 269 | get :index |
| 270 | - assert_tag :tag => 'textarea', :content => /test abstract/, :attributes => { :name => /article_abstract/, :class => 'mceEditor' } | |
| 271 | - assert_tag :tag => 'textarea', :content => /test body/, :attributes => { :name => /article_body/, :class => 'mceEditor' } | |
| 270 | + assert_tag :tag => 'textarea', :content => /test abstract/, :attributes => { :name => /tasks\[#{t.id}\]\[task\]\[article\]\[abstract\]/, :class => 'mceEditor' } | |
| 271 | + assert_tag :tag => 'textarea', :content => /test body/, :attributes => { :name => /tasks\[#{t.id}\]\[task\]\[article\]\[body\]/, :class => 'mceEditor' } | |
| 272 | 272 | end |
| 273 | 273 | |
| 274 | 274 | should 'create TinyMceArticle article after finish approve suggested article task' do |
| ... | ... | @@ -276,7 +276,7 @@ class TasksControllerTest < ActionController::TestCase |
| 276 | 276 | c = fast_create(Community) |
| 277 | 277 | c.affiliate(profile, Profile::Roles.all_roles(profile.environment.id)) |
| 278 | 278 | @controller.stubs(:profile).returns(c) |
| 279 | - t = SuggestArticle.create!(:article_name => 'test name', :article_body => 'test body', :name => 'some name', :email => 'test@localhost.com', :target => c) | |
| 279 | + t = SuggestArticle.create!(:article => {:name => 'test name', :body => 'test body'}, :name => 'some name', :email => 'test@localhost.com', :target => c) | |
| 280 | 280 | |
| 281 | 281 | post :close, :tasks => {t.id => { :task => {}, :decision => "finish"}} |
| 282 | 282 | assert_not_nil TinyMceArticle.find(:first) |
| ... | ... | @@ -288,16 +288,13 @@ class TasksControllerTest < ActionController::TestCase |
| 288 | 288 | c.affiliate(profile, Profile::Roles.all_roles(profile.environment.id)) |
| 289 | 289 | @controller.stubs(:profile).returns(c) |
| 290 | 290 | t = SuggestArticle.new |
| 291 | - t.article_name = 'test name' | |
| 292 | - t.article_body = 'test body' | |
| 291 | + t.article = {:name => 'test name', :body => 'test body', :source => 'http://test.com', :source_name => 'some source name'} | |
| 293 | 292 | t.name = 'some name' |
| 294 | - t.source = 'http://test.com' | |
| 295 | - t.source_name = 'some source name' | |
| 296 | 293 | t.email = 'test@localhost.com' |
| 297 | 294 | t.target = c |
| 298 | 295 | t.save! |
| 299 | 296 | |
| 300 | - post :close, :tasks => {t.id => { :task => {:article_name => 'new article name', :article_body => 'new body', :source => 'http://www.noosfero.com', :source_name => 'new source', :name => 'new name'}, :decision => "finish"}} | |
| 297 | + post :close, :tasks => {t.id => { :task => {:article => {:name => 'new article name', :body => 'new body', :source => 'http://www.noosfero.com', :source_name => 'new source'}, :name => 'new name'}, :decision => "finish"}} | |
| 301 | 298 | assert_equal 'new article name', TinyMceArticle.find(:first).name |
| 302 | 299 | assert_equal 'new name', TinyMceArticle.find(:first).author_name |
| 303 | 300 | assert_equal 'new body', TinyMceArticle.find(:first).body |
| ... | ... | @@ -310,7 +307,7 @@ class TasksControllerTest < ActionController::TestCase |
| 310 | 307 | c = fast_create(Community) |
| 311 | 308 | c.add_admin profile |
| 312 | 309 | @controller.stubs(:profile).returns(c) |
| 313 | - t = SuggestArticle.create!(:article_name => 'test name', :article_abstract => 'test abstract', :article_body => 'test body', :name => 'some name', :email => 'test@localhost.com', :target => c) | |
| 310 | + t = SuggestArticle.create!(:article => {:name => 'test name', :abstract => 'test abstract', :body => 'test body'}, :name => 'some name', :email => 'test@localhost.com', :target => c) | |
| 314 | 311 | |
| 315 | 312 | get :index |
| 316 | 313 | assert_select "#tasks_#{t.id}_task_name" |
| ... | ... | @@ -321,7 +318,7 @@ class TasksControllerTest < ActionController::TestCase |
| 321 | 318 | c = fast_create(Community) |
| 322 | 319 | c.add_admin profile |
| 323 | 320 | @controller.stubs(:profile).returns(c) |
| 324 | - t = SuggestArticle.create!(:article_name => 'test name', :article_abstract => 'test abstract', :article_body => 'test body', :requestor => fast_create(Person), :target => c) | |
| 321 | + t = SuggestArticle.create!(:article => {:name => 'test name', :abstract => 'test abstract', :body => 'test body'}, :requestor => fast_create(Person), :target => c) | |
| 325 | 322 | |
| 326 | 323 | get :index |
| 327 | 324 | assert_select "#tasks_#{t.id}_task_name", 0 | ... | ... |
test/unit/suggest_article_test.rb
| ... | ... | @@ -13,16 +13,9 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 13 | 13 | |
| 14 | 14 | should 'have the article_name' do |
| 15 | 15 | t = SuggestArticle.new |
| 16 | - assert !t.errors[:article_name.to_s].present? | |
| 17 | - t.valid? | |
| 18 | - assert t.errors[:article_name.to_s].present? | |
| 19 | - end | |
| 20 | - | |
| 21 | - should 'have the article_body' do | |
| 22 | - t = SuggestArticle.new | |
| 23 | - assert !t.errors[:article_body.to_s].present? | |
| 24 | - t.valid? | |
| 25 | - assert t.errors[:article_body.to_s].present? | |
| 16 | + assert !t.article_object.errors[:name].present? | |
| 17 | + t.article_object.valid? | |
| 18 | + assert t.article_object.errors[:name].present? | |
| 26 | 19 | end |
| 27 | 20 | |
| 28 | 21 | should 'have the email' do |
| ... | ... | @@ -46,19 +39,12 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 46 | 39 | assert t.errors[:target_id.to_s].present? |
| 47 | 40 | end |
| 48 | 41 | |
| 49 | - should 'have the article_abstract' do | |
| 50 | - t = SuggestArticle.new | |
| 51 | - assert t.respond_to?(:article_abstract) | |
| 52 | - end | |
| 53 | - | |
| 54 | - should 'have the article_parent_id' do | |
| 55 | - t = SuggestArticle.new | |
| 56 | - assert t.respond_to?(:article_parent_id) | |
| 57 | - end | |
| 58 | - | |
| 59 | - should 'source be defined' do | |
| 42 | + should 'have the article' do | |
| 60 | 43 | t = SuggestArticle.new |
| 61 | - assert t.respond_to?(:source) | |
| 44 | + assert t.respond_to?(:article_object) | |
| 45 | + assert !t.errors[:article_object].present? | |
| 46 | + t.valid? | |
| 47 | + assert t.errors[:article_object].present? | |
| 62 | 48 | end |
| 63 | 49 | |
| 64 | 50 | should 'create an article on with perfom method' do |
| ... | ... | @@ -66,9 +52,7 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 66 | 52 | name = 'some name' |
| 67 | 53 | body = 'some body' |
| 68 | 54 | abstract = 'some abstract' |
| 69 | - t.article_name = name | |
| 70 | - t.article_body = body | |
| 71 | - t.article_abstract = abstract | |
| 55 | + t.article = {:name => name, :body => body, :abstract => abstract} | |
| 72 | 56 | t.target = @profile |
| 73 | 57 | count = TinyMceArticle.count |
| 74 | 58 | t.perform |
| ... | ... | @@ -77,8 +61,7 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 77 | 61 | |
| 78 | 62 | should 'fill source name and URL into created article' do |
| 79 | 63 | t = build(SuggestArticle, :target => @profile) |
| 80 | - t.source_name = 'GNU project' | |
| 81 | - t.source = 'http://www.gnu.org/' | |
| 64 | + t.article.merge!({:source_name => 'GNU project', :source => 'http://www.gnu.org/'}) | |
| 82 | 65 | t.perform |
| 83 | 66 | |
| 84 | 67 | article = TinyMceArticle.last |
| ... | ... | @@ -95,7 +78,7 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 95 | 78 | |
| 96 | 79 | should 'highlight created article' do |
| 97 | 80 | t = build(SuggestArticle, :target => @profile) |
| 98 | - t.highlighted = true | |
| 81 | + t.article[:highlighted] = true | |
| 99 | 82 | t.perform |
| 100 | 83 | |
| 101 | 84 | article = TinyMceArticle.last(:conditions => { :name => t.article_name}) # just to be sure |
| ... | ... | @@ -132,19 +115,19 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 132 | 115 | end |
| 133 | 116 | |
| 134 | 117 | should 'have target notification message' do |
| 135 | - task = build(SuggestArticle, :target => @profile, :article_name => 'suggested article', :name => 'johndoe') | |
| 118 | + task = build(SuggestArticle, :target => @profile, :article => {:name => 'suggested article'}, :name => 'johndoe') | |
| 136 | 119 | |
| 137 | 120 | assert_match(/#{task.name}.*suggested the publication of the article: #{task.subject}.*[\n]*.*to approve or reject/, task.target_notification_message) |
| 138 | 121 | end |
| 139 | 122 | |
| 140 | 123 | should 'have target notification description' do |
| 141 | - task = build(SuggestArticle,:target => @profile, :article_name => 'suggested article', :name => 'johndoe') | |
| 124 | + task = build(SuggestArticle,:target => @profile, :article => {:name => 'suggested article'}, :name => 'johndoe') | |
| 142 | 125 | |
| 143 | 126 | assert_match(/#{task.name}.*suggested the publication of the article: #{task.subject}/, task.target_notification_description) |
| 144 | 127 | end |
| 145 | 128 | |
| 146 | 129 | should 'deliver target notification message' do |
| 147 | - task = build(SuggestArticle, :target => @profile, :article_name => 'suggested article', :name => 'johndoe', :email => 'johndoe@example.com') | |
| 130 | + task = build(SuggestArticle, :target => @profile, :article => {:name => 'suggested article'}, :name => 'johndoe', :email => 'johndoe@example.com') | |
| 148 | 131 | |
| 149 | 132 | email = TaskMailer.target_notification(task, task.target_notification_message).deliver |
| 150 | 133 | |
| ... | ... | @@ -160,7 +143,7 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 160 | 143 | should 'delegate spam detection to plugins' do |
| 161 | 144 | Environment.default.enable_plugin(EverythingIsSpam) |
| 162 | 145 | |
| 163 | - t1 = build(SuggestArticle, :target => @profile, :article_name => 'suggested article', :name => 'johndoe', :email => 'johndoe@example.com') | |
| 146 | + t1 = build(SuggestArticle, :target => @profile, :article => {:name => 'suggested article'}, :name => 'johndoe', :email => 'johndoe@example.com') | |
| 164 | 147 | |
| 165 | 148 | EverythingIsSpam.any_instance.expects(:check_for_spam) |
| 166 | 149 | |
| ... | ... | @@ -189,7 +172,7 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 189 | 172 | should 'notify plugins of suggest_articles being marked as spam' do |
| 190 | 173 | Environment.default.enable_plugin(SpamNotification) |
| 191 | 174 | |
| 192 | - t = SuggestArticle.create!(:target => @profile, :article_name => 'suggested article', :name => 'johndoe', :article_body => 'wanna feel my body? my body baaaby', :email => 'johndoe@example.com') | |
| 175 | + t = SuggestArticle.create!(:target => @profile, :article => {:name => 'suggested article', :body => 'wanna feel my body? my body baaaby'}, :name => 'johndoe', :email => 'johndoe@example.com') | |
| 193 | 176 | |
| 194 | 177 | t.spam! |
| 195 | 178 | process_delayed_job_queue |
| ... | ... | @@ -200,7 +183,7 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 200 | 183 | should 'notify plugins of suggest_articles being marked as ham' do |
| 201 | 184 | Environment.default.enable_plugin(SpamNotification) |
| 202 | 185 | |
| 203 | - t = SuggestArticle.create!(:target => @profile, :article_name => 'suggested article', :name => 'johndoe', :article_body => 'wanna feel my body? my body baaaby', :email => 'johndoe@example.com') | |
| 186 | + t = SuggestArticle.create!(:target => @profile, :article => {:name => 'suggested article', :body => 'wanna feel my body? my body baaaby'}, :name => 'johndoe', :email => 'johndoe@example.com') | |
| 204 | 187 | |
| 205 | 188 | t.ham! |
| 206 | 189 | process_delayed_job_queue |
| ... | ... | @@ -219,7 +202,7 @@ class SuggestArticleTest < ActiveSupport::TestCase |
| 219 | 202 | end |
| 220 | 203 | |
| 221 | 204 | should 'log spammer ip after marking comment as spam' do |
| 222 | - t = SuggestArticle.create!(:target => @profile, :article_name => 'suggested article', :name => 'johndoe', :article_body => 'wanna feel my body? my body baaaby', :email => 'johndoe@example.com', :ip_address => '192.168.0.1') | |
| 205 | + t = SuggestArticle.create!(:target => @profile, :article => {:name => 'suggested article', :body => 'wanna feel my body? my body baaaby'}, :name => 'johndoe', :email => 'johndoe@example.com', :ip_address => '192.168.0.1') | |
| 223 | 206 | t.spam! |
| 224 | 207 | log = File.open('log/test_spammers.log') |
| 225 | 208 | assert_match "SuggestArticle-id: #{t.id} IP: 192.168.0.1", log.read | ... | ... |