hikidoc:152
From: Kazuhiro Shibutani <arikui.ruby@g...>
Date: Wed, 10 Feb 2010 02:50:48 +0900
Subject: [hikidoc:152] Windowsでtrunkのtest_hikidoc.rbに失敗する
こんばんわ。ありくいです。 自分の環境(WinXP) * ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] * ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] * ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32] では、テストに失敗します。 ruby ../test/test_hikidoc.rb .............F....................... 1) Failure: test_link(HikiDocTestCase) ../test/test_hikidoc.rb:482:in `assert_convert' ../test/test_hikidoc.rb:237:in `test_link': <"<p><img src=\"img.png\" alt=\"img.png\" /></p>\n"> expected but was <"<p><a href=\"img.png\">http:img.png</a></p>\n">. Finished in 4.3125 seconds. 37 tests, 148 assertions, 1 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 97.2973% passed 原因としては、File.extname が #define USE_NTFS されている環境ではドラ イブレターを考慮するためだと思われます(":"が悪い)。 前述の環境では、以下のテストの1と3が失敗します。 require 'test/unit' class TestFile < Test::Unit::TestCase def test_extname1 assert_equal ".jpg", File.extname("http://image.jpg") end def test_extname2 assert_equal ".gif", File.extname("http:/image.gif") end def test_extname3 assert_equal ".png", File.extname("http:image.png") end end 以下がパッチです。 Windows 以外に影響を及ぼす変更では多分ないと思うのですが… svn diff Index: hikidoc.rb =================================================================== --- hikidoc.rb (revision 126) +++ hikidoc.rb (working copy) @@ -373,7 +373,9 @@ # BRACKET_LINK_RE = /\[\[.+?\]\]/ - URI_RE = /(?:https?|ftp|file|mailto):[A-Za-z0-9;\/?:@&=+$,\-_.!~*\'()#%]+/ + PROTOCOLS = ["http", "https", "ftp", "file", "mailto"] + URI_RE = /#{Regexp.union *PROTOCOLS}:[A-Za-z0-9;\/?:@&=+$,\-_.!~*\'()#%]+/ + # URI_RE = /(?:https?|ftp|file|mailto):[A-Za-z0-9;\/?:@&=+$,\-_.!~*\'()#%]+/ WIKI_NAME_RE = /\b(?:[A-Z]+[a-z\d]+){2,}\b/ def inline_syntax_re @@ -477,9 +479,11 @@ end IMAGE_EXTS = %w(.jpg .jpeg .gif .png) - + PROTOCOL_RE = /\A#{Regexp.union *PROTOCOLS}:/ + def image?(uri) - IMAGE_EXTS.include?(File.extname(uri).downcase) + # IMAGE_EXTS.include?(File.extname(uri).downcase) + IMAGE_EXTS.include? File.extname(uri.sub(PROTOCOL_RE, '')).downcase end STRONG = "'''" -- ML: hikidoc@m... 使い方: http://QuickML.com/
-> 152 2010-02-09 18:50 [arikui.ruby@g... ] Windowsでtrunkのtest_hikidoc.rbに失敗する 153 2010-02-11 03:26 ┗[kimuraw@i... ] 154 2010-02-11 12:29 ┗[arikui.ruby@g... ]