require 'test/unit' def load_behavior_block(&block) eval("__FILE__", block.binding) end class TestLoad < Test::Unit::TestCase def test_require # Allow us to run MRI against non-Java dependent tests if RUBY_PLATFORM=~/java/ $ruby_init = false file = __FILE__ if (File::Separator == '\\') file.gsub!('\\\\', '/') end # Load jar file RubyInitTest.java require File::dirname(file) + "/RubyInitTest" assert($ruby_init) # JRUBY-1229, allow loading jar files without manifest assert_nothing_raised { require "test/jar_with_no_manifest.jar" } end assert require('test/requireTarget') assert !require('test/requireTarget') $loaded_foo_bar = false assert require('test/foo.bar') assert $loaded_foo_bar end def test_require_bogus assert_raises(LoadError) { require 'foo/' } assert_raises(LoadError) { require '' } # Yes, the following line is supposed to appear twice assert_raises(LoadError) { require 'NonExistantRequriedFile'} assert_raises(LoadError) { require 'NonExistantRequriedFile'} end def test_require_jar_should_make_its_scripts_accessible require 'test/jar_with_ruby_files' require 'hello_from_jar' assert "hi", $hello end def test_require_with_non_existent_jar_1 $:.unshift "file:/someHopefullyUnexistentJarFile.jar/" filename = File.join(File.dirname(__FILE__), "blargus1.rb") require_name = File.join(File.dirname(__FILE__), "blargus1") assert !defined?($_blargus_has_been_loaded_oh_yeah_baby_1) File.open(filename, "w") do |f| f.write <