Commit 3c2de986d2eba190314b40e2961d7be7ac6327d4

Authored by Victor Costa
1 parent 356ed1a3

Validate article type in SuggestArticle

app/models/suggest_article.rb
... ... @@ -36,7 +36,11 @@ class SuggestArticle < Task
36 36 end
37 37  
38 38 def article_type
39   - (article[:type] || 'TinyMceArticle').constantize
  39 + if article[:type].present?
  40 + type = article[:type].constantize
  41 + return type if type < Article
  42 + end
  43 + TinyMceArticle
40 44 end
41 45  
42 46 def perform
... ...
test/unit/suggest_article_test.rb
... ... @@ -230,4 +230,16 @@ class SuggestArticleTest &lt; ActiveSupport::TestCase
230 230 end
231 231 end
232 232  
  233 + should 'accept article type parameter' do
  234 + t = SuggestArticle.new
  235 + t.article = {:name => 'name', :body => 'body', :type => 'TextArticle'}
  236 + t.article_type == TextArticle
  237 + end
  238 +
  239 + should 'fallback to tinymce when type parameter is invalid' do
  240 + t = SuggestArticle.new
  241 + t.article = {:name => 'name', :body => 'body', :type => 'Comment'}
  242 + t.article_type == TinyMceArticle
  243 + end
  244 +
233 245 end
... ...