From d1725929852ab9da48f7ff7c4fa7f401ac55c331 Mon Sep 17 00:00:00 2001
From: David Heinemeier Hansson <david@loudthinking.com>
Date: Sat, 23 Jul 2005 08:43:01 +0000
Subject: Added test for template to layout variable transfer

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1904 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
---
 actionpack/lib/action_controller/base.rb                  |  4 ++--
 actionpack/test/controller/new_render_test.rb             | 11 +++++++++++
 actionpack/test/fixtures/layouts/talk_from_action.rhtml   |  2 ++
 actionpack/test/fixtures/test/action_talk_to_layout.rhtml |  2 ++
 4 files changed, 17 insertions(+), 2 deletions(-)
 create mode 100644 actionpack/test/fixtures/layouts/talk_from_action.rhtml
 create mode 100644 actionpack/test/fixtures/test/action_talk_to_layout.rhtml

(limited to 'actionpack')

diff --git a/actionpack/lib/action_controller/base.rb b/actionpack/lib/action_controller/base.rb
index 849b834cd1..bee72d90f2 100755
--- a/actionpack/lib/action_controller/base.rb
+++ b/actionpack/lib/action_controller/base.rb
@@ -724,7 +724,7 @@ module ActionController #:nodoc:
       # 
       # This method will overwrite an existing Cache-Control header.
       # See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html for more possibilities.
-      def expires_in(seconds, options = {})
+      def expires_in(seconds, options = {}) #:doc:
         cache_options = { 'max-age' => seconds, 'private' => true }.symbolize_keys.merge!(options.symbolize_keys)
         cache_options.delete_if { |k,v| v.nil? or v == false }
         cache_control = cache_options.map{ |k,v| v == true ? k.to_s : "#{k.to_s}=#{v.to_s}"}
@@ -733,7 +733,7 @@ module ActionController #:nodoc:
       
       # Sets a HTTP 1.1 Cache-Control header of "no-cache" so no caching should occur by the browser or
       # intermediate caches (like caching proxy servers).
-      def expires_now
+      def expires_now #:doc:
         @response.headers["Cache-Control"] = "no-cache"
       end
 
diff --git a/actionpack/test/controller/new_render_test.rb b/actionpack/test/controller/new_render_test.rb
index 105e5ec06d..8af594e94a 100644
--- a/actionpack/test/controller/new_render_test.rb
+++ b/actionpack/test/controller/new_render_test.rb
@@ -119,6 +119,10 @@ class NewRenderTestController < ActionController::Base
     render :action => "potential_conflicts"
   end
 
+  def action_talk_to_layout
+    # Action template sets variable that's picked up by layout
+  end
+
   def rescue_action(e) raise end
     
   private
@@ -133,6 +137,8 @@ class NewRenderTestController < ActionController::Base
           "layouts/standard"
         when "builder_layout_test"
           "layouts/builder"
+        when "action_talk_to_layout"
+          "layouts/talk_from_action"
       end
     end
 end
@@ -293,6 +299,11 @@ class NewRenderTest < Test::Unit::TestCase
     assert_equal("First: David\nSecond: Stephan\nThird: David\nFourth: David\nFifth: ", @response.body)
   end
 
+  def test_action_talk_to_layout
+    get :action_talk_to_layout
+    assert_equal "<title>Talking to the layout</title>\nAction was here!", @response.body
+  end
+
   # def test_partials_list
   #   get :partials_list
   #   assert_equal "goodbyeHello: davidHello: marygoodbye\n", @response.body
diff --git a/actionpack/test/fixtures/layouts/talk_from_action.rhtml b/actionpack/test/fixtures/layouts/talk_from_action.rhtml
new file mode 100644
index 0000000000..215dfd27ac
--- /dev/null
+++ b/actionpack/test/fixtures/layouts/talk_from_action.rhtml
@@ -0,0 +1,2 @@
+<title><%= @title %></title>
+<%= @content_for_layout -%>
\ No newline at end of file
diff --git a/actionpack/test/fixtures/test/action_talk_to_layout.rhtml b/actionpack/test/fixtures/test/action_talk_to_layout.rhtml
new file mode 100644
index 0000000000..36e896daa8
--- /dev/null
+++ b/actionpack/test/fixtures/test/action_talk_to_layout.rhtml
@@ -0,0 +1,2 @@
+<% @title = "Talking to the layout" -%>
+Action was here!
\ No newline at end of file
-- 
cgit v1.2.3