ptools 1.3.3-universal-mingw32 → 1.4.1-universal-mingw32

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,126 +0,0 @@
1
- #####################################################################
2
- # test_which.rb
3
- #
4
- # Test case for the File.which method. You should run this test
5
- # via the 'rake test_which' rake task.
6
- #
7
- # NOTE: I make the assumption that Ruby (or JRuby) is in your
8
- # PATH for these tests.
9
- #####################################################################
10
- require 'test-unit'
11
- require 'rbconfig'
12
- require 'fileutils'
13
- require 'ptools'
14
- require 'tempfile'
15
-
16
- class TC_FileWhich < Test::Unit::TestCase
17
- def self.startup
18
- @@windows = File::ALT_SEPARATOR
19
- @@dir = File.join(Dir.pwd, 'tempdir')
20
- @@non_exe = File.join(Dir.pwd, 'tempfile')
21
-
22
- Dir.mkdir(@@dir) unless File.exist?(@@dir)
23
- FileUtils.touch(@@non_exe)
24
- File.chmod(775, @@dir)
25
- File.chmod(644, @@non_exe)
26
- end
27
-
28
- def setup
29
- @ruby = RUBY_PLATFORM.match('java') ? 'jruby' : 'ruby'
30
- @ruby = 'rbx' if defined?(Rubinius)
31
-
32
- @exe = File.join(
33
- RbConfig::CONFIG['bindir'],
34
- RbConfig::CONFIG['ruby_install_name']
35
- )
36
-
37
- if @@windows
38
- @exe.tr!('/','\\')
39
- @exe << ".exe"
40
- end
41
- end
42
-
43
- test "which method basic functionality" do
44
- assert_respond_to(File, :which)
45
- assert_nothing_raised{ File.which(@ruby) }
46
- assert_kind_of(String, File.which(@ruby))
47
- end
48
-
49
- test "which accepts an optional path to search" do
50
- assert_nothing_raised{ File.which(@ruby, "/usr/bin:/usr/local/bin") }
51
- end
52
-
53
- test "which returns nil if not found" do
54
- assert_equal(nil, File.which(@ruby, '/bogus/path'))
55
- assert_equal(nil, File.which('blahblahblah'))
56
- end
57
-
58
- test "which handles executables without extensions on windows" do
59
- omit_unless(@@windows, "test skipped unless MS Windows")
60
- assert_not_nil(File.which('ruby'))
61
- assert_not_nil(File.which('notepad'))
62
- end
63
-
64
- test "which handles executables that already contain extensions on windows" do
65
- omit_unless(@@windows, "test skipped unless MS Windows")
66
- assert_not_nil(File.which('ruby.exe'))
67
- assert_not_nil(File.which('notepad.exe'))
68
- end
69
-
70
- test "which returns argument if an existent absolute path is provided" do
71
- assert_equal(@exe, File.which(@ruby), "=> May fail on a symlink")
72
- end
73
-
74
- test "which returns nil if a non-existent absolute path is provided" do
75
- assert_nil(File.which('/foo/bar/baz/ruby'))
76
- end
77
-
78
- test "which does not pickup files that are not executable" do
79
- assert_nil(File.which(@@non_exe))
80
- end
81
-
82
- test "which does not pickup executable directories" do
83
- assert_nil(File.which(@@dir))
84
- end
85
-
86
- test "which accepts a minimum of one argument" do
87
- assert_raises(ArgumentError){ File.which }
88
- end
89
-
90
- test "which accepts a maximum of two arguments" do
91
- assert_raises(ArgumentError){ File.which(@ruby, "foo", "bar") }
92
- end
93
-
94
- test "the second argument cannot be nil or empty" do
95
- assert_raises(ArgumentError){ File.which(@ruby, nil) }
96
- assert_raises(ArgumentError){ File.which(@ruby, '') }
97
- end
98
-
99
- test "resolves with with ~" do
100
- omit_if(@@windows, "~ tests skipped on MS Windows")
101
- begin
102
- old_home = ENV['HOME']
103
-
104
- ENV['HOME'] = Dir::Tmpname.tmpdir
105
- program = Tempfile.new(['program', '.sh'])
106
- File.chmod(755, program.path)
107
-
108
- assert_not_nil(File.which(File.basename(program.path), '~/'))
109
- ensure
110
- ENV['HOME'] = old_home
111
- end
112
- end
113
-
114
- def teardown
115
- @exe = nil
116
- @ruby = nil
117
- end
118
-
119
- def self.shutdown
120
- FileUtils.rm(@@non_exe)
121
- FileUtils.rm_rf(@@dir)
122
- @@windows = nil
123
- @@dir = nil
124
- @@non_exe = nil
125
- end
126
- end