aboutsummaryrefslogtreecommitdiffstats
path: root/test/rubygems/test_gem.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem.rb')
-rw-r--r--test/rubygems/test_gem.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/rubygems/test_gem.rb b/test/rubygems/test_gem.rb
index 20f2a93c04..273ba8f640 100644
--- a/test/rubygems/test_gem.rb
+++ b/test/rubygems/test_gem.rb
@@ -598,6 +598,20 @@ class TestGem < Gem::TestCase
assert File.directory? File.join(@gemhome, "cache")
end
+ def test_self_ensure_gem_directories_safe_permissions
+ FileUtils.rm_r @gemhome
+ Gem.use_paths @gemhome
+
+ old_umask = File.umask
+ File.umask 0
+ Gem.ensure_gem_subdirectories @gemhome
+
+ assert_equal 0, File::Stat.new(@gemhome).mode & 022
+ assert_equal 0, File::Stat.new(File.join(@gemhome, "cache")).mode & 022
+ ensure
+ File.umask old_umask
+ end unless win_platform?
+
def test_self_ensure_gem_directories_missing_parents
gemdir = File.join @tempdir, 'a/b/c/gemdir'
FileUtils.rm_rf File.join(@tempdir, 'a') rescue nil