]> git.wincent.com - wikitext.git/blobdiff - spec/link_encoding_spec.rb
Remove Wikitext_parser_encode_special_link_target function
[wikitext.git] / spec / link_encoding_spec.rb
index a42bab6b64b417923241e500a7b92dc1625baab5..3396affbcd2b27e7748962df6b72def32a70e78c 100755 (executable)
@@ -1,17 +1,27 @@
 #!/usr/bin/env ruby
-# Copyright 2007-2008 Wincent Colaiuta
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
+# encoding: utf-8
+# Copyright 2007-2009 Wincent Colaiuta. All rights reserved.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
 #
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# 1. Redistributions of source code must retain the above copyright notice,
+#    this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+#    this list of conditions and the following disclaimer in the documentation
+#    and/or other materials provided with the distribution.
+
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
 
 require File.join(File.dirname(__FILE__), 'spec_helper.rb')
 require 'wikitext'
@@ -35,6 +45,35 @@ describe Wikitext, 'encoding a link target' do
     Wikitext::Parser.encode_link_target('  hello world').should == 'hello%20world'
     Wikitext::Parser.encode_link_target('   hello world').should == 'hello%20world'
     Wikitext::Parser.encode_link_target('    hello world').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('     hello world').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('      hello world').should == 'hello%20world'
+  end
+
+  it 'should eat trailing spaces' do
+    Wikitext::Parser.encode_link_target('hello world ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('hello world  ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('hello world   ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('hello world    ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('hello world     ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('hello world      ').should == 'hello%20world'
+  end
+
+  it 'should eat leading and trailing spaces combined' do
+    Wikitext::Parser.encode_link_target('     hello world ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('     hello world ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('    hello world  ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('   hello world   ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target('  hello world    ').should == 'hello%20world'
+    Wikitext::Parser.encode_link_target(' hello world     ').should == 'hello%20world'
+  end
+
+  it 'should return nothing for input consisting entirely of spaces' do
+    Wikitext::Parser.encode_link_target(' ').should == ''
+    Wikitext::Parser.encode_link_target('  ').should == ''
+    Wikitext::Parser.encode_link_target('   ').should == ''
+    Wikitext::Parser.encode_link_target('    ').should == ''
+    Wikitext::Parser.encode_link_target('     ').should == ''
+    Wikitext::Parser.encode_link_target('      ').should == ''
   end
 
   it 'should convert reserved symbols into percent escapes' do
@@ -56,4 +95,3 @@ describe Wikitext, 'encoding a link target' do
     end
   end
 end
-