Commit 3c2de986d2eba190314b40e2961d7be7ac6327d4
1 parent
356ed1a3
Exists in
staging
and in
42 other branches
Validate article type in SuggestArticle
Showing
2 changed files
with
17 additions
and
1 deletions
Show diff stats
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 < 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 | ... | ... |