aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/template/scriptaculous_helper_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/test/template/scriptaculous_helper_test.rb')
-rw-r--r--actionpack/test/template/scriptaculous_helper_test.rb61
1 files changed, 61 insertions, 0 deletions
diff --git a/actionpack/test/template/scriptaculous_helper_test.rb b/actionpack/test/template/scriptaculous_helper_test.rb
new file mode 100644
index 0000000000..fb8f745c7d
--- /dev/null
+++ b/actionpack/test/template/scriptaculous_helper_test.rb
@@ -0,0 +1,61 @@
+require File.dirname(__FILE__) + '/../abstract_unit'
+
+class ScriptaculousHelperTest < Test::Unit::TestCase
+ include ActionView::Helpers::JavaScriptHelper
+ include ActionView::Helpers::PrototypeHelper
+ include ActionView::Helpers::ScriptaculousHelper
+
+ 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.new
+ end
+
+ def test_effect
+ assert_equal "new Effect.Highlight('posts',{});", visual_effect(:highlight, "posts")
+ assert_equal "new Effect.Highlight('posts',{});", visual_effect("highlight", :posts)
+ assert_equal "new Effect.Highlight('posts',{});", visual_effect(:highlight, :posts)
+ assert_equal "new Effect.Fade('fademe',{duration:4.0});", visual_effect(:fade, "fademe", :duration => 4.0)
+ assert_equal "new Effect.Shake(element,{});", visual_effect(:shake)
+ assert_equal "new Effect.DropOut('dropme',{queue:'end'});", visual_effect(:drop_out, 'dropme', :queue => :end)
+ end
+
+ def test_sortable_element
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create('mylist', {onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize('mylist')})}})\n//]]>\n</script>),
+ sortable_element("mylist", :url => { :action => "order" })
+ assert_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create('mylist', {constraint:'horizontal', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize('mylist')})}, tag:'div'})\n//]]>\n</script>),
+ sortable_element("mylist", :tag => "div", :constraint => "horizontal", :url => { :action => "order" })
+ assert_dom_equal %|<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create('mylist', {constraint:'horizontal', containment:['list1','list2'], onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize('mylist')})}})\n//]]>\n</script>|,
+ sortable_element("mylist", :containment => ['list1','list2'], :constraint => "horizontal", :url => { :action => "order" })
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nSortable.create('mylist', {constraint:'horizontal', containment:'list1', onUpdate:function(){new Ajax.Request('http://www.example.com/order', {asynchronous:true, evalScripts:true, parameters:Sortable.serialize('mylist')})}})\n//]]>\n</script>),
+ sortable_element("mylist", :containment => 'list1', :constraint => "horizontal", :url => { :action => "order" })
+ end
+
+ def test_draggable_element
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Draggable('product_13', {})\n//]]>\n</script>),
+ draggable_element('product_13')
+ assert_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nnew Draggable('product_13', {revert:true})\n//]]>\n</script>),
+ draggable_element('product_13', :revert => true)
+ end
+
+ def test_drop_receiving_element
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add('droptarget1', {onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
+ drop_receiving_element('droptarget1')
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add('droptarget1', {accept:'products', onDrop:function(element){new Ajax.Request('http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
+ drop_receiving_element('droptarget1', :accept => 'products')
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add('droptarget1', {accept:'products', onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
+ drop_receiving_element('droptarget1', :accept => 'products', :update => 'infobox')
+ assert_dom_equal %(<script type=\"text/javascript\">\n//<![CDATA[\nDroppables.add('droptarget1', {accept:['tshirts','mugs'], onDrop:function(element){new Ajax.Updater('infobox', 'http://www.example.com/', {asynchronous:true, evalScripts:true, parameters:'id=' + encodeURIComponent(element.id)})}})\n//]]>\n</script>),
+ drop_receiving_element('droptarget1', :accept => ['tshirts','mugs'], :update => 'infobox')
+ end
+end \ No newline at end of file