62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| require File.expand_path(File.dirname(__FILE__) + '/test_helper')
 | |
| 
 | |
| class RadiusContextTest < Test::Unit::TestCase
 | |
|   include RadiusTestHelper
 | |
|   
 | |
|   def setup
 | |
|     @context = new_context
 | |
|   end
 | |
|   
 | |
|   def test_initialize
 | |
|     @context = Radius::Context.new
 | |
|   end
 | |
|   
 | |
|   def test_initialize_with_block
 | |
|     @context = Radius::Context.new do |c|
 | |
|       assert_kind_of Radius::Context, c
 | |
|       c.define_tag('test') { 'just a test' }
 | |
|     end
 | |
|     assert_not_equal Hash.new, @context.definitions
 | |
|   end
 | |
|   
 | |
|   def test_with
 | |
|     got = @context.with do |c|
 | |
|       assert_equal @context, c
 | |
|     end
 | |
|     assert_equal @context, got
 | |
|   end
 | |
|   
 | |
|   def test_render_tag
 | |
|     define_global_tag "hello" do |tag|
 | |
|       "Hello #{tag.attr['name'] || 'World'}!"
 | |
|     end
 | |
|     assert_render_tag_output 'Hello World!', 'hello'
 | |
|     assert_render_tag_output 'Hello John!', 'hello', 'name' => 'John'
 | |
|   end
 | |
|   
 | |
|   def test_render_tag__undefined_tag
 | |
|     e = assert_raises(Radius::UndefinedTagError) { @context.render_tag('undefined_tag') }
 | |
|     assert_equal "undefined tag `undefined_tag'", e.message
 | |
|   end
 | |
|   
 | |
|   def test_tag_missing
 | |
|     class << @context
 | |
|       def tag_missing(tag, attr, &block)
 | |
|         "undefined tag `#{tag}' with attributes #{attr.inspect}"
 | |
|       end
 | |
|     end
 | |
|     
 | |
|     text = ''
 | |
|     expected = %{undefined tag `undefined_tag' with attributes {"cool"=>"beans"}}
 | |
|     assert_nothing_raised { text = @context.render_tag('undefined_tag', 'cool' => 'beans') }
 | |
|     assert_equal expected, text
 | |
|   end
 | |
|   
 | |
|   private
 | |
|     
 | |
|     def assert_render_tag_output(output, *render_tag_params)
 | |
|       assert_equal output, @context.render_tag(*render_tag_params)
 | |
|     end
 | |
|   
 | |
| end
 |