diff options
Diffstat (limited to 'jni/ruby/test/rake/test_rake_test_task.rb')
-rw-r--r-- | jni/ruby/test/rake/test_rake_test_task.rb | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/jni/ruby/test/rake/test_rake_test_task.rb b/jni/ruby/test/rake/test_rake_test_task.rb new file mode 100644 index 0000000..5c4be79 --- /dev/null +++ b/jni/ruby/test/rake/test_rake_test_task.rb @@ -0,0 +1,146 @@ +require File.expand_path('../helper', __FILE__) +require 'rake/testtask' + +class TestRakeTestTask < Rake::TestCase + include Rake + + def test_initialize + tt = Rake::TestTask.new do |t| end + refute_nil tt + assert_equal :test, tt.name + assert_equal ['lib'], tt.libs + assert_equal 'test/test*.rb', tt.pattern + assert_equal false, tt.verbose + assert Task.task_defined?(:test) + end + + def test_initialize_override + tt = Rake::TestTask.new(:example) do |t| + t.description = "Run example tests" + t.libs = ['src', 'ext'] + t.pattern = 'test/tc_*.rb' + t.verbose = true + end + refute_nil tt + assert_equal "Run example tests", tt.description + assert_equal :example, tt.name + assert_equal ['src', 'ext'], tt.libs + assert_equal 'test/tc_*.rb', tt.pattern + assert_equal true, tt.verbose + assert Task.task_defined?(:example) + end + + def test_file_list_env_test + ENV['TEST'] = 'testfile.rb' + tt = Rake::TestTask.new do |t| + t.pattern = '*' + end + + assert_equal ["testfile.rb"], tt.file_list.to_a + ensure + ENV.delete 'TEST' + end + + def test_libs_equals + test_task = Rake::TestTask.new do |t| + t.libs << ["A", "B"] + end + + path = %w[lib A B].join File::PATH_SEPARATOR + + assert_equal "-I\"#{path}\"", test_task.ruby_opts_string + end + + def test_libs_equals_empty + test_task = Rake::TestTask.new do |t| + t.libs = [] + end + + assert_equal '', test_task.ruby_opts_string + end + + def test_pattern_equals + tt = Rake::TestTask.new do |t| + t.pattern = '*.rb' + end + assert_equal ['*.rb'], tt.file_list.to_a + end + + def test_pattern_equals_test_files_equals + tt = Rake::TestTask.new do |t| + t.test_files = FileList['a.rb', 'b.rb'] + t.pattern = '*.rb' + end + assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a + end + + def test_run_code_direct + test_task = Rake::TestTask.new do |t| + t.loader = :direct + end + + assert_equal '-e "ARGV.each{|f| require f}"', test_task.run_code + end + + def test_run_code_rake + spec = Gem::Specification.new 'rake', 0 + spec.loaded_from = File.join Gem::Specification.dirs.last, 'rake-0.gemspec' + rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], spec + + test_task = Rake::TestTask.new do |t| + t.loader = :rake + end + + assert_match(/\A-I".*?" ".*?"\Z/, test_task.run_code) + ensure + Gem.loaded_specs['rake'] = rake + end + + def test_run_code_rake_default_gem + skip 'this ruby does not have default gems' unless + Gem::Specification.method_defined? :default_specifications_dir + + default_spec = Gem::Specification.new 'rake', 0 + default_spec.loaded_from = File.join Gem::Specification.default_specifications_dir, 'rake-0.gemspec' + begin + rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], default_spec + + test_task = Rake::TestTask.new do |t| + t.loader = :rake + end + + assert_match(/\A(-I".*?" *)* ".*?"\Z/, test_task.run_code) + ensure + Gem.loaded_specs['rake'] = rake + end + end + + def test_run_code_testrb_ruby_1_8_2 + test_task = Rake::TestTask.new do |t| + t.loader = :testrb + end + + def test_task.ruby_version() '1.8.2' end + + assert_match(/^-S testrb +".*"$/, test_task.run_code) + end + + def test_run_code_testrb_ruby_1_8_6 + test_task = Rake::TestTask.new do |t| + t.loader = :testrb + end + + def test_task.ruby_version() '1.8.6' end + + assert_match(/^-S testrb +$/, test_task.run_code) + end + + def test_test_files_equals + tt = Rake::TestTask.new do |t| + t.test_files = FileList['a.rb', 'b.rb'] + end + + assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a + end + +end |