diff options
3 files changed, 53 insertions, 29 deletions
diff --git a/actionpack/lib/action_view/helpers/java_script_macros_helper.rb b/actionpack/lib/action_view/helpers/java_script_macros_helper.rb index 1d24b8e6d4..8c67edd645 100644 --- a/actionpack/lib/action_view/helpers/java_script_macros_helper.rb +++ b/actionpack/lib/action_view/helpers/java_script_macros_helper.rb @@ -6,7 +6,7 @@ module ActionView # larger units. These macros also rely on counter parts in the controller that provides them with their backing. The in-place # editing relies on ActionController::Base.in_place_edit_for and the auto completion relies on # ActionController::Base.auto_complete_for. - module JavaScriptMacroHelper + module JavaScriptMacrosHelper # Makes an HTML element specified by the DOM ID +field_id+ become an in-place # editor of a property. # diff --git a/actionpack/test/template/java_script_macros_helper_test.rb b/actionpack/test/template/java_script_macros_helper_test.rb new file mode 100644 index 0000000000..763eb3d5e9 --- /dev/null +++ b/actionpack/test/template/java_script_macros_helper_test.rb @@ -0,0 +1,52 @@ +require File.dirname(__FILE__) + '/../abstract_unit' + +class JavaScriptMacrosHelperTest < Test::Unit::TestCase + include ActionView::Helpers::JavaScriptHelper + include ActionView::Helpers::JavaScriptMacrosHelper + + include ActionView::Helpers::UrlHelper + include ActionView::Helpers::TagHelper + include ActionView::Helpers::TextHelper + include ActionView::Helpers::FormHelper + include ActionView::Helpers::CaptureHelper + + def setup + @controller = Class.new do + def url_for(options, *parameters_for_method_reference) + url = "http://www.example.com/" + url << options[:action].to_s if options and options[:action] + url + end + end + @controller = @controller.new + end + + + def test_auto_complete_field + assert_equal %(<script type=\"text/javascript\">new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {})</script>), + auto_complete_field("some_input", :url => { :action => "autocomplete" }); + assert_equal %(<script type=\"text/javascript\">new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {tokens:','})</script>), + auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => ','); + assert_equal %(<script type=\"text/javascript\">new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {tokens:[',']})</script>), + auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => [',']); + end + + def test_auto_complete_result + result = [ { :title => 'test1' }, { :title => 'test2' } ] + assert_equal %(<ul><li>test1</li><li>test2</li></ul>), + auto_complete_result(result, :title) + assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li><li>t<strong class=\"highlight\">est</strong>2</li></ul>), + auto_complete_result(result, :title, "est") + + resultuniq = [ { :title => 'test1' }, { :title => 'test1' } ] + assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li></ul>), + auto_complete_result(resultuniq, :title, "est") + end + + def test_text_field_with_auto_complete + assert_match "<style>", + text_field_with_auto_complete(:message, :recipient) + assert_equal %(<input autocomplete=\"off\" id=\"message_recipient\" name=\"message[recipient]\" size=\"30\" type=\"text\" /><div class=\"auto_complete\" id=\"message_recipient_auto_complete\"></div><script type=\"text/javascript\">new Ajax.Autocompleter('message_recipient', 'message_recipient_auto_complete', 'http://www.example.com/auto_complete_for_message_recipient', {})</script>), + text_field_with_auto_complete(:message, :recipient, {}, :skip_style => true) + end +end diff --git a/actionpack/test/template/javascript_helper_test.rb b/actionpack/test/template/javascript_helper_test.rb index 46242355b3..bf0f6ac5aa 100644 --- a/actionpack/test/template/javascript_helper_test.rb +++ b/actionpack/test/template/javascript_helper_test.rb @@ -112,34 +112,6 @@ class JavaScriptHelperTest < Test::Unit::TestCase observe_form("cart", :frequency => 2, :url => { :action => "cart_changed" }) end - def test_auto_complete_field - assert_equal %(<script type=\"text/javascript\">new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {})</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }); - assert_equal %(<script type=\"text/javascript\">new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {tokens:','})</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => ','); - assert_equal %(<script type=\"text/javascript\">new Ajax.Autocompleter('some_input', 'some_input_auto_complete', 'http://www.example.com/autocomplete', {tokens:[',']})</script>), - auto_complete_field("some_input", :url => { :action => "autocomplete" }, :tokens => [',']); - end - - def test_auto_complete_result - result = [ { :title => 'test1' }, { :title => 'test2' } ] - assert_equal %(<ul><li>test1</li><li>test2</li></ul>), - auto_complete_result(result, :title) - assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li><li>t<strong class=\"highlight\">est</strong>2</li></ul>), - auto_complete_result(result, :title, "est") - - resultuniq = [ { :title => 'test1' }, { :title => 'test1' } ] - assert_equal %(<ul><li>t<strong class=\"highlight\">est</strong>1</li></ul>), - auto_complete_result(resultuniq, :title, "est") - end - - def test_text_field_with_auto_complete - assert_match "<style>", - text_field_with_auto_complete(:message, :recipient) - assert_equal %(<input autocomplete=\"off\" id=\"message_recipient\" name=\"message[recipient]\" size=\"30\" type=\"text\" /><div class=\"auto_complete\" id=\"message_recipient_auto_complete\"></div><script type=\"text/javascript\">new Ajax.Autocompleter('message_recipient', 'message_recipient_auto_complete', 'http://www.example.com/auto_complete_for_message_recipient', {})</script>), - text_field_with_auto_complete(:message, :recipient, {}, :skip_style => true) - end - def test_effect assert_equal "new Effect.Highlight('posts',{});", visual_effect(:highlight, "posts") assert_equal "new Effect.Highlight('posts',{});", visual_effect("highlight", :posts) |