aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-08-15 09:15:31 -0700
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-08-15 09:15:31 -0700
commitebb4a3d5becd535074502a4bf1b61a5b18e30917 (patch)
tree0037cc170ee3131bcf731a1e89768abc4894afe1 /actionpack/test
parentbf5f6562c0e7e5b9ac623d5e036a784e25dea937 (diff)
parent6446e84c1a0d72ecdba1046c3e15b4467eae9e5b (diff)
downloadrails-ebb4a3d5becd535074502a4bf1b61a5b18e30917.tar.gz
rails-ebb4a3d5becd535074502a4bf1b61a5b18e30917.tar.bz2
rails-ebb4a3d5becd535074502a4bf1b61a5b18e30917.zip
Merge pull request #7244 from lucasuyezu/master
Fix indentation on template errors to consider line number character count. For instance, when an error is shown, if the related source code snippet has line numbers from, lets say, 8-12, the lines are left aligned, which means the code indent is wrong: 8: foo 9: bar 10: raise 11: baz 12: ... This changes it to right align the source code snippet, so that the indentation is correct: 8: foo 9: bar 10: raise 11: baz 12: ...
Diffstat (limited to 'actionpack/test')
-rw-r--r--actionpack/test/fixtures/test/_raise_indentation.html.erb13
-rw-r--r--actionpack/test/template/render_test.rb9
2 files changed, 22 insertions, 0 deletions
diff --git a/actionpack/test/fixtures/test/_raise_indentation.html.erb b/actionpack/test/fixtures/test/_raise_indentation.html.erb
new file mode 100644
index 0000000000..f9a93728fe
--- /dev/null
+++ b/actionpack/test/fixtures/test/_raise_indentation.html.erb
@@ -0,0 +1,13 @@
+<p>First paragraph</p>
+<p>Second paragraph</p>
+<p>Third paragraph</p>
+<p>Fourth paragraph</p>
+<p>Fifth paragraph</p>
+<p>Sixth paragraph</p>
+<p>Seventh paragraph</p>
+<p>Eight paragraph</p>
+<p>Ninth paragraph</p>
+<p>Tenth paragraph</p>
+<%= raise "error here!" %>
+<p>Eleventh paragraph</p>
+<p>Twelfth paragraph</p> \ No newline at end of file
diff --git a/actionpack/test/template/render_test.rb b/actionpack/test/template/render_test.rb
index 164b8b9fa1..b26354e7cc 100644
--- a/actionpack/test/template/render_test.rb
+++ b/actionpack/test/template/render_test.rb
@@ -203,6 +203,15 @@ module RenderTestCases
assert_equal File.expand_path("#{FIXTURE_LOAD_PATH}/test/_raise.html.erb"), e.file_name
end
+ def test_render_error_indentation
+ e = assert_raises(ActionView::Template::Error) { @view.render(:partial => "test/raise_indentation") }
+ error_lines = e.annoted_source_code.split("\n")
+ assert_match %r!error\shere!, e.message
+ assert_equal "11", e.line_number
+ assert_equal " 9: <p>Ninth paragraph</p>", error_lines.second
+ assert_equal " 10: <p>Tenth paragraph</p>", error_lines.third
+ end
+
def test_render_sub_template_with_errors
e = assert_raises(ActionView::Template::Error) { @view.render(:template => "test/sub_template_raise") }
assert_match %r!method.*doesnt_exist!, e.message