Commit 4324e6fcba0f04cf9f779014e99e58a1739b2f50

Authored by AntonioTerceiro
1 parent b1ce5ed3

r228@sede: terceiro | 2007-07-28 16:57:19 -0300

ActionItem0: bringing Block from old flexible_template
 


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@232 3f533792-8f58-4932-b0fe-aaf55b0a4547
vendor/plugins/design/lib/design/block.rb 0 → 100644
... ... @@ -0,0 +1,47 @@
  1 +module Design
  2 +
  3 + # Box ix the base class for most of the content elements. A Box is contaied
  4 + # by a Block, which may contain several blocks.
  5 + class Block < ActiveRecord::Base
  6 +
  7 + set_table_name 'design_blocks'
  8 +
  9 + belongs_to :box
  10 +
  11 + #<tt>position</tt> codl not be nil and must be an integer
  12 + validates_numericality_of :position, :only_integer => true
  13 + #TODO see the internationalization
  14 + #, :message => _('%{fn} must be composed only of integers')
  15 +
  16 + # A block must be associated to a box
  17 + validates_presence_of :box_id
  18 +
  19 + # This method always return false excepted when redefined by the MainBlock class. It mean the current block it's not the result of a
  20 + # controller action.
  21 + #
  22 + # The child class MainBlock subscribes this method returning true.
  23 + def main?
  24 + false
  25 + end
  26 +
  27 + # Method that define the content code displayed in the box.
  28 + # This method cannot be used directly it will be redefined by the children classes
  29 + def content
  30 + raise "This is a main class, don't use it"
  31 + end
  32 +
  33 + #TODO see if this method is needed
  34 + def self.children
  35 + @@block_children
  36 + end
  37 +
  38 + private
  39 + @@block_children = Array.new
  40 +
  41 + def self.inherited(subclass)
  42 + @@block_children.push(subclass.to_s) unless @@block_children.include? subclass.to_s
  43 + end
  44 +
  45 + end
  46 +
  47 +end # END OF module Design
... ...
vendor/plugins/design/test/block_test.rb 0 → 100644
... ... @@ -0,0 +1,46 @@
  1 +require File.dirname(__FILE__) + '/test_helper'
  2 +
  3 +class BlockTest < Test::Unit::TestCase
  4 +
  5 + include Design
  6 +
  7 + def test_position_validation
  8 + b = Block.new
  9 + u = DesignTestUser.new
  10 + assert u.save
  11 + box = Box.new
  12 + box.owner = u
  13 + box.number = 1000
  14 + assert box.save
  15 + b.box = box
  16 + assert !b.valid?
  17 + assert b.errors.invalid?(:position)
  18 + assert_equal 1, b.errors.length
  19 + end
  20 +
  21 + def test_box_validation
  22 + b = Block.new
  23 + b.position=1
  24 +
  25 + assert !b.valid?
  26 + assert b.errors.invalid?(:box_id)
  27 + assert_equal 1, b.errors.length
  28 +
  29 + end
  30 +
  31 + def test_save
  32 + b = Block.new
  33 + b.position = 1000
  34 +
  35 + u = DesignTestUser.new
  36 + assert u.save
  37 + box = Box.new
  38 + box.owner = u
  39 + box.number = 1000
  40 + assert box.save
  41 + b.box = box
  42 + assert b.valid?
  43 +
  44 + end
  45 +
  46 +end
... ...