From 214b0ddee74b6b7af0f3f4cd4e36669895c17bd9 Mon Sep 17 00:00:00 2001
From: Panayotis Matsinopoulos <panayotis@matsinopoulos.gr>
Date: Sat, 24 Mar 2012 23:12:39 +0200
Subject: Testing Template and Layout Example

---
 guides/source/testing.textile | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

(limited to 'guides/source/testing.textile')

diff --git a/guides/source/testing.textile b/guides/source/testing.textile
index c367f532ae..01b406172f 100644
--- a/guides/source/testing.textile
+++ b/guides/source/testing.textile
@@ -524,6 +524,31 @@ You also have access to three instance variables in your functional tests:
 * +@request+ - The request
 * +@response+ - The response
 
+h4. Testing Template and Layout Example
+
+If you want to make sure that the response rendered the correct template and layout, you can use the +assert_template+ 
+method:
+
+<ruby>
+test "index should render correct template and layout" do
+  get :index
+  assert_template :index
+  assert_template :layout => "layouts/application"
+end
+</ruby>
+
+Note that you cannot test for template and layout at the same time, with one call to +assert_template+ method.
+Also, for the +layout+ test, you can give a regular expression instead of a string, but using the string, makes
+things clearer. On the other hand, you have to include the "layouts" directory name even if you save your layout
+file in this standard layout directory. Hence,
+
+<ruby>
+assert_template :layout => "application"
+</ruby>
+
+will not work.
+
+
 h4. A Fuller Functional Test Example
 
 Here's another example that uses +flash+, +assert_redirected_to+, and +assert_difference+:
-- 
cgit v1.2.3


From 5b35664481bdc4f8c8970a8aade4b460fae1f065 Mon Sep 17 00:00:00 2001
From: Panayotis Matsinopoulos <panayotis@matsinopoulos.gr>
Date: Sat, 24 Mar 2012 23:16:55 +0200
Subject: Small layout correction

---
 guides/source/testing.textile | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

(limited to 'guides/source/testing.textile')

diff --git a/guides/source/testing.textile b/guides/source/testing.textile
index 01b406172f..d98082ea88 100644
--- a/guides/source/testing.textile
+++ b/guides/source/testing.textile
@@ -543,12 +543,11 @@ things clearer. On the other hand, you have to include the "layouts" directory n
 file in this standard layout directory. Hence,
 
 <ruby>
-assert_template :layout => "application"
+  assert_template :layout => "application"
 </ruby>
 
 will not work.
 
-
 h4. A Fuller Functional Test Example
 
 Here's another example that uses +flash+, +assert_redirected_to+, and +assert_difference+:
-- 
cgit v1.2.3


From c12b88695536418f0db33604590d20ff84323ae3 Mon Sep 17 00:00:00 2001
From: Panayotis Matsinopoulos <panayotis@matsinopoulos.gr>
Date: Sat, 24 Mar 2012 23:33:41 +0200
Subject: Testing layout gotcha when view renders partial

---
 guides/source/testing.textile | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

(limited to 'guides/source/testing.textile')

diff --git a/guides/source/testing.textile b/guides/source/testing.textile
index d98082ea88..c1c7b2f341 100644
--- a/guides/source/testing.textile
+++ b/guides/source/testing.textile
@@ -548,6 +548,22 @@ file in this standard layout directory. Hence,
 
 will not work.
 
+<b>Gotcha: Watch out if your view renders any partial</b>
+
+If your view renders any partial, when asserting for the layout, you have to assert for the partial at the same time.
+Otherwise, assertion will fail.
+
+Hence:
+
+<ruby>
+test "new should render correct layout" do
+  get :new
+  assert_template :layout => "layouts/application", :partial => "_form"
+end
+</ruby>
+
+is the correct way to assert for the layout when the view renders a partial with name +_form+. Omitting the +:partial+ key in your +assert_template+ call will complain.
+
 h4. A Fuller Functional Test Example
 
 Here's another example that uses +flash+, +assert_redirected_to+, and +assert_difference+:
-- 
cgit v1.2.3


From ae040ed6d8c48bf0cd6d5d6b434d60c9c8c27f81 Mon Sep 17 00:00:00 2001
From: Vijay Dev <vijaydev.cse@gmail.com>
Date: Tue, 27 Mar 2012 21:24:21 +0530
Subject: minor edits in testing guide [ci skip]

---
 guides/source/testing.textile | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

(limited to 'guides/source/testing.textile')

diff --git a/guides/source/testing.textile b/guides/source/testing.textile
index c1c7b2f341..60b0aa89b9 100644
--- a/guides/source/testing.textile
+++ b/guides/source/testing.textile
@@ -524,7 +524,7 @@ You also have access to three instance variables in your functional tests:
 * +@request+ - The request
 * +@response+ - The response
 
-h4. Testing Template and Layout Example
+h4. Testing Templates and Layouts
 
 If you want to make sure that the response rendered the correct template and layout, you can use the +assert_template+ 
 method:
@@ -543,13 +543,11 @@ things clearer. On the other hand, you have to include the "layouts" directory n
 file in this standard layout directory. Hence,
 
 <ruby>
-  assert_template :layout => "application"
+assert_template :layout => "application"
 </ruby>
 
 will not work.
 
-<b>Gotcha: Watch out if your view renders any partial</b>
-
 If your view renders any partial, when asserting for the layout, you have to assert for the partial at the same time.
 Otherwise, assertion will fail.
 
-- 
cgit v1.2.3

