File tree Expand file tree Collapse file tree 2 files changed +30
-2
lines changed
Expand file tree Collapse file tree 2 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -202,8 +202,10 @@ def execute
202202 end
203203
204204 def remove_source ( source_uri ) # :nodoc:
205- if Gem . sources . include? source_uri
206- Gem . sources . delete source_uri
205+ source = Gem ::Source . new source_uri
206+
207+ if Gem . sources . include? source
208+ Gem . sources . delete source
207209 Gem . configuration . write
208210
209211 say "#{ source_uri } removed from sources"
Original file line number Diff line number Diff line change @@ -428,6 +428,32 @@ def test_execute_remove_not_present
428428 assert_equal "" , @ui . error
429429 end
430430
431+ def test_execute_remove_redundant_source_trailing_slash
432+ repo_with_slash = "http://sample.repo/"
433+
434+ Gem . configuration . sources = [ repo_with_slash ]
435+
436+ setup_fake_source ( repo_with_slash )
437+
438+ repo_without_slash = repo_with_slash . delete_suffix ( "/" )
439+
440+ @cmd . handle_options %W[ --remove #{ repo_without_slash } ]
441+ use_ui @ui do
442+ @cmd . execute
443+ end
444+ source = Gem ::Source . new repo_without_slash
445+ assert_equal false , Gem . sources . include? ( source )
446+
447+ expected = <<-EOF
448+ #{ repo_without_slash } removed from sources
449+ EOF
450+
451+ assert_equal expected , @ui . output
452+ assert_equal "" , @ui . error
453+ ensure
454+ Gem . configuration . sources = nil
455+ end
456+
431457 def test_execute_update
432458 @cmd . handle_options %w[ --update ]
433459
You can’t perform that action at this time.
0 commit comments