require 'test_helper'
require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/paperclip_bridge', __FILE__)
require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/paperclip_bridge_helpers', __FILE__)
require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/form_ui', __FILE__)
require File.expand_path('../../../lib/active_scaffold/bridges/paperclip/list_ui', __FILE__)
class PaperclipCore < ActiveScaffold::Config::Core
include ActiveScaffold::Bridges::Paperclip::PaperclipBridge
end
class PaperclipTest < ActionView::TestCase
include ActiveScaffold::Helpers::ViewHelpers
def test_initialization_without_paperclip
Company.expects(:attachment_definitions)
config = PaperclipCore.new(:company)
refute config.create.multipart?
refute config.update.multipart?
refute 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|
refute config.columns._inheritable.include?(attr.to_sym)
end
assert Company.method_defined?(:delete_logo)
assert Company.method_defined?(:'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
js, ActiveScaffold.js_framework = ActiveScaffold.js_framework, :jquery
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]))
escaped_quote = Rails::VERSION::MAJOR < 4 ? ''' : '''
assert_dom_equal %{