From 0fcc436f226fd58e9463ccc92ad488b4630d14f4 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Lang <jp_lang@yahoo.fr>
Date: Wed, 17 Feb 2010 20:47:50 +0000
Subject: [PATCH] Fixed: Deselecting textile text formatting causes interning
 empty string errors (#4867).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3446 e93f8b46-1217-0410-a6f0-8f06a7374b81
---
 lib/redmine/wiki_formatting.rb           |  8 ++++----
 test/unit/lib/redmine/wiki_formatting.rb | 10 ++++++++++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/lib/redmine/wiki_formatting.rb b/lib/redmine/wiki_formatting.rb
index c62a3ef01..dcce0fc44 100644
--- a/lib/redmine/wiki_formatting.rb
+++ b/lib/redmine/wiki_formatting.rb
@@ -25,17 +25,17 @@ module Redmine
       end
       
       def register(name, formatter, helper)
-        raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name.to_sym]
-        @@formatters[name.to_sym] = {:formatter => formatter, :helper => helper}
+        raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name.to_s]
+        @@formatters[name.to_s] = {:formatter => formatter, :helper => helper}
       end
       
       def formatter_for(name)
-        entry = @@formatters[name.to_sym]
+        entry = @@formatters[name.to_s]
         (entry && entry[:formatter]) || Redmine::WikiFormatting::NullFormatter::Formatter
       end
       
       def helper_for(name)
-        entry = @@formatters[name.to_sym]
+        entry = @@formatters[name.to_s]
         (entry && entry[:helper]) || Redmine::WikiFormatting::NullFormatter::Helper
       end
       
diff --git a/test/unit/lib/redmine/wiki_formatting.rb b/test/unit/lib/redmine/wiki_formatting.rb
index f52c84e0e..deedebae1 100644
--- a/test/unit/lib/redmine/wiki_formatting.rb
+++ b/test/unit/lib/redmine/wiki_formatting.rb
@@ -19,6 +19,16 @@ require File.dirname(__FILE__) + '/../../../test_helper'
 
 class Redmine::WikiFormattingTest < ActiveSupport::TestCase
   
+  def test_textile_formatter
+    assert_equal Redmine::WikiFormatting::Textile::Formatter, Redmine::WikiFormatting.formatter_for('textile')
+    assert_equal Redmine::WikiFormatting::Textile::Helper, Redmine::WikiFormatting.helper_for('textile')
+  end
+  
+  def test_null_formatter
+    assert_equal Redmine::WikiFormatting::NullFormatter::Formatter, Redmine::WikiFormatting.formatter_for('')
+    assert_equal Redmine::WikiFormatting::NullFormatter::Helper, Redmine::WikiFormatting.helper_for('')
+  end
+  
   def test_should_link_urls_and_email_addresses
     raw = <<-DIFF
 This is a sample *text* with a link: http://www.redmine.org
-- 
GitLab