diff options
author | ktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-04 15:44:53 +0000 |
---|---|---|
committer | ktsj <ktsj@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-04 15:44:53 +0000 |
commit | df0991f34b95e4f6a283c40613aac0334accce1e (patch) | |
tree | 6e7a18283edca3fdde2a8f0791671065316f1b3a /test/pathname | |
parent | 77cf13a588be5bab7efa44eccf097ca579a41ae4 (diff) |
* ext/pathname/lib/pathname.rb (Pathname#find): add "ignore_error"
keyword argument defaulted to true as well as Find#find.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/pathname')
-rw-r--r-- | test/pathname/test_pathname.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/pathname/test_pathname.rb b/test/pathname/test_pathname.rb index 8008e8c0af..ed79b5b8f5 100644 --- a/test/pathname/test_pathname.rb +++ b/test/pathname/test_pathname.rb @@ -1253,6 +1253,31 @@ class TestPathname < Test::Unit::TestCase assert_equal([Pathname("."), Pathname("a"), Pathname("b"), Pathname("d"), Pathname("d/x"), Pathname("d/y")], a) a = Pathname("d").find.sort assert_equal([Pathname("d"), Pathname("d/x"), Pathname("d/y")], a) + + begin + File.unlink("d/y") + File.chmod(0600, "d") + a = []; Pathname(".").find(ignore_error: true) {|v| a << v }; a.sort! + assert_equal([Pathname("."), Pathname("a"), Pathname("b"), Pathname("d"), Pathname("d/x")], a) + a = []; Pathname("d").find(ignore_error: true) {|v| a << v }; a.sort! + assert_equal([Pathname("d"), Pathname("d/x")], a) + + skip "no meaning test on Windows" if /mswin|mingw/ =~ RUBY_PLATFORM + a = []; + assert_raise_with_message(Errno::EACCES, %r{d/x}) do + Pathname(".").find(ignore_error: false) {|v| a << v } + end + a.sort! + assert_equal([Pathname("."), Pathname("a"), Pathname("b"), Pathname("d"), Pathname("d/x")], a) + a = []; + assert_raise_with_message(Errno::EACCES, %r{d/x}) do + Pathname("d").find(ignore_error: false) {|v| a << v } + end + a.sort! + assert_equal([Pathname("d"), Pathname("d/x")], a) + ensure + File.chmod(0700, "d") + end } end |