# encoding: utf-8
require File.expand_path(File.dirname(__FILE__) + '/../boot.rb')
class ExtensionTest < UnitTestCase
##############################################################################
#
# :section: Symbol Tests
#
##############################################################################
def test_localize_postprocessing
assert_equal('', Symbol.test_localize(''))
assert_equal('blah', Symbol.test_localize('blah'))
assert_equal("one\n\ntwo", Symbol.test_localize('one\n\ntwo'))
assert_equal('bob', Symbol.test_localize('[user]', :user => 'bob'))
assert_equal('bob and fred', Symbol.test_localize('[bob] and [fred]', :bob => 'bob', :fred => 'fred'))
assert_equal('user', Symbol.test_localize('[:user]'))
assert_equal('Show Name', Symbol.test_localize('[:show_object(type=:name)]'))
assert_equal('Show Str', Symbol.test_localize("[:show_object(type='str')]"))
assert_equal('Show Str', Symbol.test_localize('[:show_object(type="str")]'))
assert_equal('Show 1', Symbol.test_localize('[:show_object(type=1)]'))
assert_equal('Show 12.34', Symbol.test_localize('[:show_object(type=12.34)]'))
assert_equal('Show -0.23', Symbol.test_localize('[:show_object(type=-0.23)]'))
assert_equal('Show Xxx', Symbol.test_localize('[:show_object(type=id)]', :id => 'xxx'))
assert_equal('Show Image', Symbol.test_localize('[:show_object(type=id)]', :id => :image))
assert_equal('Show < ! >', Symbol.test_localize('[:show_object(type="< ! >",blah="ignore")]'))
# Test capitalization and number.
assert_equal('name', :name.l)
assert_equal('Name', :Name.l)
assert_equal('Name', :NAME.l)
assert_equal('species list', :species_list.l)
assert_equal('Species list', :Species_list.l)
assert_equal('Species List', :SPECIES_LIST.l)
assert_equal('species list', Symbol.test_localize('[type]', :type => :species_list))
assert_equal('Species list', Symbol.test_localize('[Type]', :type => :species_list))
assert_equal('Species list', Symbol.test_localize('[tYpE]', :type => :species_list))
assert_equal('Species List', Symbol.test_localize('[TYPE]', :type => :species_list))
assert_equal('species list', Symbol.test_localize('[:species_list]'))
assert_equal('Species list', Symbol.test_localize('[:Species_list]'))
assert_equal('Species list', Symbol.test_localize('[:sPeCiEs_lIsT]'))
assert_equal('Species List', Symbol.test_localize('[:SPECIES_LIST]'))
# Test recursion.
assert_equal('bob', :_unit_test_z.l)
assert_equal('bob', :_unit_test_y.l)
assert_equal('bob', :_unit_test_x.l)
assert_not_equal('bob', :_unit_test_a.l)
end
##############################################################################
#
# :section: String Tests
#
##############################################################################
def test_string_truncate_html
assert_equal('123', '123'.truncate_html(5))
assert_equal('12345', '12345'.truncate_html(5))
assert_equal('1234...', '123456'.truncate_html(5))
assert_equal('1234...', '123456'.truncate_html(5))
assert_equal('1234...', '123456'.truncate_html(5))
assert_equal('123
4...', '123
456'.truncate_html(5))
assert_equal('1234...', '123456'.truncate_html(5))
end
end