diff options
author | Markus Reiter <me@reitermark.us> | 2018-10-01 15:32:52 +0200 |
---|---|---|
committer | Markus Reiter <me@reitermark.us> | 2018-10-02 16:40:39 +0200 |
commit | c08272ac2469e6982f81d4e61cecae46f89fed7b (patch) | |
tree | f1d67d51a7548813953178a47de73bdff2ecf740 /activesupport/test/core_ext | |
parent | 96e69b5a33f44e5339345ef3c4871aba51a1e938 (diff) | |
download | rails-c08272ac2469e6982f81d4e61cecae46f89fed7b.tar.gz rails-c08272ac2469e6982f81d4e61cecae46f89fed7b.tar.bz2 rails-c08272ac2469e6982f81d4e61cecae46f89fed7b.zip |
Ensure correct permission when `tmpdir` is the same as `dirname`.
Diffstat (limited to 'activesupport/test/core_ext')
-rw-r--r-- | activesupport/test/core_ext/file_test.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/file_test.rb b/activesupport/test/core_ext/file_test.rb index 9c97700e5d..186c863f91 100644 --- a/activesupport/test/core_ext/file_test.rb +++ b/activesupport/test/core_ext/file_test.rb @@ -59,6 +59,20 @@ class AtomicWriteTest < ActiveSupport::TestCase File.unlink(file_name) rescue nil end + def test_atomic_write_preserves_file_permissions_same_directory + Dir.mktmpdir do |temp_dir| + File.chmod 0700, temp_dir + + probed_permissions = File.probe_stat_in(temp_dir).mode.to_s(8) + + File.atomic_write(File.join(temp_dir, file_name), &:close) + + actual_permissions = File.stat(File.join(temp_dir, file_name)).mode.to_s(8) + + assert_equal actual_permissions, probed_permissions + end + end + def test_atomic_write_returns_result_from_yielded_block block_return_value = File.atomic_write(file_name, Dir.pwd) do |file| "Hello world!" |