diff --git a/app/models/suggest_article.rb b/app/models/suggest_article.rb index 82f50b5..227aa15 100644 --- a/app/models/suggest_article.rb +++ b/app/models/suggest_article.rb @@ -36,7 +36,11 @@ class SuggestArticle < Task end def article_type - (article[:type] || 'TinyMceArticle').constantize + if article[:type].present? + type = article[:type].constantize + return type if type < Article + end + TinyMceArticle end def perform diff --git a/test/unit/suggest_article_test.rb b/test/unit/suggest_article_test.rb index 253822e..d31d13c 100644 --- a/test/unit/suggest_article_test.rb +++ b/test/unit/suggest_article_test.rb @@ -230,4 +230,16 @@ class SuggestArticleTest < ActiveSupport::TestCase end end + should 'accept article type parameter' do + t = SuggestArticle.new + t.article = {:name => 'name', :body => 'body', :type => 'TextArticle'} + t.article_type == TextArticle + end + + should 'fallback to tinymce when type parameter is invalid' do + t = SuggestArticle.new + t.article = {:name => 'name', :body => 'body', :type => 'Comment'} + t.article_type == TinyMceArticle + end + end -- libgit2 0.21.2