From 3c2de986d2eba190314b40e2961d7be7ac6327d4 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Mon, 27 Apr 2015 19:04:56 -0300 Subject: [PATCH] Validate article type in SuggestArticle --- app/models/suggest_article.rb | 6 +++++- test/unit/suggest_article_test.rb | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) 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