]> source.dussan.org Git - redmine.git/commitdiff
Explicitly specify text formatting in the tests (#35952).
authorMarius Balteanu <marius.balteanu@zitec.com>
Sat, 22 Jan 2022 10:11:13 +0000 (10:11 +0000)
committerMarius Balteanu <marius.balteanu@zitec.com>
Sat, 22 Jan 2022 10:11:13 +0000 (10:11 +0000)
Patch by Go MAEDA.

git-svn-id: http://svn.redmine.org/redmine/trunk@21386 e93f8b46-1217-0410-a6f0-8f06a7374b81

test/functional/issues_controller_test.rb
test/functional/projects_controller_test.rb
test/functional/wiki_controller_test.rb
test/helpers/application_helper_test.rb
test/integration/attachments_test.rb
test/unit/lib/redmine/field_format/field_format_test.rb
test/unit/lib/redmine/wiki_formatting/macros_test.rb
test/unit/mailer_test.rb

index 14b4ea19a1d92f301b2159cb8cf0c68fad3b5c79..f4c269c7e30e993e9305f57d738379b5a6dc4268 100644 (file)
@@ -1701,31 +1701,33 @@ class IssuesControllerTest < Redmine::ControllerTest
   end
 
   def test_index_with_last_notes_column
-    get(
-      :index,
-      :params => {
-        :set_filter => 1,
-        :c => %w(subject last_notes)
-      }
-    )
-    assert_response :success
-    assert_select 'table.issues thead th', 4 # columns: chekbox + id + subject
+    with_settings :text_formatting => 'textile' do
+      get(
+        :index,
+        :params => {
+          :set_filter => 1,
+          :c => %w(subject last_notes)
+        }
+      )
+      assert_response :success
+      assert_select 'table.issues thead th', 4 # columns: chekbox + id + subject
 
-    assert_select 'td.last_notes[colspan="4"]', :text => 'Some notes with Redmine links: #2, r2.'
-    assert_select(
-      'td.last_notes[colspan="4"]',
-      :text => 'A comment with inline image:  and a reference to #1 and r2.'
-    )
-    get(
-      :index,
-      :params => {
-        :set_filter => 1,
-        :c => %w(subject last_notes),
-        :format => 'pdf'
-      }
-    )
-    assert_response :success
-    assert_equal 'application/pdf', response.media_type
+      assert_select 'td.last_notes[colspan="4"]', :text => 'Some notes with Redmine links: #2, r2.'
+      assert_select(
+        'td.last_notes[colspan="4"]',
+        :text => 'A comment with inline image:  and a reference to #1 and r2.'
+      )
+      get(
+        :index,
+        :params => {
+          :set_filter => 1,
+          :c => %w(subject last_notes),
+          :format => 'pdf'
+        }
+      )
+      assert_response :success
+      assert_equal 'application/pdf', response.media_type
+    end
   end
 
   def test_index_with_last_notes_column_should_display_private_notes_with_permission_only
@@ -2893,20 +2895,22 @@ class IssuesControllerTest < Redmine::ControllerTest
   end
 
   def test_show_atom
-    get(
-      :show,
-      :params => {
-        :id => 2,
-        :format => 'atom'
-      }
-    )
-    assert_response :success
-    assert_equal 'application/atom+xml', response.media_type
-    # Inline image
-    assert_select(
-      'content',
-      :text => Regexp.new(Regexp.quote('http://test.host/attachments/download/10'))
-    )
+    with_settings :text_formatting => 'textile' do
+      get(
+        :show,
+        :params => {
+          :id => 2,
+          :format => 'atom'
+        }
+      )
+      assert_response :success
+      assert_equal 'application/atom+xml', response.media_type
+      # Inline image
+      assert_select(
+        'content',
+        :text => Regexp.new(Regexp.quote('http://test.host/attachments/download/10'))
+      )
+    end
   end
 
   def test_show_export_to_pdf
index 244187f765876b955d7b3b7a539f5c3059630cb2..837de343abc4fe6ba91f3b9b63c4f5f909d74179 100644 (file)
@@ -96,26 +96,28 @@ class ProjectsControllerTest < Redmine::ControllerTest
   end
 
   def test_index_as_list_should_format_column_value
-    get :index, :params => {
-      :c => ['name', 'status', 'short_description', 'homepage', 'parent_id', 'identifier', 'is_public', 'created_on', 'cf_3'],
-      :display_type => 'list'
-    }
-    assert_response :success
+    with_settings :text_formatting => 'textile' do
+      get :index, :params => {
+        :c => ['name', 'status', 'short_description', 'homepage', 'parent_id', 'identifier', 'is_public', 'created_on', 'cf_3'],
+        :display_type => 'list'
+      }
+      assert_response :success
 
-    project = Project.find(1)
-    assert_select 'table.projects' do
-      assert_select 'tr[id=?]', 'project-1' do
-        assert_select 'td.name a[href=?]', '/projects/ecookbook', :text => 'eCookbook'
-        assert_select 'td.status', :text => 'active'
-        assert_select 'td.short_description', :text => 'Recipes management application'
-        assert_select 'td.homepage a.external', :text => 'http://ecookbook.somenet.foo/'
-        assert_select 'td.identifier', :text => 'ecookbook'
-        assert_select 'td.is_public', :text => 'Yes'
-        assert_select 'td.created_on', :text => format_time(project.created_on)
-        assert_select 'td.cf_3.list', :text => 'Stable'
-      end
-      assert_select 'tr[id=?]', 'project-4' do
-        assert_select 'td.parent_id a[href=?]', '/projects/ecookbook', :text => 'eCookbook'
+      project = Project.find(1)
+      assert_select 'table.projects' do
+        assert_select 'tr[id=?]', 'project-1' do
+          assert_select 'td.name a[href=?]', '/projects/ecookbook', :text => 'eCookbook'
+          assert_select 'td.status', :text => 'active'
+          assert_select 'td.short_description', :text => 'Recipes management application'
+          assert_select 'td.homepage a.external', :text => 'http://ecookbook.somenet.foo/'
+          assert_select 'td.identifier', :text => 'ecookbook'
+          assert_select 'td.is_public', :text => 'Yes'
+          assert_select 'td.created_on', :text => format_time(project.created_on)
+          assert_select 'td.cf_3.list', :text => 'Stable'
+        end
+        assert_select 'tr[id=?]', 'project-4' do
+          assert_select 'td.parent_id a[href=?]', '/projects/ecookbook', :text => 'eCookbook'
+        end
       end
     end
   end
index ef273f0f351984ecaa74a116eb7df884cadde157..d5758cb09508806b67cd031d84f59fccb14a2bc2 100644 (file)
@@ -30,13 +30,15 @@ class WikiControllerTest < Redmine::ControllerTest
   end
 
   def test_show_start_page
-    get :show, :params => {:project_id => 'ecookbook'}
-    assert_response :success
+    with_settings :text_formatting => 'textile' do
+      get :show, :params => {:project_id => 'ecookbook'}
+      assert_response :success
 
-    assert_select 'h1', :text => /CookBook documentation/
-    # child_pages macro
-    assert_select 'ul.pages-hierarchy>li>a[href=?]', '/projects/ecookbook/wiki/Page_with_an_inline_image',
-                  :text => 'Page with an inline image'
+      assert_select 'h1', :text => /CookBook documentation/
+      # child_pages macro
+      assert_select 'ul.pages-hierarchy>li>a[href=?]', '/projects/ecookbook/wiki/Page_with_an_inline_image',
+                    :text => 'Page with an inline image'
+    end
   end
 
   def test_export_link
@@ -55,13 +57,15 @@ class WikiControllerTest < Redmine::ControllerTest
   end
 
   def test_show_page_with_name
-    get :show, :params => {:project_id => 1, :id => 'Another_page'}
-    assert_response :success
+    with_settings :text_formatting => 'textile' do
+      get :show, :params => {:project_id => 1, :id => 'Another_page'}
+      assert_response :success
 
-    assert_select 'h1', :text => /Another page/
-    # Included page with an inline image
-    assert_select 'p', :text => /This is an inline image/
-    assert_select 'img[src=?][alt=?]', '/attachments/download/3/logo.gif', 'This is a logo'
+      assert_select 'h1', :text => /Another page/
+      # Included page with an inline image
+      assert_select 'p', :text => /This is an inline image/
+      assert_select 'img[src=?][alt=?]', '/attachments/download/3/logo.gif', 'This is a logo'
+    end
   end
 
   def test_show_old_version
@@ -147,19 +151,23 @@ class WikiControllerTest < Redmine::ControllerTest
   end
 
   def test_show_should_display_section_edit_links
-    @request.session[:user_id] = 2
-    get :show, :params => {:project_id => 1, :id => 'Page with sections'}
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      get :show, :params => {:project_id => 1, :id => 'Page with sections'}
 
-    assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=1', 0
-    assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=2'
-    assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=3'
+      assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=1', 0
+      assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=2'
+      assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=3'
+    end
   end
 
   def test_show_current_version_should_display_section_edit_links
-    @request.session[:user_id] = 2
-    get :show, :params => {:project_id => 1, :id => 'Page with sections', :version => 3}
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      get :show, :params => {:project_id => 1, :id => 'Page with sections', :version => 3}
 
-    assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=2'
+      assert_select 'a[href=?]', '/projects/ecookbook/wiki/Page_with_sections/edit?section=2'
+    end
   end
 
   def test_show_old_version_should_not_display_section_edit_links
@@ -353,17 +361,19 @@ class WikiControllerTest < Redmine::ControllerTest
   end
 
   def test_edit_section
-    @request.session[:user_id] = 2
-    get :edit, :params => {:project_id => 'ecookbook', :id => 'Page_with_sections', :section => 2}
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      get :edit, :params => {:project_id => 'ecookbook', :id => 'Page_with_sections', :section => 2}
 
-    assert_response :success
+      assert_response :success
 
-    page = WikiPage.find_by_title('Page_with_sections')
-    section, hash = Redmine::WikiFormatting::Textile::Formatter.new(page.content.text).get_section(2)
+      page = WikiPage.find_by_title('Page_with_sections')
+      section, hash = Redmine::WikiFormatting::Textile::Formatter.new(page.content.text).get_section(2)
 
-    assert_select 'textarea[name=?]', 'content[text]', :text => section
-    assert_select 'input[name=section][type=hidden][value="2"]'
-    assert_select 'input[name=section_hash][type=hidden][value=?]', hash
+      assert_select 'textarea[name=?]', 'content[text]', :text => section
+      assert_select 'input[name=section][type=hidden][value="2"]'
+      assert_select 'input[name=section_hash][type=hidden][value=?]', hash
+    end
   end
 
   def test_edit_invalid_section_should_respond_with_404
@@ -589,57 +599,61 @@ class WikiControllerTest < Redmine::ControllerTest
   end
 
   def test_update_section
-    @request.session[:user_id] = 2
-    page = WikiPage.find_by_title('Page_with_sections')
-    section, hash = Redmine::WikiFormatting::Textile::Formatter.new(page.content.text).get_section(2)
-    text = page.content.text
-
-    assert_no_difference 'WikiPage.count' do
-      assert_no_difference 'WikiContent.count' do
-        assert_difference 'WikiContentVersion.count' do
-          put :update, :params => {
-            :project_id => 1,
-            :id => 'Page_with_sections',
-            :content => {
-              :text => "New section content",
-              :version => 3
-            },
-            :section => 2,
-            :section_hash => hash
-          }
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      page = WikiPage.find_by(title: 'Page_with_sections')
+      section, hash = Redmine::WikiFormatting::Textile::Formatter.new(page.content.text).get_section(2)
+      text = page.content.text
+
+      assert_no_difference 'WikiPage.count' do
+        assert_no_difference 'WikiContent.count' do
+          assert_difference 'WikiContentVersion.count' do
+            put :update, :params => {
+              :project_id => 1,
+              :id => 'Page_with_sections',
+              :content => {
+                :text => 'New section content',
+                :version => 3
+              },
+              :section => 2,
+              :section_hash => hash
+            }
+          end
         end
       end
+      assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections#section-2'
+      assert_equal Redmine::WikiFormatting::Textile::Formatter.new(text).update_section(2, 'New section content'), page.reload.content.text
     end
-    assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections#section-2'
-    assert_equal Redmine::WikiFormatting::Textile::Formatter.new(text).update_section(2, "New section content"), page.reload.content.text
   end
 
   def test_update_section_should_allow_stale_page_update
-    @request.session[:user_id] = 2
-    page = WikiPage.find_by_title('Page_with_sections')
-    section, hash = Redmine::WikiFormatting::Textile::Formatter.new(page.content.text).get_section(2)
-    text = page.content.text
-
-    assert_no_difference 'WikiPage.count' do
-      assert_no_difference 'WikiContent.count' do
-        assert_difference 'WikiContentVersion.count' do
-          put :update, :params => {
-            :project_id => 1,
-            :id => 'Page_with_sections',
-            :content => {
-              :text => "New section content",
-              :version => 2 # Current version is 3
-            },
-            :section => 2,
-            :section_hash => hash
-          }
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      page = WikiPage.find_by(title: 'Page_with_sections')
+      section, hash = Redmine::WikiFormatting::Textile::Formatter.new(page.content.text).get_section(2)
+      text = page.content.text
+
+      assert_no_difference 'WikiPage.count' do
+        assert_no_difference 'WikiContent.count' do
+          assert_difference 'WikiContentVersion.count' do
+            put :update, :params => {
+              :project_id => 1,
+              :id => 'Page_with_sections',
+              :content => {
+                :text => 'New section content',
+                :version => 2 # Current version is 3
+              },
+              :section => 2,
+              :section_hash => hash
+            }
+          end
         end
       end
+      assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections#section-2'
+      page.reload
+      assert_equal Redmine::WikiFormatting::Textile::Formatter.new(text).update_section(2, 'New section content'), page.content.text
+      assert_equal 4, page.content.version
     end
-    assert_redirected_to '/projects/ecookbook/wiki/Page_with_sections#section-2'
-    page.reload
-    assert_equal Redmine::WikiFormatting::Textile::Formatter.new(text).update_section(2, "New section content"), page.content.text
-    assert_equal 4, page.content.version
   end
 
   def test_update_section_should_not_allow_stale_section_update
@@ -669,33 +683,37 @@ class WikiControllerTest < Redmine::ControllerTest
   end
 
   def test_preview
-    @request.session[:user_id] = 2
-    post :preview, :params => {
-      :project_id => 1,
-      :id => 'CookBook_documentation',
-      :content => {
-        :comments => '',
-        :text => 'this is a *previewed text*',
-        :version => 3
-      }
-    }, :xhr => true
-    assert_response :success
-    assert_select 'strong', :text => /previewed text/
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      post :preview, :params => {
+        :project_id => 1,
+        :id => 'CookBook_documentation',
+        :content => {
+          :comments => '',
+          :text => 'this is a *previewed text*',
+          :version => 3
+        }
+      }, :xhr => true
+      assert_response :success
+      assert_select 'strong', :text => /previewed text/
+    end
   end
 
   def test_preview_new_page
-    @request.session[:user_id] = 2
-    post :preview, :params => {
-      :project_id => 1,
-      :id => 'New page',
-      :content => {
-        :text => 'h1. New page',
-        :comments => '',
-        :version => 0
-      }
-    }, :xhr => true
-    assert_response :success
-    assert_select 'h1', :text => /New page/
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      post :preview, :params => {
+        :project_id => 1,
+        :id => 'New page',
+        :content => {
+          :text => 'h1. New page',
+          :comments => '',
+          :version => 0
+        }
+      }, :xhr => true
+      assert_response :success
+      assert_select 'h1', :text => /New page/
+    end
   end
 
   def test_history
@@ -1134,25 +1152,29 @@ class WikiControllerTest < Redmine::ControllerTest
   end
 
   def test_show_html
-    @request.session[:user_id] = 2
-    get :show, :params => {:project_id => 1, :format => 'html'}
-    assert_response :success
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      get :show, :params => {:project_id => 1, :format => 'html'}
+      assert_response :success
 
-    assert_equal 'text/html', @response.media_type
-    assert_equal "attachment; filename=\"CookBook_documentation.html\"; filename*=UTF-8''CookBook_documentation.html",
-                 @response.headers['Content-Disposition']
-    assert_select 'h1', :text => /CookBook documentation/
+      assert_equal 'text/html', @response.media_type
+      assert_equal "attachment; filename=\"CookBook_documentation.html\"; filename*=UTF-8''CookBook_documentation.html",
+                  @response.headers['Content-Disposition']
+      assert_select 'h1', :text => /CookBook documentation/
+    end
   end
 
   def test_show_versioned_html
-    @request.session[:user_id] = 2
-    get :show, :params => {:project_id => 1, :format => 'html', :version => 2}
-    assert_response :success
+    with_settings :text_formatting => 'textile' do
+      @request.session[:user_id] = 2
+      get :show, :params => {:project_id => 1, :format => 'html', :version => 2}
+      assert_response :success
 
-    assert_equal 'text/html', @response.media_type
-    assert_equal "attachment; filename=\"CookBook_documentation.html\"; filename*=UTF-8''CookBook_documentation.html",
-                 @response.headers['Content-Disposition']
-    assert_select 'h1', :text => /CookBook documentation v2/
+      assert_equal 'text/html', @response.media_type
+      assert_equal "attachment; filename=\"CookBook_documentation.html\"; filename*=UTF-8''CookBook_documentation.html",
+                  @response.headers['Content-Disposition']
+      assert_select 'h1', :text => /CookBook documentation v2/
+    end
   end
 
   def test_show_txt
index 50a3d579a3a4f85d5ab25dce122ac19079714622..99727b95686d77cce0c35a7f7d811bb44aa84de8 100644 (file)
@@ -115,7 +115,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       'http://www.redmine.org/example-' =>
         '<a class="external" href="http://www.redmine.org/example-">http://www.redmine.org/example-</a>',
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_auto_links_with_non_ascii_characters
@@ -123,7 +125,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       "http://foo.bar/#{@russian_test}" =>
         %|<a class="external" href="http://foo.bar/#{@russian_test}">http://foo.bar/#{@russian_test}</a>|
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_auto_mailto
@@ -131,7 +135,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       'test@foo.bar' => '<a class="email" href="mailto:test@foo.bar">test@foo.bar</a>',
       'test@www.foo.bar' => '<a class="email" href="mailto:test@www.foo.bar">test@www.foo.bar</a>',
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_inline_images
@@ -153,7 +159,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       'with query string !http://foo.bar/image.cgi?a=1&b=2!' =>
         'with query string <img src="http://foo.bar/image.cgi?a=1&#38;b=2" alt="" />'
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_inline_images_inside_tags
@@ -164,8 +172,10 @@ class ApplicationHelperTest < Redmine::HelperTest
 
       p=. !bar.gif!
     RAW
-    assert textilizable(raw).include?('<img src="foo.png" alt="" />')
-    assert textilizable(raw).include?('<img src="bar.gif" alt="" />')
+    with_settings :text_formatting => 'textile' do
+      assert textilizable(raw).include?('<img src="foo.png" alt="" />')
+      assert textilizable(raw).include?('<img src="bar.gif" alt="" />')
+    end
   end
 
   def test_attached_images
@@ -181,7 +191,9 @@ class ApplicationHelperTest < Redmine::HelperTest
          '<a href="http://foo.bar/"><img src="/attachments/download/3/logo.gif" title="This is a logo" alt="This is a logo" loading="lazy" /></a>',
     }
     attachments = Attachment.all
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => attachments)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => attachments)}
+    end
   end
 
   def test_attached_images_on_issue
@@ -196,8 +208,10 @@ class ApplicationHelperTest < Redmine::HelperTest
       !attached_on_journal.png!'
     RAW
 
-    assert textilizable(raw, :object => journal).include?("<img src=\"/attachments/download/#{attachment_1.id}/attached_on_issue.png\" alt=\"\" loading=\"lazy\" />")
-    assert textilizable(raw, :object => journal).include?("<img src=\"/attachments/download/#{attachment_2.id}/attached_on_journal.png\" alt=\"\" loading=\"lazy\" />")
+    with_settings :text_formatting => 'textile' do
+      assert textilizable(raw, :object => journal).include?("<img src=\"/attachments/download/#{attachment_1.id}/attached_on_issue.png\" alt=\"\" loading=\"lazy\" />")
+      assert textilizable(raw, :object => journal).include?("<img src=\"/attachments/download/#{attachment_2.id}/attached_on_journal.png\" alt=\"\" loading=\"lazy\" />")
+    end
   end
 
   def test_attached_images_with_textile_and_non_ascii_filename
@@ -232,11 +246,13 @@ class ApplicationHelperTest < Redmine::HelperTest
 
   def test_attached_images_with_hires_naming
     attachment = Attachment.generate!(:filename => 'image@2x.png')
-    assert_equal(
-      %(<p><img src="/attachments/download/#{attachment.id}/image@2x.png" ) +
-        %(srcset="/attachments/download/#{attachment.id}/image@2x.png 2x" alt="" loading="lazy" /></p>),
-      textilizable("!image@2x.png!", :attachments => [attachment])
-    )
+    with_settings :text_formatting => 'textile' do
+      assert_equal(
+        %(<p><img src="/attachments/download/#{attachment.id}/image@2x.png" ) +
+          %(srcset="/attachments/download/#{attachment.id}/image@2x.png 2x" alt="" loading="lazy" /></p>),
+        textilizable("!image@2x.png!", :attachments => [attachment])
+      )
+    end
   end
 
   def test_attached_images_filename_extension
@@ -296,7 +312,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     }
 
     attachments = [a1, a2, a3, a4]
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => attachments)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => attachments)}
+    end
   end
 
   def test_attached_images_should_read_later
@@ -320,7 +338,9 @@ class ApplicationHelperTest < Redmine::HelperTest
         'Inline image: <img src="/attachments/download/' + a2.id.to_s + '/testfile.PNG" alt="" loading="lazy" />',
     }
     attachments = [a1, a2]
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => attachments)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => attachments)}
+    end
   ensure
     set_tmp_attachments_directory
   end
@@ -351,7 +371,9 @@ class ApplicationHelperTest < Redmine::HelperTest
         '<a class="external" href="http://foo.bar/page?p=1&#38;t=z&#38;s=-">http://foo.bar/page?p=1&#38;t=z&#38;s=-</a>',
       'This is an intern "link":/foo/bar-' => 'This is an intern <a href="/foo/bar-">link</a>'
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_textile_external_links_with_non_ascii_characters
@@ -359,7 +381,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       %|This is a "link":http://foo.bar/#{@russian_test}| =>
         %|This is a <a href="http://foo.bar/#{@russian_test}" class="external">link</a>|
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_redmine_links
@@ -549,15 +573,19 @@ class ApplicationHelperTest < Redmine::HelperTest
       'user:foobar'                 => 'user:foobar',
     }
     @project = Project.find(1)
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"}
+    end
   end
 
   def test_link_to_note_within_the_same_page
-    issue = Issue.find(1)
-    assert_equal '<p><a href="#note-14">#note-14</a></p>', textilizable('#note-14', :object => issue)
+    with_settings :text_formatting => 'textile' do
+      issue = Issue.find(1)
+      assert_equal '<p><a href="#note-14">#note-14</a></p>', textilizable('#note-14', :object => issue)
 
-    journal = Journal.find(2)
-    assert_equal '<p><a href="#note-2">#note-2</a></p>', textilizable('#note-2', :object => journal)
+      journal = Journal.find(2)
+      assert_equal '<p><a href="#note-2">#note-2</a></p>', textilizable('#note-2', :object => journal)
+    end
   end
 
   def test_user_links_with_email_as_login_name_should_not_be_parsed_textile
@@ -603,10 +631,12 @@ class ApplicationHelperTest < Redmine::HelperTest
   def test_should_not_parse_redmine_links_inside_link
     raw = "r1 should not be parsed in http://example.com/url-r1/"
     html = '<a class="external" href="http://example.com/url-r1/">http://example.com/url-r1/</a>'
-    assert_match(
-      %r{<p><a class="changeset".*>r1</a> should not be parsed in #{html}</p>},
-      textilizable(raw, :project => Project.find(1))
-    )
+    with_settings :text_formatting => 'textile' do
+      assert_match(
+        %r{<p><a class="changeset".*>r1</a> should not be parsed in #{html}</p>},
+        textilizable(raw, :project => Project.find(1))
+      )
+    end
   end
 
   def test_redmine_links_with_a_different_project_before_current_project
@@ -615,8 +645,10 @@ class ApplicationHelperTest < Redmine::HelperTest
     @project = Project.find(3)
     result1 = link_to("1.4.4", "/versions/#{vp1.id}", :class => "version")
     result2 = link_to("1.4.4", "/versions/#{vp3.id}", :class => "version")
-    assert_equal "<p>#{result1} #{result2}</p>",
-                 textilizable("ecookbook:version:1.4.4 version:1.4.4")
+    with_settings :text_formatting => 'textile' do
+      assert_equal "<p>#{result1} #{result2}</p>",
+                   textilizable('ecookbook:version:1.4.4 version:1.4.4')
+    end
   end
 
   def test_escaped_redmine_links_should_not_be_parsed
@@ -633,7 +665,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       'source:/some/file'
     ]
     @project = Project.find(1)
-    to_test.each {|text| assert_equal "<p>#{text}</p>", textilizable("!" + text), "#{text} failed"}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text| assert_equal "<p>#{text}</p>", textilizable("!#{text}"), "#{text} failed"}
+    end
   end
 
   def test_cross_project_redmine_links
@@ -667,8 +701,10 @@ class ApplicationHelperTest < Redmine::HelperTest
       'invalid:source:/some/file'             => 'invalid:source:/some/file',
     }
     @project = Project.find(3)
-    to_test.each do |text, result|
-      assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"
+    with_settings :text_formatting => 'textile' do
+      to_test.each do |text, result|
+        assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"
+      end
     end
   end
 
@@ -677,7 +713,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     link = link_to("Test & Show.txt", "/versions/#{v.id}", :class => "version")
 
     @project = v.project
-    assert_equal "<p>#{link}</p>", textilizable('version:"Test & Show.txt"')
+    with_settings :text_formatting => 'textile' do
+      assert_equal "<p>#{link}</p>", textilizable('version:"Test & Show.txt"')
+    end
   end
 
   def test_link_to_issue_subject
@@ -767,7 +805,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     }
 
     @project = Project.find(1)
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"}
+    end
   end
 
   def test_cross_project_multiple_repositories_redmine_links
@@ -824,7 +864,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       'invalid:source:invalid|some/file'       => 'invalid:source:invalid|some/file',
     }
     @project = Project.find(3)
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text), "#{text} failed"}
+    end
   end
 
   def test_redmine_links_git_commit
@@ -853,7 +895,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     to_test = {
       'commit:abcd' => changeset_link,
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   # TODO: Bazaar commit id contains mail address, so it contains '@' and '_'.
@@ -896,17 +940,21 @@ class ApplicationHelperTest < Redmine::HelperTest
       'r123' => changeset_link_rev,
       'commit:abcd' => changeset_link_commit,
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_attachment_links
     text = 'attachment:error281.txt'
     result = link_to("error281.txt", "/attachments/1",
                      :class => "attachment")
-    assert_equal "<p>#{result}</p>",
-                 textilizable(text,
-                              :attachments => Issue.find(3).attachments),
-                 "#{text} failed"
+    with_settings :text_formatting => 'textile' do
+      assert_equal "<p>#{result}</p>",
+                  textilizable(text,
+                                :attachments => Issue.find(3).attachments),
+                  "#{text} failed"
+    end
   end
 
   def test_attachment_link_should_link_to_latest_attachment
@@ -914,8 +962,10 @@ class ApplicationHelperTest < Redmine::HelperTest
     a2 = Attachment.generate!(:filename => "test.txt")
     result = link_to("test.txt", "/attachments/#{a2.id}",
                      :class => "attachment")
-    assert_equal "<p>#{result}</p>",
-                 textilizable('attachment:test.txt', :attachments => [a1, a2])
+    with_settings :text_formatting => 'textile' do
+      assert_equal "<p>#{result}</p>",
+                   textilizable('attachment:test.txt', :attachments => [a1, a2])
+    end
   end
 
   def test_attachment_links_to_images_with_email_format_should_not_be_parsed
@@ -1031,7 +1081,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       '[[private-child:Wiki]]' => '[[private-child:Wiki]]',
     }
     @project = Project.find(1)
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_wiki_links_with_special_characters_should_work_in_textile
@@ -1124,8 +1176,10 @@ class ApplicationHelperTest < Redmine::HelperTest
                  :class => "wiki-page new"),
     }
     @project = Project.find(1)
-    to_test.each do |text, result|
-      assert_equal "<p>#{result}</p>", textilizable(text, :wiki_links => :local)
+    with_settings :text_formatting => 'textile' do
+      to_test.each do |text, result|
+        assert_equal "<p>#{result}</p>", textilizable(text, :wiki_links => :local)
+      end
     end
   end
 
@@ -1184,9 +1238,11 @@ class ApplicationHelperTest < Redmine::HelperTest
                  :class => "wiki-page new"),
     }
     @project = Project.find(1)
-    to_test.each do |text, result|
-      assert_equal "<p>#{result}</p>",
-                   textilizable(WikiContent.new(:text => text, :page => page), :text)
+    with_settings :text_formatting => 'textile' do
+      to_test.each do |text, result|
+        assert_equal "<p>#{result}</p>",
+                     textilizable(WikiContent.new(:text => text, :page => page), :text)
+      end
     end
   end
 
@@ -1228,8 +1284,10 @@ class ApplicationHelperTest < Redmine::HelperTest
                   :class => "wiki-page new"),
     }
     @project = Project.find(1)
-    to_test.each do |text, result|
-      assert_equal "<p>#{result}</p>", textilizable(text, :wiki_links => :anchor)
+    with_settings :text_formatting => 'textile' do
+      to_test.each do |text, result|
+        assert_equal "<p>#{result}</p>", textilizable(text, :wiki_links => :anchor)
+      end
     end
   end
 
@@ -1254,7 +1312,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       '<pre><code class=""onmouseover="alert(1)">text</code></pre>' => '<pre><code>text</code></pre>',
       '<pre class=""onmouseover="alert(1)">text</pre>' => '<pre>text</pre>',
     }
-    to_test.each {|text, result| assert_equal result, textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal result, textilizable(text)}
+    end
   end
 
   def test_allowed_html_tags
@@ -1263,7 +1323,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       "<notextile>no *textile* formatting</notextile>" => "no *textile* formatting",
       "<notextile>this is <tag>a tag</tag></notextile>" => "this is &lt;tag&gt;a tag&lt;/tag&gt;"
     }
-    to_test.each {|text, result| assert_equal result, textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal result, textilizable(text)}
+    end
   end
 
   def test_pre_tags
@@ -1283,7 +1345,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       </pre>
       <p>After</p>
     EXPECTED
-    assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    end
   end
 
   def test_pre_content_should_not_parse_wiki_and_redmine_links
@@ -1315,7 +1379,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       </pre>
     EXPECTED
     @project = Project.find(1)
-    assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    end
   end
 
   def test_non_closing_pre_blocks_should_be_closed
@@ -1327,7 +1393,9 @@ class ApplicationHelperTest < Redmine::HelperTest
       </code></pre>
     EXPECTED
     @project = Project.find(1)
-    assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    end
   end
 
   def test_unbalanced_closing_pre_tag_should_not_error
@@ -1346,7 +1414,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     expected = <<~EXPECTED
       <pre><code class="ECMA_script syntaxhl" data-language=\"ECMA_script\"><span class="cm">/* Hello */</span><span class="nb">document</span><span class="p">.</span><span class="nx">write</span><span class="p">(</span><span class="dl">"</span><span class="s2">Hello World!</span><span class="dl">"</span><span class="p">);</span></code></pre>
     EXPECTED
-    assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(raw).gsub(%r{[\r\n\t]}, '')
+    end
   end
 
   def test_syntax_highlight_ampersand_in_textile
@@ -1383,7 +1453,9 @@ class ApplicationHelperTest < Redmine::HelperTest
                "<td>#{link2}</td>" +
                "</tr><tr><td>Cell 21</td><td>#{link3}</td></tr>"
     @project = Project.find(1)
-    assert_equal "<table>#{result}</table>", textilizable(text).gsub(/[\t\n]/, '')
+    with_settings :text_formatting => 'textile' do
+      assert_equal "<table>#{result}</table>", textilizable(text).gsub(/[\t\n]/, '')
+    end
   end
 
   def test_text_formatting
@@ -1396,12 +1468,16 @@ class ApplicationHelperTest < Redmine::HelperTest
       'a *H* umane *W* eb *T* ext *G* enerator' =>
         'a <strong>H</strong> umane <strong>W</strong> eb <strong>T</strong> ext <strong>G</strong> enerator',
     }
-    to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    with_settings :text_formatting => 'textile' do
+      to_test.each {|text, result| assert_equal "<p>#{result}</p>", textilizable(text)}
+    end
   end
 
   def test_wiki_horizontal_rule
-    assert_equal '<hr />', textilizable('---')
-    assert_equal '<p>Dashes: ---</p>', textilizable('Dashes: ---')
+    with_settings :text_formatting => 'textile' do
+      assert_equal '<hr />', textilizable('---')
+      assert_equal '<p>Dashes: ---</p>', textilizable('Dashes: ---')
+    end
   end
 
   def test_headings
@@ -1409,7 +1485,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     expected =
       %|<a name="Some-heading"></a>\n<h1 >Some heading| +
         %|<a href="#Some-heading" class="wiki-anchor">&para;</a></h1>|
-    assert_equal expected, textilizable(raw)
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected, textilizable(raw)
+    end
   end
 
   def test_headings_with_special_chars
@@ -1420,7 +1498,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     expected =
       %|<a name="#{anchor}"></a>\n<h1 >Some heading related to version 0.5| +
         %|<a href="##{anchor}" class="wiki-anchor">&para;</a></h1>|
-    assert_equal expected, textilizable(raw)
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected, textilizable(raw)
+    end
   end
 
   def test_headings_in_wiki_single_page_export_should_be_prepended_with_page_title
@@ -1429,7 +1509,9 @@ class ApplicationHelperTest < Redmine::HelperTest
     expected =
       %|<a name="Page_Title_Some-heading"></a>\n<h1 >Some heading| +
         %|<a href="#Page_Title_Some-heading" class="wiki-anchor">&para;</a></h1>|
-    assert_equal expected, textilizable(content, :text, :wiki_links => :anchor)
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected, textilizable(content, :text, :wiki_links => :anchor)
+    end
   end
 
   def test_table_of_content
@@ -1491,7 +1573,9 @@ class ApplicationHelperTest < Redmine::HelperTest
                '</ul>'
 
     @project = Project.find(1)
-    assert textilizable(raw).delete("\n").include?(expected)
+    with_settings :text_formatting => 'textile' do
+      assert textilizable(raw).delete("\n").include?(expected)
+    end
   end
 
   def test_table_of_content_should_generate_unique_anchors
@@ -1515,10 +1599,12 @@ class ApplicationHelperTest < Redmine::HelperTest
                   '</li>' +
                 '</ul>'
     @project = Project.find(1)
-    result = textilizable(raw).delete("\n")
-    assert_include expected, result
-    assert_include '<a name="Subtitle">', result
-    assert_include '<a name="Subtitle-2">', result
+    with_settings :text_formatting => 'textile' do
+      result = textilizable(raw).delete("\n")
+      assert_include expected, result
+      assert_include '<a name="Subtitle">', result
+      assert_include '<a name="Subtitle-2">', result
+    end
   end
 
   def test_table_of_content_should_contain_included_page_headings
@@ -1536,7 +1622,9 @@ class ApplicationHelperTest < Redmine::HelperTest
                '<li><a href="#Child-page-1">Child page 1</a></li>' +
                '</ul>'
     @project = Project.find(1)
-    assert textilizable(raw).delete("\n").include?(expected)
+    with_settings :text_formatting => 'textile' do
+      assert textilizable(raw).delete("\n").include?(expected)
+    end
   end
 
   def test_toc_with_textile_formatting_should_be_parsed
@@ -1581,40 +1669,42 @@ class ApplicationHelperTest < Redmine::HelperTest
     RAW
     @project = Project.find(1)
     set_language_if_valid 'en'
-    result =
-      textilizable(
-        raw,
-        :edit_section_links =>
-          {:controller => 'wiki', :action => 'edit',
-           :project_id => '1', :id => 'Test'}
-      ).delete("\n")
-    # heading that contains inline code
-    assert_match(
-      Regexp.new(
-        '<div class="contextual heading-2" title="Edit this section" id="section-4">' \
-        '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=4">' \
-        'Edit this section' \
-        '</a></div>' \
-        '<a name="Subtitle-with-inline-code"></a>' \
-        '<h2 >Subtitle with ' \
-        '<code>inline code</code><a href="#Subtitle-with-inline-code" class="wiki-anchor">&para;</a>' \
-        '</h2>'
-      ),
-      result
-    )
-    # last heading
-    assert_match(
-      Regexp.new(
-        '<div class="contextual heading-2" title="Edit this section" id="section-5">' \
-        '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=5">' \
-        'Edit this section' \
-        '</a></div>' \
-        '<a name="Subtitle-after-pre-tag"></a>' \
-        '<h2 >Subtitle after pre tag' \
-        '<a href="#Subtitle-after-pre-tag" class="wiki-anchor">&para;</a></h2>'
-      ),
-      result
-    )
+    with_settings :text_formatting => 'textile' do
+      result =
+        textilizable(
+          raw,
+          :edit_section_links =>
+            {:controller => 'wiki', :action => 'edit',
+            :project_id => '1', :id => 'Test'}
+        ).delete("\n")
+      # heading that contains inline code
+      assert_match(
+        Regexp.new(
+          '<div class="contextual heading-2" title="Edit this section" id="section-4">' \
+          '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=4">' \
+          'Edit this section' \
+          '</a></div>' \
+          '<a name="Subtitle-with-inline-code"></a>' \
+          '<h2 >Subtitle with ' \
+          '<code>inline code</code><a href="#Subtitle-with-inline-code" class="wiki-anchor">&para;</a>' \
+          '</h2>'
+        ),
+        result
+      )
+      # last heading
+      assert_match(
+        Regexp.new(
+          '<div class="contextual heading-2" title="Edit this section" id="section-5">' \
+          '<a class="icon-only icon-edit" href="/projects/1/wiki/Test/edit\?section=5">' \
+          'Edit this section' \
+          '</a></div>' \
+          '<a name="Subtitle-after-pre-tag"></a>' \
+          '<h2 >Subtitle after pre tag' \
+          '<a href="#Subtitle-after-pre-tag" class="wiki-anchor">&para;</a></h2>'
+        ),
+        result
+      )
+    end
   end
 
   def test_default_formatter
@@ -1633,7 +1723,9 @@ class ApplicationHelperTest < Redmine::HelperTest
   end
 
   def test_textilizable_with_formatting_set_to_true_should_format_text
-    assert_equal '<p><strong>text</strong></p>', textilizable("*text*", :formatting => true)
+    with_settings :text_formatting => 'textile' do
+      assert_equal '<p><strong>text</strong></p>', textilizable("*text*", :formatting => true)
+    end
   end
 
   def test_parse_redmine_links_should_handle_a_tag_without_attributes
index 14c96130bc30a950bd1bc5e20d4d6565afe738e5..197eda6aa8f4019f9be60a509d3cbc5c2e25db57 100644 (file)
@@ -90,28 +90,30 @@ class AttachmentsTest < Redmine::IntegrationTest
 
     token = ajax_upload('myupload.jpg', 'JPEG content')
 
-    post(
-      '/issues/preview',
-      :params => {
-        :issue => {:tracker_id => 1, :project_id => 'ecookbook'},
-        :text => 'Inline upload: !myupload.jpg!',
-        :attachments => {
-          '1' => {
-            :filename => 'myupload.jpg',
-            :description => 'My uploaded file',
-            :token => token
+    with_settings :text_formatting => 'textile' do
+      post(
+        '/issues/preview',
+        :params => {
+          :issue => {:tracker_id => 1, :project_id => 'ecookbook'},
+          :text => 'Inline upload: !myupload.jpg!',
+          :attachments => {
+            '1' => {
+              :filename => 'myupload.jpg',
+              :description => 'My uploaded file',
+              :token => token
+            }
           }
         }
-      }
-    )
-    assert_response :success
+      )
+      assert_response :success
 
-    attachment_path = response.body.match(%r{<img src="(/attachments/download/\d+/myupload.jpg)"})[1]
-    assert_not_nil token, "No attachment path found in response:\n#{response.body}"
+      attachment_path = response.body.match(%r{<img src="(/attachments/download/\d+/myupload.jpg)"})[1]
+      assert_not_nil token, "No attachment path found in response:\n#{response.body}"
 
-    get attachment_path
-    assert_response :success
-    assert_equal 'JPEG content', response.body
+      get attachment_path
+      assert_response :success
+      assert_equal 'JPEG content', response.body
+    end
   end
 
   def test_upload_and_resubmit_after_validation_failure
index 8d8874b362be4e0b89ff0002621f69bb1edfa1e8..5bcda215686edb0166f0c8d1ba21a27af72446b9 100644 (file)
@@ -39,8 +39,10 @@ class Redmine::FieldFormatTest < ActionView::TestCase
     field = IssueCustomField.new(:field_format => 'string', :text_formatting => 'full')
     custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "*foo*")
 
-    assert_equal "*foo*", field.format.formatted_custom_value(self, custom_value, false)
-    assert_include "<strong>foo</strong>", field.format.formatted_custom_value(self, custom_value, true)
+    with_settings :text_formatting => 'textile' do
+      assert_equal '*foo*', field.format.formatted_custom_value(self, custom_value, false)
+      assert_include '<strong>foo</strong>', field.format.formatted_custom_value(self, custom_value, true)
+    end
   end
 
   def test_text_field_with_text_formatting_disabled_should_not_format_text
@@ -55,8 +57,10 @@ class Redmine::FieldFormatTest < ActionView::TestCase
     field = IssueCustomField.new(:field_format => 'text', :text_formatting => 'full')
     custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "*foo*\nbar")
 
-    assert_equal "*foo*\nbar", field.format.formatted_custom_value(self, custom_value, false)
-    assert_include "<strong>foo</strong>", field.format.formatted_custom_value(self, custom_value, true)
+    with_settings :text_formatting => 'textile' do
+      assert_equal "*foo*\nbar", field.format.formatted_custom_value(self, custom_value, false)
+      assert_include '<strong>foo</strong>', field.format.formatted_custom_value(self, custom_value, true)
+    end
   end
 
   def test_should_validate_url_pattern_with_safe_scheme
index 39448df31527c52b820ae4af22813181833ef558..28be28d479fc7766b87cd1ac794d8d380b266cfe 100644 (file)
@@ -50,10 +50,12 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
       end
     end
 
-    assert_equal '<p>Foo: 0 () (Array)</p>', textilizable("{{foo}}")
-    assert_equal '<p>Foo: 0 () (Array)</p>', textilizable("{{foo()}}")
-    assert_equal '<p>Foo: 1 (arg1) (Array)</p>', textilizable("{{foo(arg1)}}")
-    assert_equal '<p>Foo: 2 (arg1,arg2) (Array)</p>', textilizable("{{foo(arg1, arg2)}}")
+    with_settings :text_formatting => 'textile' do
+      assert_equal '<p>Foo: 0 () (Array)</p>', textilizable('{{foo}}')
+      assert_equal '<p>Foo: 0 () (Array)</p>', textilizable('{{foo()}}')
+      assert_equal '<p>Foo: 1 (arg1) (Array)</p>', textilizable('{{foo(arg1)}}')
+      assert_equal '<p>Foo: 2 (arg1,arg2) (Array)</p>', textilizable('{{foo(arg1, arg2)}}')
+    end
   end
 
   def test_macro_registration_parse_args_set_to_false_should_disable_arguments_parsing
@@ -63,9 +65,11 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
       end
     end
 
-    assert_equal '<p>Bar: (args, more args) (String)</p>', textilizable("{{bar(args, more args)}}")
-    assert_equal '<p>Bar: () (String)</p>', textilizable("{{bar}}")
-    assert_equal '<p>Bar: () (String)</p>', textilizable("{{bar()}}")
+    with_settings :text_formatting => 'textile' do
+      assert_equal '<p>Bar: (args, more args) (String)</p>', textilizable('{{bar(args, more args)}}')
+      assert_equal '<p>Bar: () (String)</p>', textilizable('{{bar}}')
+      assert_equal '<p>Bar: () (String)</p>', textilizable('{{bar()}}')
+    end
   end
 
   def test_macro_registration_with_3_args_should_receive_text_argument
@@ -75,16 +79,19 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
       end
     end
 
-    assert_equal "<p>Baz: () (NilClass) ()</p>", textilizable("{{baz}}")
-    assert_equal "<p>Baz: () (NilClass) ()</p>", textilizable("{{baz()}}")
-    assert_equal "<p>Baz: () (String) (line1\nline2)</p>", textilizable("{{baz()\nline1\nline2\n}}")
-    assert_equal "<p>Baz: (arg1,arg2) (String) (line1\nline2)</p>", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}")
+    with_settings :text_formatting => 'textile' do
+      assert_equal '<p>Baz: () (NilClass) ()</p>', textilizable('{{baz}}')
+      assert_equal '<p>Baz: () (NilClass) ()</p>', textilizable('{{baz()}}')
+      assert_equal "<p>Baz: () (String) (line1\nline2)</p>", textilizable("{{baz()\nline1\nline2\n}}")
+      assert_equal "<p>Baz: (arg1,arg2) (String) (line1\nline2)</p>", textilizable("{{baz(arg1, arg2)\nline1\nline2\n}}")
+    end
   end
 
   def test_macro_name_with_upper_case
-    Redmine::WikiFormatting::Macros.macro(:UpperCase) {|obj, args| "Upper"}
-
-    assert_equal "<p>Upper</p>", textilizable("{{UpperCase}}")
+    with_settings :text_formatting => 'textile' do
+      Redmine::WikiFormatting::Macros.macro(:UpperCase) {|obj, args| 'Upper'}
+      assert_equal '<p>Upper</p>', textilizable('{{UpperCase}}')
+    end
   end
 
   def test_multiple_macros_on_the_same_line
@@ -92,27 +99,33 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
       args.any? ? "args: #{args.join(',')}" : "no args"
     end
 
-    assert_equal '<p>no args no args</p>', textilizable("{{foo}} {{foo}}")
-    assert_equal '<p>args: a,b no args</p>', textilizable("{{foo(a,b)}} {{foo}}")
-    assert_equal '<p>args: a,b args: c,d</p>', textilizable("{{foo(a,b)}} {{foo(c,d)}}")
-    assert_equal '<p>no args args: c,d</p>', textilizable("{{foo}} {{foo(c,d)}}")
+    with_settings :text_formatting => 'textile' do
+      assert_equal '<p>no args no args</p>', textilizable('{{foo}} {{foo}}')
+      assert_equal '<p>args: a,b no args</p>', textilizable('{{foo(a,b)}} {{foo}}')
+      assert_equal '<p>args: a,b args: c,d</p>', textilizable('{{foo(a,b)}} {{foo(c,d)}}')
+      assert_equal '<p>no args args: c,d</p>', textilizable('{{foo}} {{foo(c,d)}}')
+    end
   end
 
   def test_macro_should_receive_the_object_as_argument_when_with_object_and_attribute
     issue = Issue.find(1)
     issue.description = "{{hello_world}}"
-    assert_equal(
-      '<p>Hello world! Object: Issue, Called with no argument and no block of text.</p>',
-      textilizable(issue, :description)
-    )
+    with_settings :text_formatting => 'textile' do
+      assert_equal(
+        '<p>Hello world! Object: Issue, Called with no argument and no block of text.</p>',
+        textilizable(issue, :description)
+      )
+    end
   end
 
   def test_macro_should_receive_the_object_as_argument_when_called_with_object_option
-    text = "{{hello_world}}"
-    assert_equal(
-      '<p>Hello world! Object: Issue, Called with no argument and no block of text.</p>',
-      textilizable(text, :object => Issue.find(1))
-    )
+    with_settings :text_formatting => 'textile' do
+      text = '{{hello_world}}'
+      assert_equal(
+        '<p>Hello world! Object: Issue, Called with no argument and no block of text.</p>',
+        textilizable(text, :object => Issue.find(1))
+      )
+    end
   end
 
   def test_extract_macro_options_should_with_args
@@ -153,35 +166,47 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
   end
 
   def test_exclamation_mark_should_not_run_macros
-    text = "!{{hello_world}}"
-    assert_equal '<p>{{hello_world}}</p>', textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      text = '!{{hello_world}}'
+      assert_equal '<p>{{hello_world}}</p>', textilizable(text)
+    end
   end
 
   def test_exclamation_mark_should_escape_macros
-    text = "!{{hello_world(<tag>)}}"
-    assert_equal '<p>{{hello_world(&lt;tag&gt;)}}</p>', textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      text = '!{{hello_world(<tag>)}}'
+      assert_equal '<p>{{hello_world(&lt;tag&gt;)}}</p>', textilizable(text)
+    end
   end
 
   def test_unknown_macros_should_not_be_replaced
-    text = "{{unknown}}"
-    assert_equal '<p>{{unknown}}</p>', textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      text = '{{unknown}}'
+      assert_equal '<p>{{unknown}}</p>', textilizable(text)
+    end
   end
 
   def test_unknown_macros_should_parsed_as_text
-    text = "{{unknown(*test*)}}"
-    assert_equal '<p>{{unknown(<strong>test</strong>)}}</p>', textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      text = '{{unknown(*test*)}}'
+      assert_equal '<p>{{unknown(<strong>test</strong>)}}</p>', textilizable(text)
+    end
   end
 
   def test_unknown_macros_should_be_escaped
-    text = "{{unknown(<tag>)}}"
-    assert_equal '<p>{{unknown(&lt;tag&gt;)}}</p>', textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      text = '{{unknown(<tag>)}}'
+      assert_equal '<p>{{unknown(&lt;tag&gt;)}}</p>', textilizable(text)
+    end
   end
 
   def test_html_safe_macro_output_should_not_be_escaped
-    Redmine::WikiFormatting::Macros.macro :safe_macro do |obj, args|
-      "<tag>".html_safe
+    with_settings :text_formatting => 'textile' do
+      Redmine::WikiFormatting::Macros.macro :safe_macro do |obj, args|
+        '<tag>'.html_safe
+      end
+      assert_equal '<p><tag></p>', textilizable('{{safe_macro}}')
     end
-    assert_equal '<p><tag></p>', textilizable("{{safe_macro}}")
   end
 
   def test_macro_hello_world
@@ -220,33 +245,39 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
   def test_macro_collapse
     text = "{{collapse\n*Collapsed* block of text\n}}"
     with_locale 'en' do
-      result = textilizable(text)
+      with_settings :text_formatting => 'textile' do
+        result = textilizable(text)
 
-      assert_select_in result, 'div.collapsed-text'
-      assert_select_in result, 'strong', :text => 'Collapsed'
-      assert_select_in result, 'a.collapsible.icon-collapsed', :text => 'Show'
-      assert_select_in result, 'a.collapsible.icon-expanded', :text => 'Hide'
+        assert_select_in result, 'div.collapsed-text'
+        assert_select_in result, 'strong', :text => 'Collapsed'
+        assert_select_in result, 'a.collapsible.icon-collapsed', :text => 'Show'
+        assert_select_in result, 'a.collapsible.icon-expanded', :text => 'Hide'
+      end
     end
   end
 
   def test_macro_collapse_with_one_arg
     text = "{{collapse(Example)\n*Collapsed* block of text\n}}"
-    result = textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      result = textilizable(text)
 
-    assert_select_in result, 'div.collapsed-text'
-    assert_select_in result, 'strong', :text => 'Collapsed'
-    assert_select_in result, 'a.collapsible.icon-collapsed', :text => 'Example'
-    assert_select_in result, 'a.collapsible.icon-expanded', :text => 'Example'
+      assert_select_in result, 'div.collapsed-text'
+      assert_select_in result, 'strong', :text => 'Collapsed'
+      assert_select_in result, 'a.collapsible.icon-collapsed', :text => 'Example'
+      assert_select_in result, 'a.collapsible.icon-expanded', :text => 'Example'
+    end
   end
 
   def test_macro_collapse_with_two_args
     text = "{{collapse(Show example, Hide example)\n*Collapsed* block of text\n}}"
-    result = textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      result = textilizable(text)
 
-    assert_select_in result, 'div.collapsed-text'
-    assert_select_in result, 'strong', :text => 'Collapsed'
-    assert_select_in result, 'a.collapsible.icon-collapsed', :text => 'Show example'
-    assert_select_in result, 'a.collapsible.icon-expanded', :text => 'Hide example'
+      assert_select_in result, 'div.collapsed-text'
+      assert_select_in result, 'strong', :text => 'Collapsed'
+      assert_select_in result, 'a.collapsible.icon-collapsed', :text => 'Show example'
+      assert_select_in result, 'a.collapsible.icon-expanded', :text => 'Hide example'
+    end
   end
 
   def test_macro_collapse_should_not_break_toc
@@ -264,7 +295,9 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
     expected_toc =
       '<ul class="toc"><li><strong>Table of contents</strong></li>' \
       '<li><a href="#Title">Title</a><ul><li><a href="#Heading">Heading</a></li></ul></li></ul>'
-    assert_include expected_toc, textilizable(text).gsub(/[\r\n]/, '')
+    with_settings :text_formatting => 'textile' do
+      assert_include expected_toc, textilizable(text).gsub(/[\r\n]/, '')
+    end
   end
 
   def test_macro_child_pages
@@ -276,13 +309,15 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
       "<li><a href=\"/projects/ecookbook/wiki/Child_2\">Child 2</a></li>\n" \
       "</ul>\n</p>"
     @project = Project.find(1)
-    # child pages of the current wiki page
-    assert_equal expected, textilizable("{{child_pages}}", :object => WikiPage.find(2).content)
-    # child pages of another page
-    assert_equal expected, textilizable("{{child_pages(Another_page)}}", :object => WikiPage.find(1).content)
-
-    @project = Project.find(2)
-    assert_equal expected, textilizable("{{child_pages(ecookbook:Another_page)}}", :object => WikiPage.find(1).content)
+    with_settings :text_formatting => 'textile' do
+      # child pages of the current wiki page
+      assert_equal expected, textilizable('{{child_pages}}', :object => WikiPage.find(2).content)
+      # child pages of another page
+      assert_equal expected, textilizable('{{child_pages(Another_page)}}', :object => WikiPage.find(1).content)
+
+      @project = Project.find(2)
+      assert_equal expected, textilizable('{{child_pages(ecookbook:Another_page)}}', :object => WikiPage.find(1).content)
+    end
   end
 
   def test_macro_child_pages_with_parent_option
@@ -297,18 +332,20 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
       "</ul>\n</li>\n</ul>\n</p>"
 
     @project = Project.find(1)
-    # child pages of the current wiki page
-    assert_equal expected, textilizable("{{child_pages(parent=1)}}", :object => WikiPage.find(2).content)
-    # child pages of another page
-    assert_equal(
-      expected,
-      textilizable("{{child_pages(Another_page, parent=1)}}", :object => WikiPage.find(1).content)
-    )
-    @project = Project.find(2)
-    assert_equal(
-      expected,
-      textilizable("{{child_pages(ecookbook:Another_page, parent=1)}}", :object => WikiPage.find(1).content)
-    )
+    with_settings :text_formatting => 'textile' do
+      # child pages of the current wiki page
+      assert_equal expected, textilizable('{{child_pages(parent=1)}}', :object => WikiPage.find(2).content)
+      # child pages of another page
+      assert_equal(
+        expected,
+        textilizable('{{child_pages(Another_page, parent=1)}}', :object => WikiPage.find(1).content)
+      )
+      @project = Project.find(2)
+      assert_equal(
+        expected,
+        textilizable('{{child_pages(ecookbook:Another_page, parent=1)}}', :object => WikiPage.find(1).content)
+      )
+    end
   end
 
   def test_macro_child_pages_with_depth_option
@@ -318,7 +355,9 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
         "<li><a href=\"/projects/ecookbook/wiki/Child_2\">Child 2</a></li>\n" \
         "</ul>\n</p>"
     @project = Project.find(1)
-    assert_equal expected, textilizable("{{child_pages(depth=1)}}", :object => WikiPage.find(2).content)
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected, textilizable("{{child_pages(depth=1)}}", :object => WikiPage.find(2).content)
+    end
   end
 
   def test_macro_child_pages_without_wiki_page_should_fail
@@ -326,39 +365,47 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
   end
 
   def test_macro_thumbnail
-    link = link_to('<img alt="testfile.PNG" src="/attachments/thumbnail/17/200" />'.html_safe,
-                   "/attachments/17",
-                   :class => "thumbnail",
-                   :title => "testfile.PNG")
-    assert_equal "<p>#{link}</p>",
-                 textilizable("{{thumbnail(testfile.png)}}", :object => Issue.find(14))
+    with_settings :text_formatting => 'textile' do
+      link = link_to('<img alt="testfile.PNG" src="/attachments/thumbnail/17/200" />'.html_safe,
+                     '/attachments/17',
+                     :class => 'thumbnail',
+                     :title => 'testfile.PNG')
+      assert_equal "<p>#{link}</p>",
+                   textilizable('{{thumbnail(testfile.png)}}', :object => Issue.find(14))
+    end
   end
 
   def test_macro_thumbnail_with_full_path
-    link = link_to('<img alt="testfile.PNG" src="http://test.host/attachments/thumbnail/17/200" />'.html_safe,
-                   "http://test.host/attachments/17",
-                   :class => "thumbnail",
-                   :title => "testfile.PNG")
-    assert_equal "<p>#{link}</p>",
-                 textilizable("{{thumbnail(testfile.png)}}", :object => Issue.find(14), :only_path => false)
+    with_settings :text_formatting => 'textile' do
+      link = link_to('<img alt="testfile.PNG" src="http://test.host/attachments/thumbnail/17/200" />'.html_safe,
+                     'http://test.host/attachments/17',
+                     :class => 'thumbnail',
+                     :title => 'testfile.PNG')
+      assert_equal "<p>#{link}</p>",
+                   textilizable('{{thumbnail(testfile.png)}}', :object => Issue.find(14), :only_path => false)
+    end
   end
 
   def test_macro_thumbnail_with_size
-    link = link_to('<img alt="testfile.PNG" src="/attachments/thumbnail/17/400" />'.html_safe,
-                   "/attachments/17",
-                   :class => "thumbnail",
-                   :title => "testfile.PNG")
-    assert_equal "<p>#{link}</p>",
-                 textilizable("{{thumbnail(testfile.png, size=400)}}", :object => Issue.find(14))
+    with_settings :text_formatting => 'textile' do
+      link = link_to('<img alt="testfile.PNG" src="/attachments/thumbnail/17/400" />'.html_safe,
+                     '/attachments/17',
+                     :class => 'thumbnail',
+                     :title => 'testfile.PNG')
+      assert_equal "<p>#{link}</p>",
+                   textilizable('{{thumbnail(testfile.png, size=400)}}', :object => Issue.find(14))
+    end
   end
 
   def test_macro_thumbnail_with_title
-    link = link_to('<img alt="testfile.PNG" src="/attachments/thumbnail/17/200" />'.html_safe,
-                   "/attachments/17",
-                   :class => "thumbnail",
-                   :title => "Cool image")
-    assert_equal "<p>#{link}</p>",
-                 textilizable("{{thumbnail(testfile.png, title=Cool image)}}", :object => Issue.find(14))
+    with_settings :text_formatting => 'textile' do
+      link = link_to('<img alt="testfile.PNG" src="/attachments/thumbnail/17/200" />'.html_safe,
+                     '/attachments/17',
+                     :class => 'thumbnail',
+                     :title => 'Cool image')
+      assert_equal "<p>#{link}</p>",
+                   textilizable('{{thumbnail(testfile.png, title=Cool image)}}', :object => Issue.find(14))
+    end
   end
 
   def test_macro_thumbnail_with_invalid_filename_should_fail
@@ -387,20 +434,26 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
 
       <p>Hello world! Object: NilClass, Arguments: bar and no block of text.</p>
     EXPECTED
-    assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(text).gsub(%r{[\r\n\t]}, '')
+    with_settings :text_formatting => 'textile' do
+      assert_equal expected.gsub(%r{[\r\n\t]}, ''), textilizable(text).gsub(%r{[\r\n\t]}, '')
+    end
   end
 
   def test_macros_should_be_escaped_in_pre_tags
-    text = "<pre>{{hello_world(<tag>)}}</pre>"
-    assert_equal "<pre>{{hello_world(&lt;tag&gt;)}}</pre>", textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      text = '<pre>{{hello_world(<tag>)}}</pre>'
+      assert_equal '<pre>{{hello_world(&lt;tag&gt;)}}</pre>', textilizable(text)
+    end
   end
 
   def test_macros_should_not_mangle_next_macros_outputs
-    text = '{{macro(2)}} !{{macro(2)}} {{hello_world(foo)}}'
-    assert_equal(
-      '<p>{{macro(2)}} {{macro(2)}} Hello world! Object: NilClass, Arguments: foo and no block of text.</p>',
-      textilizable(text)
-    )
+    with_settings :text_formatting => 'textile' do
+      text = '{{macro(2)}} !{{macro(2)}} {{hello_world(foo)}}'
+      assert_equal(
+        '<p>{{macro(2)}} {{macro(2)}} Hello world! Object: NilClass, Arguments: foo and no block of text.</p>',
+        textilizable(text)
+      )
+    end
   end
 
   def test_macros_with_text_should_not_mangle_following_macros
@@ -421,26 +474,32 @@ class Redmine::WikiFormatting::MacrosTest < Redmine::HelperTest
   end
 
   def test_macro_should_support_phrase_modifiers
-    text = "*{{hello_world}}*"
-    assert_match %r|\A<p><strong>Hello world!.*</strong></p>\z|, textilizable(text)
+    with_settings :text_formatting => 'textile' do
+      text = '*{{hello_world}}*'
+      assert_match %r|\A<p><strong>Hello world!.*</strong></p>\z|, textilizable(text)
+    end
   end
 
   def test_issue_macro_should_not_render_link_if_not_visible
-    assert_equal "<p>#123</p>", textilizable('{{issue(123)}}')
+    with_settings :text_formatting => 'textile' do
+      assert_equal '<p>#123</p>', textilizable('{{issue(123)}}')
+    end
   end
 
   def test_issue_macro_should_render_link_to_issue
     issue = Issue.find(1)
-    assert_equal(
-      %{<p><a class="issue tracker-1 status-1 priority-4 priority-lowest behind-schedule" } +
-      %{href="/issues/1">Bug #1</a>: #{issue.subject}</p>},
-      textilizable("{{issue(1)}}")
-    )
-    assert_equal(
-      %{<p>eCookbook - } +
-      %{<a class="issue tracker-1 status-1 priority-4 priority-lowest behind-schedule" } +
-      %{href="/issues/1">Bug #1</a>: #{issue.subject}</p>},
-      textilizable("{{issue(1, project=true)}}")
-    )
+    with_settings :text_formatting => 'textile' do
+      assert_equal(
+        %{<p><a class="issue tracker-1 status-1 priority-4 priority-lowest behind-schedule" } +
+        %{href="/issues/1">Bug #1</a>: #{issue.subject}</p>},
+        textilizable('{{issue(1)}}')
+      )
+      assert_equal(
+        %{<p>eCookbook - } +
+        %{<a class="issue tracker-1 status-1 priority-4 priority-lowest behind-schedule" } +
+        %{href="/issues/1">Bug #1</a>: #{issue.subject}</p>},
+        textilizable('{{issue(1, project=true)}}')
+      )
+    end
   end
 end
index 4e75ef87448c352e98d7c185dc87ec171d864b9c..7ee682c06c45c00b5123fa537f940ec024756930 100644 (file)
@@ -997,7 +997,7 @@ class MailerTest < ActiveSupport::TestCase
   end
 
   def test_layout_should_include_the_emails_header
-    with_settings :emails_header => "*Header content*" do
+    with_settings :emails_header => '*Header content*', :text_formatting => 'textile' do
       with_settings :plain_text_mail => 0 do
         assert Mailer.test_email(User.find(1)).deliver_now
         assert_select_email do
@@ -1024,7 +1024,7 @@ class MailerTest < ActiveSupport::TestCase
   end
 
   def test_layout_should_include_the_emails_footer
-    with_settings :emails_footer => "*Footer content*" do
+    with_settings :emails_footer => '*Footer content*', :text_formatting => 'textile' do
       with_settings :plain_text_mail => 0 do
         assert Mailer.test_email(User.find(1)).deliver_now
         assert_select_email do