2016-02-01 15:43:26 +03:00
# frozen_string_literal: true
2011-01-29 02:46:47 +03:00
require 'rubygems/test_case'
2007-11-10 10:48:56 +03:00
require 'rubygems/indexer'
require 'rubygems/commands/generate_index_command'
2019-12-13 14:19:08 +03:00
unless defined? ( Builder :: XChar )
warn " generate_index tests are being skipped. Install builder gem. "
end
2011-01-29 02:46:47 +03:00
class TestGemCommandsGenerateIndexCommand < Gem :: TestCase
2007-11-10 10:48:56 +03:00
def setup
super
@cmd = Gem :: Commands :: GenerateIndexCommand . new
@cmd . options [ :directory ] = @gemhome
end
def test_execute
use_ui @ui do
@cmd . execute
end
2012-11-29 10:52:18 +04:00
specs = File . join @gemhome , " specs.4.8.gz "
2007-11-10 10:48:56 +03:00
2012-11-29 10:52:18 +04:00
assert File . exist? ( specs ) , specs
2009-06-10 01:38:59 +04:00
end
2019-12-13 14:19:08 +03:00
def test_execute_no_modern
@cmd . options [ :modern ] = false
use_ui @ui do
@cmd . execute
end
specs = File . join @gemhome , " specs.4.8.gz "
assert File . exist? ( specs ) , specs
end
2009-06-10 01:38:59 +04:00
def test_handle_options_directory
return if win_platform?
refute_equal '/nonexistent' , @cmd . options [ :directory ]
@cmd . handle_options %w[ --directory /nonexistent ]
assert_equal '/nonexistent' , @cmd . options [ :directory ]
end
def test_handle_options_directory_windows
return unless win_platform?
refute_equal '/nonexistent' , @cmd . options [ :directory ]
@cmd . handle_options %w[ --directory C:/nonexistent ]
assert_equal 'C:/nonexistent' , @cmd . options [ :directory ]
end
def test_handle_options_update
@cmd . handle_options %w[ --update ]
assert @cmd . options [ :update ]
end
2019-12-13 14:19:08 +03:00
def test_handle_options_modern
use_ui @ui do
@cmd . handle_options %w[ --modern ]
end
assert_equal \
" WARNING: The \" --modern \" option has been deprecated and will be removed in Rubygems 4.0. Modern indexes (specs, latest_specs, and prerelease_specs) are always generated, so this option is not needed. \n " ,
@ui . error
end
def test_handle_options_no_modern
use_ui @ui do
@cmd . handle_options %w[ --no-modern ]
end
assert_equal \
" WARNING: The \" --no-modern \" option has been deprecated and will be removed in Rubygems 4.0. The `--no-modern` option is currently ignored. Modern indexes (specs, latest_specs, and prerelease_specs) are always generated. \n " ,
@ui . error
end
end if defined? ( Builder :: XChar )