file-temp 1.2.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,135 +0,0 @@
1
- ######################################################################
2
- # test_file_temp.rb
3
- #
4
- # Test suite for the file-temp library. These tests should be run
5
- # via the 'rake test' task.
6
- ######################################################################
7
- require 'rubygems'
8
- require 'test-unit'
9
- require 'file/temp'
10
-
11
- class TC_File_Temp < Test::Unit::TestCase
12
- WINDOWS = File::ALT_SEPARATOR
13
-
14
- def setup
15
- @dir = File::Temp::TMPDIR
16
- @template = 'file-temp-test-XXXXX'
17
- @fh = nil
18
-
19
- # Because Dir[] doesn't work right with backslashes
20
- @dir = @dir.tr("\\", "/") if WINDOWS
21
- end
22
-
23
- test "library version is set to expected value" do
24
- assert_equal('1.2.1', File::Temp::VERSION)
25
- end
26
-
27
- # Fails with JRuby, not sure why.
28
- test "library works as expected with multiple threads" do
29
- threads = []
30
- assert_nothing_raised{ 100.times{ threads << Thread.new{ File::Temp.new }}}
31
- assert_nothing_raised{ threads.each{ |t| t.join } }
32
- end
33
-
34
- test "TMPDIR constant is defined" do
35
- assert_not_nil(File::Temp::TMPDIR)
36
- assert_kind_of(String, File::Temp::TMPDIR)
37
- end
38
-
39
- test "constructor works as expected with default auto delete option" do
40
- assert_nothing_raised{
41
- @fh = File::Temp.new
42
- @fh.print "hello"
43
- @fh.close
44
- }
45
- end
46
-
47
- test "constructor works as expected with false auto delete option" do
48
- assert_nothing_raised{
49
- @fh = File::Temp.new(false)
50
- @fh.print "hello"
51
- @fh.close
52
- }
53
- end
54
-
55
- test "constructor accepts and uses an optional template as expected" do
56
- assert_nothing_raised{ File::Temp.new(false, 'temp_foo_XXXXXX').close }
57
- assert_true(Dir["#{@dir}/temp_foo*"].length >= 1)
58
- end
59
-
60
- test "constructor with false auto delete and block works as expected" do
61
- assert_nothing_raised{ File::Temp.open(false, 'temp_foo_XXXXXX'){ |fh| fh.puts "hello" } }
62
- assert_true(Dir["#{@dir}/temp_foo*"].length >= 1)
63
- end
64
-
65
- test "second argument to constructor must be a string" do
66
- assert_raise(TypeError, ArgumentError){ @fh = File::Temp.new(false, 1) }
67
- end
68
-
69
- test "an error is raised if a custom template is invalid" do
70
- assert_raise(Errno::EINVAL){ File::Temp.new(false, 'xx') }
71
- end
72
-
73
- test "constructor accepts a maximum of two arguments" do
74
- assert_raise(ArgumentError){ @fh = File::Temp.new(true, 'temp_bar_XXXXX', 1) }
75
- end
76
-
77
- test "temp_name basic functionality" do
78
- assert_respond_to(File::Temp, :temp_name)
79
- assert_nothing_raised{ File::Temp.temp_name }
80
- assert_kind_of(String, File::Temp.temp_name)
81
- end
82
-
83
- test "temp_name returns expected value" do
84
- if File::ALT_SEPARATOR
85
- assert_match(/^.*?\d*?tmp/, File.extname(File::Temp.temp_name))
86
- else
87
- assert_equal('.tmp', File.extname(File::Temp.temp_name))
88
- end
89
- end
90
-
91
- test "temp path basic functionality" do
92
- @fh = File::Temp.new
93
- assert_respond_to(@fh, :path)
94
- end
95
-
96
- test "temp path is nil if delete option is true" do
97
- @fh = File::Temp.new
98
- assert_nil(@fh.path)
99
- end
100
-
101
- test "temp path is not nil if delete option is false" do
102
- @fh = File::Temp.new(false)
103
- assert_not_nil(@fh.path)
104
- end
105
-
106
- test "ffi functions are private" do
107
- methods = File::Temp.methods(false).map{ |e| e.to_s }
108
- assert_false(methods.include?('_fileno'))
109
- assert_false(methods.include?('mkstemp'))
110
- assert_false(methods.include?('_umask'))
111
- assert_false(methods.include?('fclose'))
112
- assert_false(methods.include?('strerror'))
113
- assert_false(methods.include?('tmpnam'))
114
- assert_false(methods.include?('CloseHandle'))
115
- assert_false(methods.include?('CreateFileA'))
116
- assert_false(methods.include?('DeleteFileA'))
117
- assert_false(methods.include?('GetTempPathA'))
118
- assert_false(methods.include?('GetTempFileNameA'))
119
- end
120
-
121
- def teardown
122
- @dir = nil
123
- @template = nil
124
- @fh.close if @fh && !@fh.closed?
125
- @fh = nil
126
-
127
- Dir["temp_*"].each{ |f| File.delete(f) }
128
- Dir["rb_file_temp_*"].each{ |f| File.delete(f) }
129
-
130
- Dir.chdir(File::Temp::TMPDIR) do
131
- Dir["temp_*"].each{ |f| File.delete(f) }
132
- Dir["rb_file_temp_*"].each{ |f| File.delete(f) }
133
- end
134
- end
135
- end