From fea7fe1fd2c7dbd98cf8707f9ecd17d010777fc1 Mon Sep 17 00:00:00 2001 From: Alex Robbin Date: Sat, 9 Aug 2014 00:10:54 -0400 Subject: add I18n support for `:placeholder` HTML option is passed to form fields --- actionview/test/template/form_helper_test.rb | 168 +++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) (limited to 'actionview/test/template') diff --git a/actionview/test/template/form_helper_test.rb b/actionview/test/template/form_helper_test.rb index a9f137aec6..d944214961 100644 --- a/actionview/test/template/form_helper_test.rb +++ b/actionview/test/template/form_helper_test.rb @@ -59,6 +59,35 @@ class FormHelperTest < ActionView::TestCase } } + I18n.backend.store_translations 'placeholder', { + activemodel: { + attributes: { + post: { + cost: "Total cost" + }, + :"post/cost" => { + uk: "Pounds" + } + } + }, + helpers: { + placeholder: { + post: { + title: "What is this about?", + written_on: { + spanish: "Escrito en" + }, + comments: { + body: "Write body here" + } + }, + tag: { + value: "Tag" + } + } + } + } + @post = Post.new @comment = Comment.new def @post.errors() @@ -297,6 +326,68 @@ class FormHelperTest < ActionView::TestCase ) end + def test_text_field_placeholder_without_locales + with_locale :placeholder do + assert_dom_equal('', text_field(:post, :body, placeholder: true)) + end + end + + def test_text_field_placeholder_with_locales + with_locale :placeholder do + assert_dom_equal('', text_field(:post, :title, placeholder: true)) + end + end + + def test_text_field_placeholder_with_human_attribute_name + with_locale :placeholder do + assert_dom_equal('', text_field(:post, :cost, placeholder: true)) + end + end + + def test_text_field_placeholder_with_human_attribute_name_and_value + with_locale :placeholder do + assert_dom_equal('', text_field(:post, :cost, placeholder: "uk")) + end + end + + def test_text_field_placeholder_with_locales_and_value + with_locale :placeholder do + assert_dom_equal('', text_field(:post, :written_on, placeholder: "spanish")) + end + end + + def test_text_field_placeholder_with_locales_and_nested_attributes + with_locale :placeholder do + form_for(@post, html: { id: 'create-post' }) do |f| + f.fields_for(:comments) do |cf| + concat cf.text_field(:body, placeholder: true) + end + end + + expected = whole_form("/posts/123", "create-post", "edit_post", method: "patch") do + '' + end + + assert_dom_equal expected, output_buffer + end + end + + def test_text_field_placeholder_with_locales_fallback_and_nested_attributes + with_locale :placeholder do + form_for(@post, html: { id: 'create-post' }) do |f| + f.fields_for(:tags) do |cf| + concat cf.text_field(:value, placeholder: true) + end + end + + expected = whole_form("/posts/123", "create-post", "edit_post", method: "patch") do + '' + end + + assert_dom_equal expected, output_buffer + end + end + def test_text_field assert_dom_equal( '', @@ -665,6 +756,83 @@ class FormHelperTest < ActionView::TestCase ) end + def test_text_area_placeholder_without_locales + with_locale :placeholder do + assert_dom_equal( + %{}, + text_area(:post, :body, placeholder: true) + ) + end + end + + def test_text_area_placeholder_with_locales + with_locale :placeholder do + assert_dom_equal( + %{}, + text_area(:post, :title, placeholder: true) + ) + end + end + + def test_text_area_placeholder_with_human_attribute_name + with_locale :placeholder do + assert_dom_equal( + %{}, + text_area(:post, :cost, placeholder: true) + ) + end + end + + def test_text_area_placeholder_with_human_attribute_name_and_value + with_locale :placeholder do + assert_dom_equal( + %{}, + text_area(:post, :cost, placeholder: "uk") + ) + end + end + + def test_text_area_placeholder_with_locales_and_value + with_locale :placeholder do + assert_dom_equal( + %{}, + text_area(:post, :written_on, placeholder: "spanish") + ) + end + end + + def test_text_area_placeholder_with_locales_and_nested_attributes + with_locale :placeholder do + form_for(@post, html: { id: 'create-post' }) do |f| + f.fields_for(:comments) do |cf| + concat cf.text_area(:body, placeholder: true) + end + end + + expected = whole_form("/posts/123", "create-post", "edit_post", method: "patch") do + %{} + end + + assert_dom_equal expected, output_buffer + end + end + + def test_text_area_placeholder_with_locales_fallback_and_nested_attributes + with_locale :placeholder do + form_for(@post, html: { id: 'create-post' }) do |f| + f.fields_for(:tags) do |cf| + concat cf.text_area(:value, placeholder: true) + end + end + + expected = whole_form("/posts/123", "create-post", "edit_post", method: "patch") do + %{} + end + + assert_dom_equal expected, output_buffer + end + end + def test_text_area assert_dom_equal( %{}, -- cgit v1.2.3 From f99e62e2d9e010102788f1e728f54b03f65115c5 Mon Sep 17 00:00:00 2001 From: Alex Robbin Date: Fri, 22 Aug 2014 09:54:54 -0400 Subject: just use the placeholder tag value if it is passed as a String --- actionview/test/template/form_helper_test.rb | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'actionview/test/template') diff --git a/actionview/test/template/form_helper_test.rb b/actionview/test/template/form_helper_test.rb index d944214961..6910769183 100644 --- a/actionview/test/template/form_helper_test.rb +++ b/actionview/test/template/form_helper_test.rb @@ -344,15 +344,21 @@ class FormHelperTest < ActionView::TestCase end end + def test_text_field_placeholder_with_string_value + with_locale :placeholder do + assert_dom_equal('', text_field(:post, :cost, placeholder: "HOW MUCH?")) + end + end + def test_text_field_placeholder_with_human_attribute_name_and_value with_locale :placeholder do - assert_dom_equal('', text_field(:post, :cost, placeholder: "uk")) + assert_dom_equal('', text_field(:post, :cost, placeholder: :uk)) end end def test_text_field_placeholder_with_locales_and_value with_locale :placeholder do - assert_dom_equal('', text_field(:post, :written_on, placeholder: "spanish")) + assert_dom_equal('', text_field(:post, :written_on, placeholder: :spanish)) end end @@ -783,11 +789,20 @@ class FormHelperTest < ActionView::TestCase end end + def test_text_area_placeholder_with_string_value + with_locale :placeholder do + assert_dom_equal( + %{}, + text_area(:post, :cost, placeholder: "HOW MUCH?") + ) + end + end + def test_text_area_placeholder_with_human_attribute_name_and_value with_locale :placeholder do assert_dom_equal( %{}, - text_area(:post, :cost, placeholder: "uk") + text_area(:post, :cost, placeholder: :uk) ) end end @@ -796,7 +811,7 @@ class FormHelperTest < ActionView::TestCase with_locale :placeholder do assert_dom_equal( %{}, - text_area(:post, :written_on, placeholder: "spanish") + text_area(:post, :written_on, placeholder: :spanish) ) end end -- cgit v1.2.3