mirror of
				https://github.com/redmine/redmine.git
				synced 2025-10-31 10:25:55 +01:00 
			
		
		
		
	Patch by Go MAEDA. git-svn-id: https://svn.redmine.org/redmine/trunk@22016 e93f8b46-1217-0410-a6f0-8f06a7374b81
		
			
				
	
	
		
			116 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| # Redmine - project management software
 | |
| # Copyright (C) 2006-2023  Jean-Philippe Lang
 | |
| #
 | |
| # This program is free software; you can redistribute it and/or
 | |
| # modify it under the terms of the GNU General Public License
 | |
| # as published by the Free Software Foundation; either version 2
 | |
| # of the License, or (at your option) any later version.
 | |
| #
 | |
| # This program is distributed in the hope that it will be useful,
 | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| # GNU General Public License for more details.
 | |
| #
 | |
| # You should have received a copy of the GNU General Public License
 | |
| # along with this program; if not, write to the Free Software
 | |
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | |
| 
 | |
| require_relative '../test_helper'
 | |
| 
 | |
| class CustomFieldsHelperTest < Redmine::HelperTest
 | |
|   include ApplicationHelper
 | |
|   include CustomFieldsHelper
 | |
|   include ERB::Util
 | |
| 
 | |
|   def test_format_boolean_value
 | |
|     I18n.locale = 'en'
 | |
|     assert_equal 'Yes', format_value('1', CustomField.new(:field_format => 'bool'))
 | |
|     assert_equal 'No', format_value('0', CustomField.new(:field_format => 'bool'))
 | |
|   end
 | |
| 
 | |
|   def test_label_tag_should_include_description_as_span_title_if_present
 | |
|     field = CustomField.new(:field_format => 'string', :description => 'This is the description')
 | |
|     tag = custom_field_label_tag('foo', CustomValue.new(:custom_field => field))
 | |
|     assert_select_in tag, 'label span[title=?]', 'This is the description'
 | |
|   end
 | |
| 
 | |
|   def test_label_tag_should_not_include_title_if_description_is_blank
 | |
|     field = CustomField.new(:field_format => 'string')
 | |
|     tag = custom_field_label_tag('foo', CustomValue.new(:custom_field => field))
 | |
|     assert_select_in tag, 'label span[title]', 0
 | |
|   end
 | |
| 
 | |
|   def test_label_tag_should_include_for_attribute_for_select_tag
 | |
|     field = CustomField.new(:name => 'Foo', :field_format => 'list')
 | |
|     s = custom_field_tag_with_label('foo', CustomValue.new(:custom_field => field))
 | |
|     assert_select_in s, 'label[for]'
 | |
|   end
 | |
| 
 | |
|   def test_label_tag_should_not_include_for_attribute_for_checkboxes
 | |
|     field = CustomField.new(:name => 'Foo', :field_format => 'list', :edit_tag_style => 'check_box')
 | |
|     s = custom_field_tag_with_label('foo', CustomValue.new(:custom_field => field))
 | |
|     assert_select_in s, 'label:not([for])'
 | |
|   end
 | |
| 
 | |
|   def test_label_tag_should_include_for_attribute_for_bool_as_select_tag
 | |
|     field = CustomField.new(:name => 'Foo', :field_format => 'bool')
 | |
|     s = custom_field_tag_with_label('foo', CustomValue.new(:custom_field => field))
 | |
|     assert_select_in s, 'label[for]'
 | |
|   end
 | |
| 
 | |
|   def test_label_tag_should_include_for_attribute_for_bool_as_checkbox
 | |
|     field = CustomField.new(:name => 'Foo', :field_format => 'bool', :edit_tag_style => 'check_box')
 | |
|     s = custom_field_tag_with_label('foo', CustomValue.new(:custom_field => field))
 | |
|     assert_select_in s, 'label[for]'
 | |
|   end
 | |
| 
 | |
|   def test_label_tag_should_not_include_for_attribute_for_bool_as_radio
 | |
|     field = CustomField.new(:name => 'Foo', :field_format => 'bool', :edit_tag_style => 'radio')
 | |
|     s = custom_field_tag_with_label('foo', CustomValue.new(:custom_field => field))
 | |
|     assert_select_in s, 'label:not([for])'
 | |
|   end
 | |
| 
 | |
|   def test_unknow_field_format_should_be_edited_as_string
 | |
|     field = CustomField.new(:field_format => 'foo')
 | |
|     value = CustomValue.new(:value => 'bar', :custom_field => field)
 | |
|     field.id = 52
 | |
|     assert_select_in(
 | |
|       custom_field_tag('object', value),
 | |
|       'input[type=text][value=bar][name=?]', 'object[custom_field_values][52]')
 | |
|   end
 | |
| 
 | |
|   def test_unknow_field_format_should_be_bulk_edited_as_string
 | |
|     field = CustomField.new(:field_format => 'foo')
 | |
|     field.id = 52
 | |
|     assert_select_in(
 | |
|       custom_field_tag_for_bulk_edit('object', field),
 | |
|       'input[type=text][value=""][name=?]', 'object[custom_field_values][52]')
 | |
|   end
 | |
| 
 | |
|   def test_custom_field_tag_class_should_contain_wiki_edit_for_custom_fields_with_full_text_formatting
 | |
|     field = IssueCustomField.create!(:name => 'Long text', :field_format => 'text', :text_formatting => 'full')
 | |
|     value = CustomValue.new(:value => 'bar', :custom_field => field)
 | |
| 
 | |
|     assert_select_in custom_field_tag('object', value), "textarea.text_cf.wiki-edit.cf_#{field.id}"
 | |
|   end
 | |
| 
 | |
|   def test_custom_field_tag_class_should_contain_placeholder
 | |
|     field = IssueCustomField.create!(:name => 'Text', :field_format => 'string', :description => "Foo\nBar\nBaz")
 | |
|     value = CustomValue.new(:value => 'bar', :custom_field => field)
 | |
| 
 | |
|     assert_select_in custom_field_tag('object', value), "input.string_cf.cf_#{field.id}[placeholder=?]", 'Foo Bar Baz'
 | |
|   end
 | |
| 
 | |
|   def test_select_type_radio_buttons
 | |
|     result = select_type_radio_buttons('UserCustomField')
 | |
|     assert_select_in result, 'input[type="radio"]', :count => 10
 | |
|     assert_select_in result, 'input#type_UserCustomField[checked=?]', 'checked'
 | |
| 
 | |
|     result = select_type_radio_buttons(nil)
 | |
|     assert_select_in result, 'input[type="radio"]', :count => 10
 | |
|     assert_select_in result, 'input#type_IssueCustomField[checked=?]', 'checked'
 | |
|   end
 | |
| end
 |