Sha256: 35572e8468449b86773394d5012a03d1ec184ffa9f880c1bc4256b9b581123f2

Contents?: true

Size: 1.17 KB

Versions: 55

Compression:

Stored size: 1.17 KB

Contents

# -*- ruby encoding: utf-8 -*-

require 'mime/types'
require 'minitest_helper'

describe MIME::Types, 'lazy loading' do
  def setup
    ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = 'true'
  end

  def teardown
    reset_mime_types
    ENV.delete('RUBY_MIME_TYPES_LAZY_LOAD')
  end

  def reset_mime_types
    MIME::Types.instance_variable_set(:@__types__, nil)
    MIME::Types.send(:load_default_mime_types)
  end

  describe '.lazy_load?' do
    it 'is true when RUBY_MIME_TYPES_LAZY_LOAD is set' do
      assert_equal true, MIME::Types.send(:lazy_load?)
    end

    it 'is nil when RUBY_MIME_TYPES_LAZY_LOAD is unset' do
      ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = nil
      assert_equal nil, MIME::Types.send(:lazy_load?)
    end

    it 'is false when RUBY_MIME_TYPES_LAZY_LOAD is false' do
      ENV['RUBY_MIME_TYPES_LAZY_LOAD'] = 'false'
      assert_equal false, MIME::Types.send(:lazy_load?)
    end
  end

  it 'loads lazily when RUBY_MIME_TYPES_LAZY_LOAD is set' do
    MIME::Types.instance_variable_set(:@__types__, nil)
    assert_nil MIME::Types.instance_variable_get(:@__types__)
    refute_nil MIME::Types['text/html'].first
    refute_nil MIME::Types.instance_variable_get(:@__types__)
  end
end

Version data entries

55 entries across 51 versions & 9 rubygems

Version Path
kinetic_sdk-5.0.18 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.17 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.16 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.15 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.14 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.13 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.12 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.11 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.10 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.9 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.8 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.7 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.6 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.5 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.4 gems/mime-types-3.1/test/test_mime_types_lazy.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.4.0/gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.3 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.2 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.2.beta.4 gems/mime-types-3.1/test/test_mime_types_lazy.rb
kinetic_sdk-5.0.2.beta.3 gems/mime-types-3.1/test/test_mime_types_lazy.rb