ptools 1.3.3 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,53 +0,0 @@
1
- #####################################################################
2
- # test_touch.rb
3
- #
4
- # Test case for the File.touch method. This test should be run
5
- # via the 'rake test_touch task'.
6
- #####################################################################
7
- require 'test-unit'
8
- require 'ptools'
9
-
10
- class TC_FileTouch < Test::Unit::TestCase
11
- def self.startup
12
- @@dirname = File.dirname(__FILE__)
13
- @@xfile = File.join(@@dirname, 'test_file1.txt')
14
- File.open(@@xfile, 'w'){ |fh| 10.times{ |n| fh.puts "line #{n}" } }
15
- end
16
-
17
- def setup
18
- @test_file = File.join(@@dirname, 'delete.this')
19
- @xfile = File.join(@@dirname, 'test_file1.txt')
20
- end
21
-
22
- def test_touch_basic
23
- assert_respond_to(File, :touch)
24
- assert_nothing_raised{ File.touch(@test_file) }
25
- end
26
-
27
- def test_touch_expected_results
28
- assert_equal(File, File.touch(@test_file))
29
- assert_equal(true, File.exist?(@test_file))
30
- assert_equal(0, File.size(@test_file))
31
- end
32
-
33
- def test_touch_existing_file
34
- stat = File.stat(@xfile)
35
- sleep 1
36
- assert_nothing_raised{ File.touch(@xfile) }
37
- assert_equal(true, File.size(@xfile) == stat.size)
38
- assert_equal(false, File.mtime(@xfile) == stat.mtime)
39
- end
40
-
41
- def test_touch_expected_errors
42
- assert_raises(ArgumentError){ File.touch }
43
- end
44
-
45
- def teardown
46
- File.delete(@test_file) if File.exist?(@test_file)
47
- @test_file = nil
48
- end
49
-
50
- def self.shutdown
51
- File.delete(@@xfile) if File.exist?(@@xfile)
52
- end
53
- end
@@ -1,73 +0,0 @@
1
- #####################################################################
2
- # test_wc.rb
3
- #
4
- # Test case for the File.wc method. This test should be run via
5
- # the 'rake test_wc' task.
6
- #####################################################################
7
- require 'test-unit'
8
- require 'ptools'
9
-
10
- class TC_FileWC < Test::Unit::TestCase
11
- def self.startup
12
- Dir.chdir('test') if File.exist?('test')
13
- File.open('test_file1.txt', 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } }
14
- @@test_file = 'test_file1.txt'
15
- end
16
-
17
- def setup
18
- @test_file = 'test_file1.txt'
19
- end
20
-
21
- test "wc method basic functionality" do
22
- assert_respond_to(File, :wc)
23
- assert_nothing_raised{ File.wc(@test_file) }
24
- end
25
-
26
- test "wc accepts specific optional arguments" do
27
- assert_nothing_raised{ File.wc(@test_file, 'bytes') }
28
- assert_nothing_raised{ File.wc(@test_file, 'chars') }
29
- assert_nothing_raised{ File.wc(@test_file, 'words') }
30
- assert_nothing_raised{ File.wc(@test_file, 'lines') }
31
- end
32
-
33
- test "argument to wc ignores the case of the option argument" do
34
- assert_nothing_raised{ File.wc(@test_file, 'LINES') }
35
- end
36
-
37
- test "wc with no option returns expected results" do
38
- assert_kind_of(Array, File.wc(@test_file))
39
- assert_equal([166,166,25,25], File.wc(@test_file))
40
- end
41
-
42
- test "wc with bytes option returns the expected result" do
43
- assert_equal(166, File.wc(@test_file, 'bytes'), "Wrong number of bytes")
44
- end
45
-
46
- test "wc with chars option returns the expected result" do
47
- assert_equal(166, File.wc(@test_file, 'chars'), "Wrong number of chars")
48
- end
49
-
50
- test "wc with words option returns the expected result" do
51
- assert_equal(25, File.wc(@test_file, 'words'), "Wrong number of words")
52
- end
53
-
54
- test "wc with lines option returns the expected result" do
55
- assert_equal(25, File.wc(@test_file, 'lines'), "Wrong number of lines")
56
- end
57
-
58
- test "wc requires at least on argument" do
59
- assert_raises(ArgumentError){ File.wc }
60
- end
61
-
62
- test "an invalid option raises an error" do
63
- assert_raises(ArgumentError){ File.wc(@test_file, 'bogus') }
64
- end
65
-
66
- def teardown
67
- @test_file = nil
68
- end
69
-
70
- def self.shutdown
71
- File.delete(@@test_file) if File.exist?(@@test_file)
72
- end
73
- end
@@ -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