1require 'test/unit'
2require 'tmpdir'
3
4class TestTmpdir < Test::Unit::TestCase
5  def test_world_writable
6    skip "no meaning on this platform" if /mswin|mingw/ =~ RUBY_PLATFORM
7    Dir.mktmpdir do |tmpdir|
8      # ToDo: fix for parallel test
9      olddir, ENV["TMPDIR"] = ENV["TMPDIR"], tmpdir
10      begin
11        assert_equal(tmpdir, Dir.tmpdir)
12        File.chmod(0777, tmpdir)
13        assert_not_equal(tmpdir, Dir.tmpdir)
14        File.chmod(01777, tmpdir)
15        assert_equal(tmpdir, Dir.tmpdir)
16      ensure
17        ENV["TMPDIR"] = olddir
18      end
19    end
20  end
21
22  def test_no_homedir
23    bug7547 = '[ruby-core:50793]'
24    home, ENV["HOME"] = ENV["HOME"], nil
25    dir = assert_nothing_raised(bug7547) do
26      break Dir.mktmpdir("~")
27    end
28    assert_match(/\A~/, File.basename(dir), bug7547)
29  ensure
30    ENV["HOME"] = home
31    Dir.rmdir(dir) if dir
32  end
33end
34