diff options
author | Nicholas Seckar <nseckar@gmail.com> | 2005-08-26 22:37:36 +0000 |
---|---|---|
committer | Nicholas Seckar <nseckar@gmail.com> | 2005-08-26 22:37:36 +0000 |
commit | 68c90ab0194a56493ceaafa16f0b5e6b7e36201f (patch) | |
tree | 7db83af029c7e70c5b4732dc47e9b809e03f2bc1 /actionpack/test | |
parent | 778aeaeffedc468028fc059ab2aa81e7bdfa6de3 (diff) | |
download | rails-68c90ab0194a56493ceaafa16f0b5e6b7e36201f.tar.gz rails-68c90ab0194a56493ceaafa16f0b5e6b7e36201f.tar.bz2 rails-68c90ab0194a56493ceaafa16f0b5e6b7e36201f.zip |
Render refactoring; render error reporting fixes
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2058 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test')
-rw-r--r-- | actionpack/test/controller/new_render_test.rb | 1 | ||||
-rw-r--r-- | actionpack/test/template/compiled_templates_tests.rb | 63 |
2 files changed, 64 insertions, 0 deletions
diff --git a/actionpack/test/controller/new_render_test.rb b/actionpack/test/controller/new_render_test.rb index 1e077bb902..a29a6b9cd2 100644 --- a/actionpack/test/controller/new_render_test.rb +++ b/actionpack/test/controller/new_render_test.rb @@ -132,6 +132,7 @@ class NewRenderTestController < ActionController::Base def rendering_with_conflicting_local_vars @name = "David" + def @template.name() nil end render :action => "potential_conflicts" end diff --git a/actionpack/test/template/compiled_templates_tests.rb b/actionpack/test/template/compiled_templates_tests.rb new file mode 100644 index 0000000000..4734e6e81e --- /dev/null +++ b/actionpack/test/template/compiled_templates_tests.rb @@ -0,0 +1,63 @@ +require 'test/unit' +require File.dirname(__FILE__) + '/../../lib/action_view/helpers/date_helper' +require File.dirname(__FILE__) + "/../abstract_unit" + +class CompiledTemplateTests < Test::Unit::TestCase + + def setup + @ct = ActionView::CompiledTemplates.new + @v = Class.new + @v.send :include, @ct + end + attr_reader :ct, :v + + def test_name_allocation + hi_world = ct.method_names['hi world'] + hi_sexy = ct.method_names['hi sexy'] + wish_upon_a_star = ct.method_names['I love seeing decent error messages'] + + assert_equal hi_world, ct.method_names['hi world'] + assert_equal hi_sexy, ct.method_names['hi sexy'] + assert_equal wish_upon_a_star, ct.method_names['I love seeing decent error messages'] + assert_equal 3, [hi_world, hi_sexy, wish_upon_a_star].uniq.length + end + + def test_wrap_source + assert_equal( + "def aliased_assignment(value)\nself.value = value\nend", + @ct.wrap_source(:aliased_assignment, [:value], 'self.value = value') + ) + + assert_equal( + "def simple()\nnil\nend", + @ct.wrap_source(:simple, [], 'nil') + ) + end + + def test_compile_source_single_method + selector = ct.compile_source('doubling method', [:a], 'a + a') + assert_equal 2, @v.new.send(selector, 1) + assert_equal 4, @v.new.send(selector, 2) + assert_equal -4, @v.new.send(selector, -2) + assert_equal 0, @v.new.send(selector, 0) + selector + end + + def test_compile_source_two_method + sel1 = test_compile_source_single_method # compile the method in the other test + sel2 = ct.compile_source('doubling method', [:a, :b], 'a + b + a + b') + assert_not_equal sel1, sel2 + + assert_equal 2, @v.new.send(sel1, 1) + assert_equal 4, @v.new.send(sel1, 2) + + assert_equal 6, @v.new.send(sel2, 1, 2) + assert_equal 32, @v.new.send(sel2, 15, 1) + end + + def test_mtime + t1 = Time.now + test_compile_source_single_method + assert (t1..Time.now).include?(ct.mtime('doubling method', [:a])) + end +end |