aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-07-03 11:01:43 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-07-03 11:01:43 +0000
commit208291391cdb34d4893ab3e32312edbe2b180095 (patch)
tree6b9909907c843ffa64941c0bbda4115f3533a8ea /actionpack/test
parentaaa56372494d3c9953e9ef2bdfc0fefd2f75fcad (diff)
downloadrails-208291391cdb34d4893ab3e32312edbe2b180095.tar.gz
rails-208291391cdb34d4893ab3e32312edbe2b180095.tar.bz2
rails-208291391cdb34d4893ab3e32312edbe2b180095.zip
Added JavascriptHelper#update_element_function, which returns a Javascript function (or expression) that'll update a DOM element according to the options passed #933 [mortonda@dgrmm.net]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1644 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/controller/capture_test.rb39
-rw-r--r--actionpack/test/fixtures/test/capturing.rhtml4
-rw-r--r--actionpack/test/fixtures/test/update_element_with_capture.rhtml9
3 files changed, 52 insertions, 0 deletions
diff --git a/actionpack/test/controller/capture_test.rb b/actionpack/test/controller/capture_test.rb
new file mode 100644
index 0000000000..ad243c4587
--- /dev/null
+++ b/actionpack/test/controller/capture_test.rb
@@ -0,0 +1,39 @@
+require File.dirname(__FILE__) + '/../abstract_unit'
+
+class CaptureController < ActionController::Base
+ def self.controller_name; "test"; end
+ def self.controller_path; "test"; end
+
+ def rescue_action(e) raise end
+end
+
+CaptureController.template_root = File.dirname(__FILE__) + "/../fixtures/"
+
+class CaptureTest < Test::Unit::TestCase
+ def setup
+ @controller = CaptureController.new
+
+ # enable a logger so that (e.g.) the benchmarking stuff runs, so we can get
+ # a more accurate simulation of what happens in "real life".
+ @controller.logger = Logger.new(nil)
+
+ @request = ActionController::TestRequest.new
+ @response = ActionController::TestResponse.new
+
+ @request.host = "www.nextangle.com"
+ end
+
+ def test_simple_capture
+ get :capturing
+ assert_equal "Dreamy days", @response.body.strip
+ end
+
+ def test_update_element_with_capture
+ get :update_element_with_capture
+ assert_equal(
+ "<script type=\"text/javascript\">$('products').innerHTML = '\\n <p>Product 1</p>\\n <p>Product 2</p>\\n'</script>" +
+ "\n\n$('status').innerHTML = '\\n <b>You bought something!</b>\\n'",
+ @response.body.strip
+ )
+ end
+end
diff --git a/actionpack/test/fixtures/test/capturing.rhtml b/actionpack/test/fixtures/test/capturing.rhtml
new file mode 100644
index 0000000000..1addaa40d9
--- /dev/null
+++ b/actionpack/test/fixtures/test/capturing.rhtml
@@ -0,0 +1,4 @@
+<% days = capture do %>
+ Dreamy days
+<% end %>
+<%= days %> \ No newline at end of file
diff --git a/actionpack/test/fixtures/test/update_element_with_capture.rhtml b/actionpack/test/fixtures/test/update_element_with_capture.rhtml
new file mode 100644
index 0000000000..2d2ac84214
--- /dev/null
+++ b/actionpack/test/fixtures/test/update_element_with_capture.rhtml
@@ -0,0 +1,9 @@
+<% replacement_function = update_element_function("products", :action => :replace) do %>
+ <p>Product 1</p>
+ <p>Product 2</p>
+<% end %>
+<%= javascript_tag(replacement_function) %>
+
+<% update_element_function("status", :action => :replace, :binding => binding) do %>
+ <b>You bought something!</b>
+<% end %> \ No newline at end of file