win32-file 0.7.2 → 0.7.3
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGES +225 -220
- data/MANIFEST +15 -13
- data/README +70 -70
- data/Rakefile +49 -52
- data/certs/djberg96_pub.pem +21 -0
- data/lib/win32-file.rb +1 -0
- data/lib/win32/file.rb +516 -516
- data/lib/win32/file/constants.rb +27 -27
- data/lib/win32/file/functions.rb +49 -49
- data/lib/win32/file/structs.rb +24 -24
- data/test/test_win32_file_link.rb +141 -141
- data/test/test_win32_file_misc.rb +16 -16
- data/test/test_win32_file_path.rb +282 -282
- data/test/test_win32_file_stat.rb +284 -284
- data/win32-file.gemspec +32 -32
- metadata +41 -17
- metadata.gz.sig +1 -0
@@ -1,284 +1,284 @@
|
|
1
|
-
#####################################################################
|
2
|
-
# test_win32_file_stat.rb
|
3
|
-
#
|
4
|
-
# Test case for stat related methods of win32-file. You should run
|
5
|
-
# this via the 'rake test' or 'rake test:stat' task.
|
6
|
-
#####################################################################
|
7
|
-
require 'test-unit'
|
8
|
-
require 'fileutils'
|
9
|
-
require 'win32/file'
|
10
|
-
require 'win32/security'
|
11
|
-
require 'ffi'
|
12
|
-
|
13
|
-
class TC_Win32_File_Stat < Test::Unit::TestCase
|
14
|
-
extend FFI::Library
|
15
|
-
ffi_lib :kernel32
|
16
|
-
|
17
|
-
attach_function :GetDriveTypeA, [:string], :uint
|
18
|
-
|
19
|
-
def self.startup
|
20
|
-
@@txt_file = File.join(Dir.pwd, 'stat_test.txt')
|
21
|
-
@@exe_file = File.join(Dir.pwd, 'stat_test.exe')
|
22
|
-
@@sys_file = "C:/pagefile.sys"
|
23
|
-
|
24
|
-
Dir.chdir(File.expand_path(File.dirname(__FILE__)))
|
25
|
-
File.open(@@txt_file, 'w'){ |fh| fh.puts "This is a test." }
|
26
|
-
|
27
|
-
FileUtils.touch(@@exe_file)
|
28
|
-
|
29
|
-
@@java = RUBY_PLATFORM == 'java'
|
30
|
-
@@block_dev = nil
|
31
|
-
@@elevated = Win32::Security.elevated_security?
|
32
|
-
|
33
|
-
# Find a block device
|
34
|
-
'A'.upto('Z'){ |volume|
|
35
|
-
volume += ":\\"
|
36
|
-
if [2,5,6].include?(GetDriveTypeA(volume))
|
37
|
-
@@block_dev = volume
|
38
|
-
break
|
39
|
-
end
|
40
|
-
}
|
41
|
-
end
|
42
|
-
|
43
|
-
def setup
|
44
|
-
@blksize = 4096 # Most likely
|
45
|
-
end
|
46
|
-
|
47
|
-
test "File::Stat class returned is from win32-file-stat library" do
|
48
|
-
assert_respond_to(File, :stat)
|
49
|
-
assert_kind_of(File::Stat, File.stat(@@txt_file))
|
50
|
-
assert_nothing_raised{ File.stat(@@txt_file).hidden? }
|
51
|
-
end
|
52
|
-
|
53
|
-
test "blksize basic functionality" do
|
54
|
-
assert_respond_to(File, :blksize)
|
55
|
-
assert_kind_of(Fixnum, File.blksize(@@txt_file))
|
56
|
-
end
|
57
|
-
|
58
|
-
test "blksize returns the expected value" do
|
59
|
-
assert_equal(@blksize, File.blksize(@@txt_file))
|
60
|
-
assert_equal(@blksize, File.blksize("C:/"))
|
61
|
-
end
|
62
|
-
|
63
|
-
test "blksize requires a single argument" do
|
64
|
-
assert_raises(ArgumentError){ File.blksize }
|
65
|
-
assert_raises(ArgumentError){ File.blksize(@@txt_file, 'foo') }
|
66
|
-
end
|
67
|
-
|
68
|
-
test "blockdev? basic functionality" do
|
69
|
-
assert_respond_to(File, :blockdev?)
|
70
|
-
assert_nothing_raised{ File.blockdev?("C:\\") }
|
71
|
-
assert_boolean(File.blockdev?('NUL'))
|
72
|
-
end
|
73
|
-
|
74
|
-
test "blockdev? returns false for non-block devices" do
|
75
|
-
assert_false(File.blockdev?(@@txt_file))
|
76
|
-
assert_false(File.blockdev?('NUL'))
|
77
|
-
assert_false(File.blockdev?('bogus'))
|
78
|
-
end
|
79
|
-
|
80
|
-
test "blockdev? returns true for block devices" do
|
81
|
-
omit_unless(@@block_dev)
|
82
|
-
omit_unless(File.exist?(@@block_dev), "No media in device - skipping")
|
83
|
-
assert_true(File.blockdev?(@@block_dev))
|
84
|
-
end
|
85
|
-
|
86
|
-
test "blockdev? requires a single argument" do
|
87
|
-
assert_raises(ArgumentError){ File.blockdev? }
|
88
|
-
assert_raises(ArgumentError){ File.blockdev?(@@txt_file, 'foo') }
|
89
|
-
end
|
90
|
-
|
91
|
-
test "chardev? basic functionality" do
|
92
|
-
assert_respond_to(File, :chardev?)
|
93
|
-
assert_nothing_raised{ File.chardev?("NUL") }
|
94
|
-
assert_boolean(File.chardev?(@@txt_file))
|
95
|
-
end
|
96
|
-
|
97
|
-
test "chardev? method returns the expected result for regular files" do
|
98
|
-
assert_false(File.chardev?(@@txt_file))
|
99
|
-
assert_false(File.chardev?('bogus'))
|
100
|
-
end
|
101
|
-
|
102
|
-
test "chardev? method returns the expected result for character devices" do
|
103
|
-
omit_if(@@java)
|
104
|
-
assert_true(File.chardev?('NUL'))
|
105
|
-
end
|
106
|
-
|
107
|
-
test "chardev? requires a single argument" do
|
108
|
-
assert_raises(ArgumentError){ File.chardev? }
|
109
|
-
assert_raises(ArgumentError){ File.chardev?(@@txt_file, 'foo') }
|
110
|
-
end
|
111
|
-
|
112
|
-
test "lstat is an alias for stat" do
|
113
|
-
assert_respond_to(File, :lstat)
|
114
|
-
assert_alias_method(File, :stat, :lstat)
|
115
|
-
end
|
116
|
-
|
117
|
-
test "directory? method basic functionality" do
|
118
|
-
assert_respond_to(File, :directory?)
|
119
|
-
assert_nothing_raised{ File.directory?(Dir.pwd) }
|
120
|
-
assert_boolean(File.directory?(Dir.pwd))
|
121
|
-
end
|
122
|
-
|
123
|
-
test "directory? method returns expected results" do
|
124
|
-
assert_true(File.directory?(Dir.pwd))
|
125
|
-
assert_false(File.directory?(@@txt_file))
|
126
|
-
assert_false(File.directory?('NUL'))
|
127
|
-
assert_false(File.directory?('bogus'))
|
128
|
-
end
|
129
|
-
|
130
|
-
test "executable? method basic functionality" do
|
131
|
-
assert_respond_to(File, :executable?)
|
132
|
-
assert_nothing_raised{ File.executable?(Dir.pwd) }
|
133
|
-
assert_boolean(File.executable?(Dir.pwd))
|
134
|
-
end
|
135
|
-
|
136
|
-
test "executable? method returns expected results" do
|
137
|
-
assert_true(File.executable?(@@exe_file))
|
138
|
-
assert_false(File.executable?(@@txt_file))
|
139
|
-
assert_false(File.directory?('NUL'))
|
140
|
-
assert_false(File.directory?('bogus'))
|
141
|
-
end
|
142
|
-
|
143
|
-
test "file? method basic functionality" do
|
144
|
-
assert_respond_to(File, :file?)
|
145
|
-
assert_nothing_raised{ File.file?(Dir.pwd) }
|
146
|
-
assert_boolean(File.file?(Dir.pwd))
|
147
|
-
end
|
148
|
-
|
149
|
-
test "file? method returns expected results" do
|
150
|
-
assert_true(File.file?(@@txt_file))
|
151
|
-
|
152
|
-
assert_false(File.file?('NUL'))
|
153
|
-
assert_false(File.file?('bogus'))
|
154
|
-
end
|
155
|
-
|
156
|
-
test "ftype method basic functionality" do
|
157
|
-
assert_respond_to(File, :ftype)
|
158
|
-
assert_nothing_raised{ File.ftype(Dir.pwd) }
|
159
|
-
assert_kind_of(String, File.ftype(Dir.pwd))
|
160
|
-
end
|
161
|
-
|
162
|
-
test "ftype returns the expected string" do
|
163
|
-
assert_equal('file', File.ftype(@@txt_file))
|
164
|
-
assert_equal('directory', File.ftype(Dir.pwd))
|
165
|
-
assert_equal('characterSpecial', File.ftype('NUL'))
|
166
|
-
end
|
167
|
-
|
168
|
-
test "grpowned? method basic functionality" do
|
169
|
-
assert_respond_to(File, :grpowned?)
|
170
|
-
assert_nothing_raised{ File.grpowned?(Dir.pwd) }
|
171
|
-
assert_boolean(File.grpowned?(Dir.pwd))
|
172
|
-
end
|
173
|
-
|
174
|
-
test "grpowned? returns expected results" do
|
175
|
-
assert_true(File.grpowned?(@@txt_file))
|
176
|
-
assert_false(File.grpowned?('NUL'))
|
177
|
-
assert_false(File.grpowned?('bogus'))
|
178
|
-
end
|
179
|
-
|
180
|
-
test "owned? method basic functionality" do
|
181
|
-
assert_respond_to(File, :owned?)
|
182
|
-
assert_nothing_raised{ File.owned?(Dir.pwd) }
|
183
|
-
assert_boolean(File.owned?(Dir.pwd))
|
184
|
-
end
|
185
|
-
|
186
|
-
test "owned? returns expected results" do
|
187
|
-
if @@elevated
|
188
|
-
assert_false(File.owned?(@@txt_file))
|
189
|
-
else
|
190
|
-
assert_true(File.owned?(@@txt_file))
|
191
|
-
end
|
192
|
-
assert_false(File.owned?('NUL'))
|
193
|
-
assert_false(File.owned?('bogus'))
|
194
|
-
end
|
195
|
-
|
196
|
-
test "pipe? method basic functionality" do
|
197
|
-
assert_respond_to(File, :pipe?)
|
198
|
-
assert_nothing_raised{ File.pipe?(Dir.pwd) }
|
199
|
-
assert_boolean(File.pipe?(Dir.pwd))
|
200
|
-
end
|
201
|
-
|
202
|
-
test "pipe? returns expected results" do
|
203
|
-
assert_false(File.pipe?(@@txt_file))
|
204
|
-
assert_false(File.pipe?(Dir.pwd))
|
205
|
-
assert_false(File.pipe?('NUL'))
|
206
|
-
assert_false(File.pipe?('bogus'))
|
207
|
-
end
|
208
|
-
|
209
|
-
test "readable? basic functionality" do
|
210
|
-
assert_respond_to(File, :readable?)
|
211
|
-
assert_boolean(File.readable?(@@txt_file))
|
212
|
-
end
|
213
|
-
|
214
|
-
test "readable? returns expected value" do
|
215
|
-
assert_true(File.readable?(@@txt_file))
|
216
|
-
assert_true(File::Stat.new(Dir.pwd).readable?)
|
217
|
-
assert_false(File::Stat.new(@@sys_file).readable?)
|
218
|
-
end
|
219
|
-
|
220
|
-
test "readable_real? basic functionality" do
|
221
|
-
assert_respond_to(File, :readable_real?)
|
222
|
-
assert_boolean(File.readable_real?(@@txt_file))
|
223
|
-
end
|
224
|
-
|
225
|
-
test "readable_real? returns expected value" do
|
226
|
-
assert_true(File.readable_real?(@@txt_file))
|
227
|
-
end
|
228
|
-
|
229
|
-
test "socket? is an alias for pipe?" do
|
230
|
-
assert_respond_to(File, :socket?)
|
231
|
-
assert_alias_method(File, :socket?, :pipe?)
|
232
|
-
end
|
233
|
-
|
234
|
-
test "world_readable? basic functionality" do
|
235
|
-
assert_respond_to(File, :world_readable?)
|
236
|
-
assert_boolean(File.world_readable?(@@txt_file))
|
237
|
-
end
|
238
|
-
|
239
|
-
test "world_writable? returns expected value" do
|
240
|
-
assert_false(File.world_writable?(@@txt_file))
|
241
|
-
end
|
242
|
-
|
243
|
-
test "writable? basic functionality" do
|
244
|
-
assert_respond_to(File, :writable?)
|
245
|
-
assert_boolean(File.writable?(@@txt_file))
|
246
|
-
end
|
247
|
-
|
248
|
-
test "writable? returns expected value" do
|
249
|
-
assert_true(File.writable?(@@txt_file))
|
250
|
-
assert_true(File::Stat.new(Dir.pwd).writable?)
|
251
|
-
assert_false(File::Stat.new(@@sys_file).writable?)
|
252
|
-
end
|
253
|
-
|
254
|
-
test "writable_real? basic functionality" do
|
255
|
-
assert_respond_to(File, :writable_real?)
|
256
|
-
assert_boolean(File.writable_real?(@@txt_file))
|
257
|
-
end
|
258
|
-
|
259
|
-
test "writable_real? returns expected value" do
|
260
|
-
assert_true(File.writable_real?(@@txt_file))
|
261
|
-
end
|
262
|
-
|
263
|
-
test "check underlying custom stat attributes" do
|
264
|
-
File.open(@@txt_file){ |f|
|
265
|
-
assert_respond_to(f, :stat)
|
266
|
-
assert_kind_of(File::Stat, f.stat)
|
267
|
-
assert_false(f.stat.hidden?)
|
268
|
-
}
|
269
|
-
end
|
270
|
-
|
271
|
-
def teardown
|
272
|
-
@blksize = nil
|
273
|
-
end
|
274
|
-
|
275
|
-
def self.shutdown
|
276
|
-
File.delete(@@txt_file) if File.exist?(@@txt_file)
|
277
|
-
File.delete(@@exe_file) if File.exist?(@@exe_file)
|
278
|
-
@@txt_file = nil
|
279
|
-
@@exe_file = nil
|
280
|
-
@@elevated = nil
|
281
|
-
@@block_dev = nil
|
282
|
-
@@java = nil
|
283
|
-
end
|
284
|
-
end
|
1
|
+
#####################################################################
|
2
|
+
# test_win32_file_stat.rb
|
3
|
+
#
|
4
|
+
# Test case for stat related methods of win32-file. You should run
|
5
|
+
# this via the 'rake test' or 'rake test:stat' task.
|
6
|
+
#####################################################################
|
7
|
+
require 'test-unit'
|
8
|
+
require 'fileutils'
|
9
|
+
require 'win32/file'
|
10
|
+
require 'win32/security'
|
11
|
+
require 'ffi'
|
12
|
+
|
13
|
+
class TC_Win32_File_Stat < Test::Unit::TestCase
|
14
|
+
extend FFI::Library
|
15
|
+
ffi_lib :kernel32
|
16
|
+
|
17
|
+
attach_function :GetDriveTypeA, [:string], :uint
|
18
|
+
|
19
|
+
def self.startup
|
20
|
+
@@txt_file = File.join(Dir.pwd, 'stat_test.txt')
|
21
|
+
@@exe_file = File.join(Dir.pwd, 'stat_test.exe')
|
22
|
+
@@sys_file = "C:/pagefile.sys"
|
23
|
+
|
24
|
+
Dir.chdir(File.expand_path(File.dirname(__FILE__)))
|
25
|
+
File.open(@@txt_file, 'w'){ |fh| fh.puts "This is a test." }
|
26
|
+
|
27
|
+
FileUtils.touch(@@exe_file)
|
28
|
+
|
29
|
+
@@java = RUBY_PLATFORM == 'java'
|
30
|
+
@@block_dev = nil
|
31
|
+
@@elevated = Win32::Security.elevated_security?
|
32
|
+
|
33
|
+
# Find a block device
|
34
|
+
'A'.upto('Z'){ |volume|
|
35
|
+
volume += ":\\"
|
36
|
+
if [2,5,6].include?(GetDriveTypeA(volume))
|
37
|
+
@@block_dev = volume
|
38
|
+
break
|
39
|
+
end
|
40
|
+
}
|
41
|
+
end
|
42
|
+
|
43
|
+
def setup
|
44
|
+
@blksize = 4096 # Most likely
|
45
|
+
end
|
46
|
+
|
47
|
+
test "File::Stat class returned is from win32-file-stat library" do
|
48
|
+
assert_respond_to(File, :stat)
|
49
|
+
assert_kind_of(File::Stat, File.stat(@@txt_file))
|
50
|
+
assert_nothing_raised{ File.stat(@@txt_file).hidden? }
|
51
|
+
end
|
52
|
+
|
53
|
+
test "blksize basic functionality" do
|
54
|
+
assert_respond_to(File, :blksize)
|
55
|
+
assert_kind_of(Fixnum, File.blksize(@@txt_file))
|
56
|
+
end
|
57
|
+
|
58
|
+
test "blksize returns the expected value" do
|
59
|
+
assert_equal(@blksize, File.blksize(@@txt_file))
|
60
|
+
assert_equal(@blksize, File.blksize("C:/"))
|
61
|
+
end
|
62
|
+
|
63
|
+
test "blksize requires a single argument" do
|
64
|
+
assert_raises(ArgumentError){ File.blksize }
|
65
|
+
assert_raises(ArgumentError){ File.blksize(@@txt_file, 'foo') }
|
66
|
+
end
|
67
|
+
|
68
|
+
test "blockdev? basic functionality" do
|
69
|
+
assert_respond_to(File, :blockdev?)
|
70
|
+
assert_nothing_raised{ File.blockdev?("C:\\") }
|
71
|
+
assert_boolean(File.blockdev?('NUL'))
|
72
|
+
end
|
73
|
+
|
74
|
+
test "blockdev? returns false for non-block devices" do
|
75
|
+
assert_false(File.blockdev?(@@txt_file))
|
76
|
+
assert_false(File.blockdev?('NUL'))
|
77
|
+
assert_false(File.blockdev?('bogus'))
|
78
|
+
end
|
79
|
+
|
80
|
+
test "blockdev? returns true for block devices" do
|
81
|
+
omit_unless(@@block_dev)
|
82
|
+
omit_unless(File.exist?(@@block_dev), "No media in device - skipping")
|
83
|
+
assert_true(File.blockdev?(@@block_dev))
|
84
|
+
end
|
85
|
+
|
86
|
+
test "blockdev? requires a single argument" do
|
87
|
+
assert_raises(ArgumentError){ File.blockdev? }
|
88
|
+
assert_raises(ArgumentError){ File.blockdev?(@@txt_file, 'foo') }
|
89
|
+
end
|
90
|
+
|
91
|
+
test "chardev? basic functionality" do
|
92
|
+
assert_respond_to(File, :chardev?)
|
93
|
+
assert_nothing_raised{ File.chardev?("NUL") }
|
94
|
+
assert_boolean(File.chardev?(@@txt_file))
|
95
|
+
end
|
96
|
+
|
97
|
+
test "chardev? method returns the expected result for regular files" do
|
98
|
+
assert_false(File.chardev?(@@txt_file))
|
99
|
+
assert_false(File.chardev?('bogus'))
|
100
|
+
end
|
101
|
+
|
102
|
+
test "chardev? method returns the expected result for character devices" do
|
103
|
+
omit_if(@@java)
|
104
|
+
assert_true(File.chardev?('NUL'))
|
105
|
+
end
|
106
|
+
|
107
|
+
test "chardev? requires a single argument" do
|
108
|
+
assert_raises(ArgumentError){ File.chardev? }
|
109
|
+
assert_raises(ArgumentError){ File.chardev?(@@txt_file, 'foo') }
|
110
|
+
end
|
111
|
+
|
112
|
+
test "lstat is an alias for stat" do
|
113
|
+
assert_respond_to(File, :lstat)
|
114
|
+
assert_alias_method(File, :stat, :lstat)
|
115
|
+
end
|
116
|
+
|
117
|
+
test "directory? method basic functionality" do
|
118
|
+
assert_respond_to(File, :directory?)
|
119
|
+
assert_nothing_raised{ File.directory?(Dir.pwd) }
|
120
|
+
assert_boolean(File.directory?(Dir.pwd))
|
121
|
+
end
|
122
|
+
|
123
|
+
test "directory? method returns expected results" do
|
124
|
+
assert_true(File.directory?(Dir.pwd))
|
125
|
+
assert_false(File.directory?(@@txt_file))
|
126
|
+
assert_false(File.directory?('NUL'))
|
127
|
+
assert_false(File.directory?('bogus'))
|
128
|
+
end
|
129
|
+
|
130
|
+
test "executable? method basic functionality" do
|
131
|
+
assert_respond_to(File, :executable?)
|
132
|
+
assert_nothing_raised{ File.executable?(Dir.pwd) }
|
133
|
+
assert_boolean(File.executable?(Dir.pwd))
|
134
|
+
end
|
135
|
+
|
136
|
+
test "executable? method returns expected results" do
|
137
|
+
assert_true(File.executable?(@@exe_file))
|
138
|
+
assert_false(File.executable?(@@txt_file))
|
139
|
+
assert_false(File.directory?('NUL'))
|
140
|
+
assert_false(File.directory?('bogus'))
|
141
|
+
end
|
142
|
+
|
143
|
+
test "file? method basic functionality" do
|
144
|
+
assert_respond_to(File, :file?)
|
145
|
+
assert_nothing_raised{ File.file?(Dir.pwd) }
|
146
|
+
assert_boolean(File.file?(Dir.pwd))
|
147
|
+
end
|
148
|
+
|
149
|
+
test "file? method returns expected results" do
|
150
|
+
assert_true(File.file?(@@txt_file))
|
151
|
+
assert_false(File.file?(Dir.pwd))
|
152
|
+
assert_false(File.file?('NUL'))
|
153
|
+
assert_false(File.file?('bogus'))
|
154
|
+
end
|
155
|
+
|
156
|
+
test "ftype method basic functionality" do
|
157
|
+
assert_respond_to(File, :ftype)
|
158
|
+
assert_nothing_raised{ File.ftype(Dir.pwd) }
|
159
|
+
assert_kind_of(String, File.ftype(Dir.pwd))
|
160
|
+
end
|
161
|
+
|
162
|
+
test "ftype returns the expected string" do
|
163
|
+
assert_equal('file', File.ftype(@@txt_file))
|
164
|
+
assert_equal('directory', File.ftype(Dir.pwd))
|
165
|
+
assert_equal('characterSpecial', File.ftype('NUL'))
|
166
|
+
end
|
167
|
+
|
168
|
+
test "grpowned? method basic functionality" do
|
169
|
+
assert_respond_to(File, :grpowned?)
|
170
|
+
assert_nothing_raised{ File.grpowned?(Dir.pwd) }
|
171
|
+
assert_boolean(File.grpowned?(Dir.pwd))
|
172
|
+
end
|
173
|
+
|
174
|
+
test "grpowned? returns expected results" do
|
175
|
+
assert_true(File.grpowned?(@@txt_file))
|
176
|
+
assert_false(File.grpowned?('NUL'))
|
177
|
+
assert_false(File.grpowned?('bogus'))
|
178
|
+
end
|
179
|
+
|
180
|
+
test "owned? method basic functionality" do
|
181
|
+
assert_respond_to(File, :owned?)
|
182
|
+
assert_nothing_raised{ File.owned?(Dir.pwd) }
|
183
|
+
assert_boolean(File.owned?(Dir.pwd))
|
184
|
+
end
|
185
|
+
|
186
|
+
test "owned? returns expected results" do
|
187
|
+
if @@elevated
|
188
|
+
assert_false(File.owned?(@@txt_file))
|
189
|
+
else
|
190
|
+
assert_true(File.owned?(@@txt_file))
|
191
|
+
end
|
192
|
+
assert_false(File.owned?('NUL'))
|
193
|
+
assert_false(File.owned?('bogus'))
|
194
|
+
end
|
195
|
+
|
196
|
+
test "pipe? method basic functionality" do
|
197
|
+
assert_respond_to(File, :pipe?)
|
198
|
+
assert_nothing_raised{ File.pipe?(Dir.pwd) }
|
199
|
+
assert_boolean(File.pipe?(Dir.pwd))
|
200
|
+
end
|
201
|
+
|
202
|
+
test "pipe? returns expected results" do
|
203
|
+
assert_false(File.pipe?(@@txt_file))
|
204
|
+
assert_false(File.pipe?(Dir.pwd))
|
205
|
+
assert_false(File.pipe?('NUL'))
|
206
|
+
assert_false(File.pipe?('bogus'))
|
207
|
+
end
|
208
|
+
|
209
|
+
test "readable? basic functionality" do
|
210
|
+
assert_respond_to(File, :readable?)
|
211
|
+
assert_boolean(File.readable?(@@txt_file))
|
212
|
+
end
|
213
|
+
|
214
|
+
test "readable? returns expected value" do
|
215
|
+
assert_true(File.readable?(@@txt_file))
|
216
|
+
assert_true(File::Stat.new(Dir.pwd).readable?)
|
217
|
+
assert_false(File::Stat.new(@@sys_file).readable?)
|
218
|
+
end
|
219
|
+
|
220
|
+
test "readable_real? basic functionality" do
|
221
|
+
assert_respond_to(File, :readable_real?)
|
222
|
+
assert_boolean(File.readable_real?(@@txt_file))
|
223
|
+
end
|
224
|
+
|
225
|
+
test "readable_real? returns expected value" do
|
226
|
+
assert_true(File.readable_real?(@@txt_file))
|
227
|
+
end
|
228
|
+
|
229
|
+
test "socket? is an alias for pipe?" do
|
230
|
+
assert_respond_to(File, :socket?)
|
231
|
+
assert_alias_method(File, :socket?, :pipe?)
|
232
|
+
end
|
233
|
+
|
234
|
+
test "world_readable? basic functionality" do
|
235
|
+
assert_respond_to(File, :world_readable?)
|
236
|
+
assert_boolean(File.world_readable?(@@txt_file))
|
237
|
+
end
|
238
|
+
|
239
|
+
test "world_writable? returns expected value" do
|
240
|
+
assert_false(File.world_writable?(@@txt_file))
|
241
|
+
end
|
242
|
+
|
243
|
+
test "writable? basic functionality" do
|
244
|
+
assert_respond_to(File, :writable?)
|
245
|
+
assert_boolean(File.writable?(@@txt_file))
|
246
|
+
end
|
247
|
+
|
248
|
+
test "writable? returns expected value" do
|
249
|
+
assert_true(File.writable?(@@txt_file))
|
250
|
+
assert_true(File::Stat.new(Dir.pwd).writable?)
|
251
|
+
assert_false(File::Stat.new(@@sys_file).writable?)
|
252
|
+
end
|
253
|
+
|
254
|
+
test "writable_real? basic functionality" do
|
255
|
+
assert_respond_to(File, :writable_real?)
|
256
|
+
assert_boolean(File.writable_real?(@@txt_file))
|
257
|
+
end
|
258
|
+
|
259
|
+
test "writable_real? returns expected value" do
|
260
|
+
assert_true(File.writable_real?(@@txt_file))
|
261
|
+
end
|
262
|
+
|
263
|
+
test "check underlying custom stat attributes" do
|
264
|
+
File.open(@@txt_file){ |f|
|
265
|
+
assert_respond_to(f, :stat)
|
266
|
+
assert_kind_of(File::Stat, f.stat)
|
267
|
+
assert_false(f.stat.hidden?)
|
268
|
+
}
|
269
|
+
end
|
270
|
+
|
271
|
+
def teardown
|
272
|
+
@blksize = nil
|
273
|
+
end
|
274
|
+
|
275
|
+
def self.shutdown
|
276
|
+
File.delete(@@txt_file) if File.exist?(@@txt_file)
|
277
|
+
File.delete(@@exe_file) if File.exist?(@@exe_file)
|
278
|
+
@@txt_file = nil
|
279
|
+
@@exe_file = nil
|
280
|
+
@@elevated = nil
|
281
|
+
@@block_dev = nil
|
282
|
+
@@java = nil
|
283
|
+
end
|
284
|
+
end
|