From fc3a09e49a692ce2307e78cd414242abd2c31e7d Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 18 Aug 2012 08:25:22 +0000 Subject: Let macros optionally accept a block of text (#3061). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10210 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- .../lib/redmine/wiki_formatting/macros_test.rb | 24 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'test') diff --git a/test/unit/lib/redmine/wiki_formatting/macros_test.rb b/test/unit/lib/redmine/wiki_formatting/macros_test.rb index b313e8b80..901184909 100644 --- a/test/unit/lib/redmine/wiki_formatting/macros_test.rb +++ b/test/unit/lib/redmine/wiki_formatting/macros_test.rb @@ -65,6 +65,19 @@ class Redmine::WikiFormatting::MacrosTest < ActionView::TestCase assert_equal '

Bar: () (String)

', textilizable("{{bar()}}") end + def test_macro_registration_with_3_args_should_receive_text_argument + Redmine::WikiFormatting::Macros.register do + macro :baz do |obj, args, text| + "Baz: (#{args.join(',')}) (#{text.class.name}) (#{text})" + end + end + + assert_equal "

Baz: () (NilClass) ()

", textilizable("{{baz}}") + assert_equal "

Baz: () (NilClass) ()

", textilizable("{{baz()}}") + assert_equal "

Baz: () (String) (line1\nline2)

", textilizable("{{baz()\nline1\nline2\n}}") + assert_equal "

Baz: (arg1,arg2) (String) (line1\nline2)

", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}") + end + def test_multiple_macros_on_the_same_line Redmine::WikiFormatting::Macros.macro :foo do |obj, args| args.any? ? "args: #{args.join(',')}" : "no args" @@ -79,14 +92,15 @@ class Redmine::WikiFormatting::MacrosTest < ActionView::TestCase def test_macro_should_receive_the_object_as_argument_when_with_object_and_attribute issue = Issue.find(1) issue.description = "{{hello_world}}" - assert_equal '

Hello world! Object: Issue, Called with no argument.

', textilizable(issue, :description) + assert_equal '

Hello world! Object: Issue, Called with no argument and no block of text.

', textilizable(issue, :description) end def test_macro_should_receive_the_object_as_argument_when_called_with_object_option text = "{{hello_world}}" - assert_equal '

Hello world! Object: Issue, Called with no argument.

', textilizable(text, :object => Issue.find(1)) + assert_equal '

Hello world! Object: Issue, Called with no argument and no block of text.

', textilizable(text, :object => Issue.find(1)) end + def test_macro_exception_should_be_displayed Redmine::WikiFormatting::Macros.macro :exception do |obj, args| raise "My message" @@ -237,14 +251,14 @@ class Redmine::WikiFormatting::MacrosTest < ActionView::TestCase RAW expected = <<-EXPECTED -

Hello world! Object: NilClass, Arguments: foo

+

Hello world! Object: NilClass, Arguments: foo and no block of text.

 {{hello_world(pre)}}
 !{{hello_world(pre)}}
 
-

Hello world! Object: NilClass, Arguments: bar

+

Hello world! Object: NilClass, Arguments: bar and no block of text.

EXPECTED assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(text).gsub(%r{[\r\n\t]}, '') @@ -257,6 +271,6 @@ EXPECTED def test_macros_should_not_mangle_next_macros_outputs text = '{{macro(2)}} !{{macro(2)}} {{hello_world(foo)}}' - assert_equal '

{{macro(2)}} {{macro(2)}} Hello world! Object: NilClass, Arguments: foo

', textilizable(text) + assert_equal '

{{macro(2)}} {{macro(2)}} Hello world! Object: NilClass, Arguments: foo and no block of text.

', textilizable(text) end end -- cgit v1.2.3