summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_source_list.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_source_list.rb')
-rw-r--r--test/rubygems/test_gem_source_list.rb87
1 files changed, 87 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_source_list.rb b/test/rubygems/test_gem_source_list.rb
new file mode 100644
index 0000000000..d6e253833e
--- /dev/null
+++ b/test/rubygems/test_gem_source_list.rb
@@ -0,0 +1,87 @@
+require 'rubygems/source_list'
+require 'rubygems/test_case'
+
+class TestGemSourceList < Gem::TestCase
+ def setup
+ super
+
+ @uri = "http://blah.com"
+ @source = Gem::Source.new(@uri)
+
+ @sl = Gem::SourceList.new
+ @sl << @source
+ end
+
+ def test_self_from
+ sl = Gem::SourceList.from [@uri]
+
+ assert_equal [Gem::Source.new(@uri)], sl.sources
+ end
+
+ def test_append
+ sl = Gem::SourceList.new
+ source = (sl << @uri)
+
+ assert_kind_of Gem::Source, source
+
+ assert_kind_of URI, source.uri
+ assert_equal source.uri.to_s, @uri
+
+ assert_equal [source], sl.sources
+ end
+
+ def test_replace
+ sl = Gem::SourceList.new
+ sl.replace [@uri]
+
+ assert_equal [@source], sl.sources
+ end
+
+ def test_each
+ @sl.each do |x|
+ assert_equal @uri, x
+ end
+ end
+
+ def test_each_source
+ @sl.each_source do |x|
+ assert_equal @source, x
+ end
+ end
+
+ def test_equal_to_another_list
+ sl2 = Gem::SourceList.new
+ sl2 << Gem::Source.new(@uri)
+
+ assert @sl == sl2, "lists not equal"
+ end
+
+ def test_equal_to_array
+ assert @sl == [@uri], "lists not equal"
+ end
+
+ def test_to_a
+ assert_equal @sl.to_a, [@uri]
+ end
+
+ def test_include_eh
+ assert @sl.include?(@uri), "string comparison not working"
+ assert @sl.include?(URI.parse(@uri)), "uri comparison not working"
+ end
+
+ def test_include_matches_a_source
+ assert @sl.include?(@source), "source comparison not working"
+ assert @sl.include?(Gem::Source.new(@uri)), "source comparison not working"
+ end
+
+ def test_delete
+ @sl.delete @uri
+ assert_equal @sl.sources, []
+ end
+
+ def test_delete_a_source
+ @sl.delete Gem::Source.new(@uri)
+ assert_equal @sl.sources, []
+ end
+
+end