Sha256: 1b566e2695734d5482ca627dca8123dbd6c2abdd4d07b6cfb5e1c6fd50d8e6c2

Contents?: true

Size: 1.8 KB

Versions: 2

Compression:

Stored size: 1.8 KB

Contents

require File.join(File.dirname(__FILE__), '/../../test_helper')

ActiveRecord::Base.connection.instance_eval do
  drop_table(:publishables) if table_exists?(:publishables)
  create_table(:publishables) do |t| 
    t.string :name
    t.datetime :published_at
    t.boolean :published, :default => false
  end
  drop_table(:unpublishables) if table_exists?(:unpublishables)
  create_table(:unpublishables) do |t| 
    t.string :name
  end
end

class Publishable < ActiveRecord::Base
  is_publishable
end

class Unpublishable < ActiveRecord::Base
end

class PublishableTestCase < ActiveSupport::TestCase
  def test_publishable
    @object = Publishable.new(:name => "New Record")
    assert @object.publishable?
  end
  
  def test_save
    @object = Publishable.new(:name => "New Record")
    assert @object.save
    assert !@object.published?
    assert_nil @object.published_at
  end

  def test_publish_on_save
    @object = Publishable.new(:name => "New Record")
    @object.publish_on_save = true
    assert @object.save
    assert @object.published?
    assert @object.published_at <= Time.now
  end

  def test_published_at_does_not_change
    @object = Publishable.create(:name => "New Record")
    @published_at = 5.minutes.ago
    assert @object.update_attributes(:published_at => @published_at, :publish_on_save => true)
    assert_equal @published_at, @object.published_at
    assert @object.update_attributes(:name => "Changed", :publish_on_save => true)
    assert_equal @published_at, @object.published_at
  end
  
  def test_unpublishable
    @object = Unpublishable.new(:name => "New Record")
    assert !@object.publishable?
    assert @object.save
    assert !@object.publishable?
  end
  
  def test_not_publishable_if_connect_to_page_id_is_blank
    assert HtmlBlock.new(:connect_to_page_id => "").publishable?
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nate-browsercms-3.0.210 test/unit/behaviors/publishable_test.rb
nate-browsercms-3.0.211 test/unit/behaviors/publishable_test.rb