From 843344641754928922af8c5c7aba52be52862f0e Mon Sep 17 00:00:00 2001 From: AntonioTerceiro Date: Fri, 18 Jan 2008 21:12:13 +0000 Subject: [PATCH] ActionItem152: adding ArticleBlock; first try --- app/models/article_block.rb | 32 ++++++++++++++++++++++++++++++++ test/unit/article_block_test.rb | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 0 deletions(-) create mode 100644 app/models/article_block.rb create mode 100644 test/unit/article_block_test.rb diff --git a/app/models/article_block.rb b/app/models/article_block.rb new file mode 100644 index 0000000..2286a0b --- /dev/null +++ b/app/models/article_block.rb @@ -0,0 +1,32 @@ +class ArticleBlock < Block + + def self.description + _('Display one of your contents.') + end + + def content + article.to_html + end + + def article_id + self.settings[:article_id] + end + + def article_id= value + self.settings[:article_id] = value + end + + def article(reload = false) + @article = nil if reload + if @article || article_id + @article = Article.find(article_id) + end + @article + end + + def article=(obj) + self.article_id = obj.id + @article = obj + end + +end diff --git a/test/unit/article_block_test.rb b/test/unit/article_block_test.rb new file mode 100644 index 0000000..dd072cd --- /dev/null +++ b/test/unit/article_block_test.rb @@ -0,0 +1,33 @@ +require File.dirname(__FILE__) + '/../test_helper' + +class ArticleBlockTest < Test::Unit::TestCase + + should 'describe itself' do + assert_not_equal Block.description, ArticleBlock.description + end + + should "take article's content" do + block = ArticleBlock.new + html = mock + article = mock + article.expects(:to_html).returns(html) + block.stubs(:article).returns(article) + + assert_same html, block.content + end + + should 'refer to an article' do + profile = create_user('testuser').person + article = profile.articles.build(:name => 'test article') + article.save! + + block = ArticleBlock.new + block.article = article + + block.save! + + assert_equal article, Block.find(block.id).article + + end + +end -- libgit2 0.21.2