ptools 1.3.7 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,98 +0,0 @@
1
- ######################################################################
2
- # test_whereis.rb
3
- #
4
- # Tests for the File.whereis method.
5
- ######################################################################
6
- require 'rubygems'
7
- require 'test-unit'
8
- require 'ptools'
9
- require 'rbconfig'
10
-
11
- class TC_Ptools_Whereis < Test::Unit::TestCase
12
- def self.startup
13
- @@windows = File::ALT_SEPARATOR
14
- @@ruby = RUBY_PLATFORM == 'java' ? 'jruby' : 'ruby'
15
- end
16
-
17
- def setup
18
- @bin_dir = RbConfig::CONFIG['bindir']
19
- @expected_locs = [File.join(@bin_dir, @@ruby)]
20
-
21
- if @@windows
22
- @expected_locs[0] << '.exe'
23
- @expected_locs[0].tr!("/", "\\")
24
- end
25
-
26
- unless @@windows
27
- @expected_locs << "/usr/local/bin/#{@@ruby}"
28
- @expected_locs << "/opt/sfw/bin/#{@@ruby}"
29
- @expected_locs << "/opt/bin/#{@@ruby}"
30
- @expected_locs << "/usr/bin/#{@@ruby}"
31
- end
32
-
33
- @actual_locs = nil
34
- end
35
-
36
- test "whereis basic functionality" do
37
- assert_respond_to(File, :whereis)
38
- assert_nothing_raised{ File.whereis('ruby') }
39
- assert_kind_of([Array, NilClass], File.whereis('ruby'))
40
- end
41
-
42
- test "whereis accepts an optional second argument" do
43
- assert_nothing_raised{ File.whereis('ruby', '/usr/bin:/usr/local/bin') }
44
- end
45
-
46
- test "whereis returns expected values" do
47
- assert_nothing_raised{ @actual_locs = File.whereis(@@ruby) }
48
- assert_kind_of(Array, @actual_locs)
49
- assert_true((@expected_locs & @actual_locs).size > 0)
50
- end
51
-
52
- test "whereis returns nil if program not found" do
53
- assert_nil(File.whereis('xxxyyy'))
54
- end
55
-
56
- test "whereis returns nil if program cannot be found in provided path" do
57
- assert_nil(File.whereis(@@ruby, '/foo/bar'))
58
- end
59
-
60
- test "whereis returns single element array or nil if absolute path is provided" do
61
- absolute = File.join(@bin_dir, @@ruby)
62
- absolute << '.exe' if @@windows
63
-
64
- assert_equal([absolute], File.whereis(absolute))
65
- assert_nil(File.whereis("/foo/bar/baz/#{@@ruby}"))
66
- end
67
-
68
- test "whereis works with an explicit extension on ms windows" do
69
- omit_unless(@@windows, 'test skipped except on MS Windows')
70
- assert_not_nil(File.whereis(@@ruby + '.exe'))
71
- end
72
-
73
- test "whereis requires at least one argument" do
74
- assert_raise(ArgumentError){ File.whereis }
75
- end
76
-
77
- test "whereis returns unique paths only" do
78
- assert_true(File.whereis(@@ruby) == File.whereis(@@ruby).uniq)
79
- end
80
-
81
- test "whereis accepts a maximum of two arguments" do
82
- assert_raise(ArgumentError){ File.whereis(@@ruby, 'foo', 'bar') }
83
- end
84
-
85
- test "the second argument to whereis cannot be nil or empty" do
86
- assert_raise(ArgumentError){ File.whereis(@@ruby, nil) }
87
- assert_raise(ArgumentError){ File.whereis(@@ruby, '') }
88
- end
89
-
90
- def teardown
91
- @expected_locs = nil
92
- @actual_locs = nil
93
- end
94
-
95
- def self.shutdown
96
- @@windows = nil
97
- end
98
- end
@@ -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