From 4ac65478ad7888105e07bf499e6984c3d29d5db2 Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 14 Dec 2009 11:56:03 +0000 Subject: add tests. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@26097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/test_find.rb | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/test/test_find.rb b/test/test_find.rb index bcd27e764..7e9f21fdd 100644 --- a/test/test_find.rb +++ b/test/test_find.rb @@ -24,6 +24,34 @@ class TestFind < Test::Unit::TestCase } end + def test_relative + Dir.mktmpdir {|d| + File.open("#{d}/a", "w") + Dir.mkdir("#{d}/b") + File.open("#{d}/b/a", "w") + File.open("#{d}/b/b", "w") + Dir.mkdir("#{d}/c") + a = [] + Dir.chdir(d) { + Find.find(".") {|f| a << f } + } + assert_equal([".", "./a", "./b", "./b/a", "./b/b", "./c"], a) + } + end + + def test_dont_follow_symlink + Dir.mktmpdir {|d| + File.open("#{d}/a", "w") + Dir.mkdir("#{d}/b") + File.open("#{d}/b/a", "w") + File.open("#{d}/b/b", "w") + File.symlink("#{d}/b", "#{d}/c") + a = [] + Find.find(d) {|f| a << f } + assert_equal([d, "#{d}/a", "#{d}/b", "#{d}/b/a", "#{d}/b/b", "#{d}/c"], a) + } + end + def test_prune Dir.mktmpdir {|d| File.open("#{d}/a", "w") @@ -89,6 +117,30 @@ class TestFind < Test::Unit::TestCase } end + def test_dangling_symlink + Dir.mktmpdir {|d| + File.symlink("foo", "#{d}/bar") + a = [] + Find.find(d) {|f| a << f } + assert_equal([d, "#{d}/bar"], a) + assert_raise(Errno::ENOENT) { File.stat("#{d}/bar") } + } + end + + def test_enumerator + Dir.mktmpdir {|d| + File.open("#{d}/a", "w") + Dir.mkdir("#{d}/b") + File.open("#{d}/b/a", "w") + File.open("#{d}/b/b", "w") + Dir.mkdir("#{d}/c") + e = Find.find(d) + a = [] + e.each {|f| a << f } + assert_equal([d, "#{d}/a", "#{d}/b", "#{d}/b/a", "#{d}/b/b", "#{d}/c"], a) + } + end + class TestInclude < Test::Unit::TestCase include Find -- cgit