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... ]