Sha256: eb1397e8f8d9ee96bd840b7c8602e080c9bca456cb4b1ddbd583ef6941da0ac1

Contents?: true

Size: 1.2 KB

Versions: 70

Compression:

Stored size: 1.2 KB

Contents

require File.dirname(__FILE__) + '/test_helper.rb'

class TestPolyglot < Test::Unit::TestCase
  TEST_FILE = 'test_file.stub'
  TEST_REQUIRES_FILE = 'test_requires_file.eval'
  class StubLoader
    def self.load(*args); end
  end
  class EvalLoader
    def self.load(file)
      File.open(file) do |source_file|
        source = source_file.read
        eval source
      end
    end
  end

  def setup
    Polyglot.register('stub', StubLoader)
    File.open(TEST_FILE, 'w') { |f| f.puts "Test data" }
    Polyglot.register('eval', EvalLoader)
    File.open(TEST_REQUIRES_FILE, 'w') { |f| f.puts "require 'nonexistent_file'" }
  end

  def teardown
    File.delete(TEST_FILE)
    File.delete(TEST_REQUIRES_FILE)
  end
  
  def test_load_by_absolute_path
    full_path = File.expand_path(TEST_FILE.sub(/.stub$/, ''))
    assert_nothing_raised { require full_path }
  end
  
  def test_load_error
    exception = assert_raise(LoadError) { require "nonexistent_file" }
    assert_match(/nonexistent_file/, exception.message)
  end
  
  def test_load_error_inside_poly_file
    exception = assert_raise(LoadError) { require TEST_REQUIRES_FILE.sub(/.eval$/, '') }
    assert_match(/nonexistent_file/, exception.message)
  end
end

Version data entries

70 entries across 40 versions & 4 rubygems

Version Path
depengine-0.0.31 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.31 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.30 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.30 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.29 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.29 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.28 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.28 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.27 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.27 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.26 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.26 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.25 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.25 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.24 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.24 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.23 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.23 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.22 etc/isolate/ruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb
depengine-0.0.22 etc/isolate/jruby-1.8/gems/polyglot-0.3.1/test/test_polyglot.rb