require 'test/unit'
require File.join(File.dirname(__FILE__), 'company')
require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/paperclip_bridge')
require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/paperclip_bridge_helpers')
require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/form_ui')
require File.join(File.dirname(__FILE__), '../../lib/bridges/paperclip/lib/list_ui')
class PaperclipCore < ActiveScaffold::Config::Core
include ActiveScaffold::PaperclipBridge
end
class PaperclipTest < ActionView::TestCase
include ActiveScaffold::Helpers::ViewHelpers
def test_initialization_without_paperclip
Company.expects(:attachment_definitions)
config = PaperclipCore.new(:company)
assert !config.create.multipart?
assert !config.update.multipart?
assert !config.columns.any? {|column| column.form_ui == :paperclip}
end
def test_initialization
config = PaperclipCore.new(:company)
assert config.create.multipart?
assert config.update.multipart?
assert_equal :paperclip, config.columns[:logo].form_ui
assert_equal [:delete_logo], config.columns[:logo].params.to_a
%w(logo_file_name logo_file_size logo_updated_at logo_content_type).each do |attr|
assert !config.columns._inheritable.include?(attr.to_sym)
end
assert Company.instance_methods.include?('delete_logo')
assert Company.instance_methods.include?('delete_logo=')
end
def test_delete
PaperclipCore.new(:company)
company = Company.new
company.expects(:logo=).never
company.delete_logo = 'false'
company.expects(:logo).returns(stub(:dirty? => false))
company.expects(:logo=)
company.delete_logo = 'true'
end
def test_list_ui
config = PaperclipCore.new(:company)
company = Company.new
company.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => Company.attachment_definitions[:logo]))
assert_dom_equal 'file', active_scaffold_column_paperclip(company, config.columns[:logo])
company.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => {:thumbnail => '40x40'}))
assert_dom_equal '', active_scaffold_column_paperclip(company, config.columns[:logo])
end
def test_form_ui
config = PaperclipCore.new(:company)
@record = Company.new
@record.stubs(:logo).returns(stub(:file? => true, :original_filename => 'file', :url => '/system/file', :styles => Company.attachment_definitions[:logo]))
assert_dom_equal '