diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-11 17:00:49 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-04-11 17:00:49 +0000 |
commit | a5d40b289fde6afec9341af04642d4d3c3c8be28 (patch) | |
tree | 62bf641f84fbffd1a81cdc7db7fe146da3f56a31 /test/fileutils | |
parent | a7256d7a006b75adf690defd1b41271a77a15117 (diff) |
merge revision(s) 39544,39546: [Backport #7992]
* lib/fileutils.rb: Revert r34669 which altered the way
metaprogramming in FileUtils occurred. [ruby-trunk - Bug #7958]
* test/fileutils/visibility_tests.rb: Refactored tests of FileUtils
options modules to expose bug found in #7958
* test/fileutils/test_dryrun.rb: ditto.
* test/fileutils/test_nowrite.rb: ditto.
* test/fileutils/test_verbose.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@40251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/fileutils')
-rw-r--r-- | test/fileutils/test_dryrun.rb | 21 | ||||
-rw-r--r-- | test/fileutils/test_nowrite.rb | 21 | ||||
-rw-r--r-- | test/fileutils/test_verbose.rb | 19 | ||||
-rw-r--r-- | test/fileutils/visibility_tests.rb | 41 |
4 files changed, 56 insertions, 46 deletions
diff --git a/test/fileutils/test_dryrun.rb b/test/fileutils/test_dryrun.rb index f4672779a1..03f6bed387 100644 --- a/test/fileutils/test_dryrun.rb +++ b/test/fileutils/test_dryrun.rb @@ -2,27 +2,16 @@ require 'fileutils' require 'test/unit' -require_relative 'clobber' +require_relative 'visibility_tests' class TestFileUtilsDryRun < Test::Unit::TestCase include FileUtils::DryRun - include TestFileUtils::Clobber + include TestFileUtils::Visibility - FileUtils::METHODS.each do |m| - define_method "test_singleton_visibility_#{m}" do - assert_equal true, FileUtils::DryRun.respond_to?(m, true), - "FileUtils::DryRun.#{m} not defined" - assert_equal true, FileUtils::DryRun.respond_to?(m, false), - "FileUtils::DryRun.#{m} not public" - end - - define_method "test_instance_visibility_#{m}" do - assert_equal true, respond_to?(m, true), - "FileUtils::DryRun\##{m} is not defined" - assert_equal true, FileUtils::DryRun.private_method_defined?(m), - "FileUtils::DryRun\##{m} is not private" - end + def setup + super + @fu_module = FileUtils::DryRun end end diff --git a/test/fileutils/test_nowrite.rb b/test/fileutils/test_nowrite.rb index 002f25620d..946eed3b6c 100644 --- a/test/fileutils/test_nowrite.rb +++ b/test/fileutils/test_nowrite.rb @@ -2,27 +2,16 @@ require 'fileutils' require 'test/unit' -require_relative 'clobber' +require_relative 'visibility_tests' class TestFileUtilsNoWrite < Test::Unit::TestCase include FileUtils::NoWrite - include TestFileUtils::Clobber + include TestFileUtils::Visibility - FileUtils::METHODS.each do |m| - define_method "test_singleton_visibility_#{m}" do - assert_equal true, FileUtils::NoWrite.respond_to?(m, true), - "FileUtils::NoWrite.#{m} is not defined" - assert_equal true, FileUtils::NoWrite.respond_to?(m, false), - "FileUtils::NoWrite.#{m} is not public" - end - - define_method "test_instance_visibility_#{m}" do - assert_equal true, respond_to?(m, true), - "FileUtils::NoWrite\##{m} is not defined" - assert_equal true, FileUtils::NoWrite.private_method_defined?(m), - "FileUtils::NoWrite\##{m} is not private" - end + def setup + super + @fu_module = FileUtils::NoWrite end end diff --git a/test/fileutils/test_verbose.rb b/test/fileutils/test_verbose.rb index cf46fa9260..fb069bcf14 100644 --- a/test/fileutils/test_verbose.rb +++ b/test/fileutils/test_verbose.rb @@ -2,25 +2,16 @@ require 'test/unit' require 'fileutils' +require_relative 'visibility_tests' class TestFileUtilsVerbose < Test::Unit::TestCase include FileUtils::Verbose + include TestFileUtils::Visibility - FileUtils::METHODS.each do |m| - define_method "test_singleton_visibility_#{m}" do - assert_equal true, FileUtils::Verbose.respond_to?(m, true), - "FileUtils::Verbose.#{m} is not defined" - assert_equal true, FileUtils::Verbose.respond_to?(m, false), - "FileUtils::Verbose.#{m} is not public" - end - - define_method "test_visibility_#{m}" do - assert_equal true, respond_to?(m, true), - "FileUtils::Verbose\##{m} is not defined" - assert_equal true, FileUtils::Verbose.private_method_defined?(m), - "FileUtils::Verbose\##{m} is not private" - end + def setup + super + @fu_module = FileUtils::Verbose end end diff --git a/test/fileutils/visibility_tests.rb b/test/fileutils/visibility_tests.rb new file mode 100644 index 0000000000..a140614674 --- /dev/null +++ b/test/fileutils/visibility_tests.rb @@ -0,0 +1,41 @@ +require 'test/unit' +require 'fileutils' + +class TestFileUtils < Test::Unit::TestCase +end + +## +# These tests are reused in the FileUtils::Verbose, FileUtils::NoWrite and +# FileUtils::DryRun tests + +module TestFileUtils::Visibility + + FileUtils::METHODS.each do |m| + define_method "test_singleton_visibility_#{m}" do + assert @fu_module.respond_to?(m, true), + "FileUtils::Verbose.#{m} is not defined" + assert @fu_module.respond_to?(m, false), + "FileUtils::Verbose.#{m} is not public" + end + + define_method "test_visibility_#{m}" do + assert respond_to?(m, true), + "FileUtils::Verbose\##{m} is not defined" + assert @fu_module.private_method_defined?(m), + "FileUtils::Verbose\##{m} is not private" + end + end + + FileUtils::StreamUtils_.private_instance_methods.each do |m| + define_method "test_singleton_visibility_#{m}" do + assert @fu_module.respond_to?(m, true), + "FileUtils::Verbose\##{m} is not defined" + end + + define_method "test_visibility_#{m}" do + assert respond_to?(m, true), + "FileUtils::Verbose\##{m} is not defined" + end + end + +end |