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 'File', 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 '
file|Remove or Replace file
', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo') @record.stubs(:logo).returns(stub(:file? => false)) assert_dom_equal '', active_scaffold_input_paperclip(config.columns[:logo], :name => 'record[logo]', :id => 'record_logo') end end