diff options
author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-11-18 08:27:52 +0000 |
---|---|---|
committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-11-18 08:27:52 +0000 |
commit | 3e648d93901e82fd0d1affc7000c2f96611486c7 (patch) | |
tree | 8117fbcddd482f273eecb1a45fde7a5865fbb13e /test | |
parent | 08cb0421f80c43448055b53867c729408dc3d831 (diff) | |
download | ruby-3e648d93901e82fd0d1affc7000c2f96611486c7.tar.gz ruby-3e648d93901e82fd0d1affc7000c2f96611486c7.tar.xz ruby-3e648d93901e82fd0d1affc7000c2f96611486c7.zip |
* file.c (file_s_dirname): added checks for some patterns with drive
letter. fixed: [ruby-dev:27738]
* test/ruby/test_path.rb (test_dirname): added tests for above
patterns.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@9561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/ruby/test_path.rb | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/ruby/test_path.rb b/test/ruby/test_path.rb index 95a5d5b1d..4b9365508 100644 --- a/test/ruby/test_path.rb +++ b/test/ruby/test_path.rb @@ -43,4 +43,75 @@ class TestPath < Test::Unit::TestCase assert_equal("//", File.expand_path(".", "//")) assert_equal("//sub", File.expand_path("sub", "//")) end + + def test_dirname # [ruby-dev:27738] + if /(bcc|ms)win\d|mingw|cygwin|djgpp|human|emx/ =~ RUBY_PLATFORM + # DOSISH_DRIVE_LETTER + assert_equal('C:.', File.dirname('C:')) + assert_equal('C:.', File.dirname('C:a')) + assert_equal('C:.', File.dirname('C:a/')) + assert_equal('C:a', File.dirname('C:a/b')) + assert_equal('C:/', File.dirname('C:/')) + assert_equal('C:/', File.dirname('C://')) + assert_equal('C:/', File.dirname('C:///')) + assert_equal('C:/', File.dirname('C:/a')) + assert_equal('C:/', File.dirname('C://a')) + assert_equal('C:/', File.dirname('C:///a')) + assert_equal('C:/', File.dirname('C:/a/')) + assert_equal('C:/', File.dirname('C://a/')) + assert_equal('C:/', File.dirname('C:///a/')) + assert_equal('C:/a', File.dirname('C:/a/b')) + assert_equal('C:/a', File.dirname('C://a/b')) + assert_equal('C:/a', File.dirname('C:///a/b')) + else + # others + assert_equal('.', File.dirname('C:')) + assert_equal('.', File.dirname('C:a')) + assert_equal('.', File.dirname('C:a/')) + assert_equal('C:a', File.dirname('C:a/b')) + assert_equal('.', File.dirname('C:/')) + assert_equal('.', File.dirname('C://')) + assert_equal('.', File.dirname('C:///')) + assert_equal('C:', File.dirname('C:/a')) + assert_equal('C:', File.dirname('C://a')) + assert_equal('C:', File.dirname('C:///a')) + assert_equal('C:', File.dirname('C:/a/')) + assert_equal('C:', File.dirname('C://a/')) + assert_equal('C:', File.dirname('C:///a/')) + assert_equal('C:/a', File.dirname('C:/a/b')) + # these show current implementation, but they are not spec. + #assert_equal('C://a', File.dirname('C://a/b')) + #assert_equal('C:///a', File.dirname('C:///a/b')) + end + + assert_equal('.', File.dirname('')) + assert_equal('.', File.dirname('a')) + assert_equal('.', File.dirname('a/')) + assert_equal('a', File.dirname('a/b')) + assert_equal('/', File.dirname('/')) + assert_equal('/', File.dirname('/a')) + assert_equal('/', File.dirname('/a/')) + assert_equal('/a', File.dirname('/a/b')) + if /(bcc|ms|cyg)win|mingw|djgpp|human|emx/ =~ RUBY_PLATFORM + # DOSISH_UNC + assert_equal('//', File.dirname('//')) + assert_equal('//', File.dirname('//a')) + assert_equal('//', File.dirname('//a/')) + assert_equal('//a', File.dirname('//a/b')) + assert_equal('//', File.dirname('///')) + assert_equal('//', File.dirname('///a')) + assert_equal('//', File.dirname('///a/')) + assert_equal('//a', File.dirname('///a/b')) + else + # others + assert_equal('/', File.dirname('//')) + assert_equal('/', File.dirname('//a')) + assert_equal('/', File.dirname('//a/')) + assert_equal('/a', File.dirname('//a/b')) + assert_equal('/', File.dirname('///')) + assert_equal('/', File.dirname('///a')) + assert_equal('/', File.dirname('///a/')) + assert_equal('/a', File.dirname('///a/b')) + end + end end |