From 05230c13f664b6423bbd000814170172511e48be Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 8 Jul 2005 05:34:13 +0000 Subject: Include Javascript tests in rake #1655 [courtney] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1767 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/test/template/javascript_helper_test.rb | 156 +++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 actionpack/test/template/javascript_helper_test.rb (limited to 'actionpack/test/template/javascript_helper_test.rb') diff --git a/actionpack/test/template/javascript_helper_test.rb b/actionpack/test/template/javascript_helper_test.rb new file mode 100644 index 0000000000..fdcce49efa --- /dev/null +++ b/actionpack/test/template/javascript_helper_test.rb @@ -0,0 +1,156 @@ +require File.dirname(__FILE__) + '/../abstract_unit' + +class JavaScriptHelperTest < Test::Unit::TestCase + include ActionView::Helpers::JavaScriptHelper + + 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_define_javascript_functions + # check if prototype.js is included first + assert_not_nil define_javascript_functions.split("\n")[1].match(/Prototype JavaScript framework/) + end + + def test_escape_javascript + assert_equal %(This \\"thing\\" is really\\n netos\\'), escape_javascript(%(This "thing" is really\n netos')) + end + + def test_link_to_function + assert_equal %(Greeting), + link_to_function("Greeting", "alert('Hello world!')") + end + + def test_link_to_remote + assert_equal %(Remote outpost), + link_to_remote("Remote outpost", { :url => { :action => "whatnot" }}, { :class => "fine" }) + assert_equal %(Remote outpost), + link_to_remote("Remote outpost", :complete => "alert(request.reponseText)", :url => { :action => "whatnot" }) + end + + def test_periodically_call_remote + assert_equal %(), + periodically_call_remote(:update => "schremser_bier", :url => { :action => "mehr_bier" }) + end + + def test_form_remote_tag + assert_equal %(
), + form_remote_tag(:update => "glass_of_beer", :url => { :action => :fast }) + assert_equal %(), + form_remote_tag(:update => { :success => "glass_of_beer" }, :url => { :action => :fast }) + assert_equal %(), + form_remote_tag(:update => { :failure => "glass_of_water" }, :url => { :action => :fast }) + assert_equal %(), + form_remote_tag(:update => { :success => 'glass_of_beer', :failure => "glass_of_water" }, :url => { :action => :fast }) + end + + def test_submit_to_remote + assert_equal %(), + submit_to_remote("More beer!", 1_000_000, :update => "empty_bottle") + end + + def test_observe_field + assert_equal %(), + observe_field("glass", :frequency => 5.minutes, :url => { :action => "reorder_if_empty" }) + end + + def test_observe_form + assert_equal %(), + observe_form("cart", :frequency => 2, :url => { :action => "cart_changed" }) + end + + def test_auto_complete_field + assert_equal %(), + auto_complete_field("some_input", :url => { :action => "autocomplete" }); + end + + def test_auto_complete_result + result = [ { :title => 'test1' }, { :title => 'test2' } ] + assert_equal %(), + auto_complete_result(result, :title) + assert_equal %(), + auto_complete_result(result, :title, "est") + end + + def test_text_field_with_auto_complete + assert_match "