summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_commands_specification_command.rb
diff options
context:
space:
mode:
authordrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-17 20:50:00 +0000
committerdrbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-17 20:50:00 +0000
commit22d9456b7917fe96fa81fd1d994073312753af8b (patch)
treebe157928ed84f75988ceb82a070797c3482b66a6 /test/rubygems/test_gem_commands_specification_command.rb
parent22263729af357eb86e8bc2165a9eaa6f25eec8a6 (diff)
* lib/rubygems: Update to RubyGems 1.8.22 plus r33517 and r35337 which
were ported to the rubygems git repository. See https://github.com/rubygems/rubygems/blob/1.8/History.txt for changes since 1.8.11. * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems/test_gem_commands_specification_command.rb')
-rw-r--r--test/rubygems/test_gem_commands_specification_command.rb98
1 files changed, 98 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_commands_specification_command.rb b/test/rubygems/test_gem_commands_specification_command.rb
index 03c4af6823..978c6fe194 100644
--- a/test/rubygems/test_gem_commands_specification_command.rb
+++ b/test/rubygems/test_gem_commands_specification_command.rb
@@ -43,6 +43,24 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
assert_equal '', @ui.error
end
+ def test_execute_all_conflicts_with_version
+ quick_spec 'foo', '0.0.1'
+ quick_spec 'foo', '0.0.2'
+
+ @cmd.options[:args] = %w[foo]
+ @cmd.options[:all] = true
+ @cmd.options[:version] = "1"
+
+ assert_raises Gem::MockGemUi::TermError do
+ use_ui @ui do
+ @cmd.execute
+ end
+ end
+
+ assert_equal '', @ui.output
+ assert_equal "ERROR: Specify --all or -v, not both\n", @ui.error
+ end
+
def test_execute_bad_name
@cmd.options[:args] = %w[foo]
@@ -122,6 +140,86 @@ class TestGemCommandsSpecificationCommand < Gem::TestCase
assert_match %r|name: foo|, @ui.output
end
+ def test_execute_remote_with_version
+ foo1 = quick_gem 'foo', "1"
+ foo2 = quick_gem 'foo', "2"
+
+ @fetcher = Gem::FakeFetcher.new
+ Gem::RemoteFetcher.fetcher = @fetcher
+
+ util_setup_spec_fetcher foo1, foo2
+
+ FileUtils.rm File.join(@gemhome, 'specifications', foo1.spec_name)
+ FileUtils.rm File.join(@gemhome, 'specifications', foo2.spec_name)
+
+ @cmd.options[:args] = %w[foo]
+ @cmd.options[:version] = "1"
+ @cmd.options[:domain] = :remote
+
+ use_ui @ui do
+ @cmd.execute
+ end
+
+ spec = Gem::Specification.from_yaml @ui.output
+
+ assert_equal Gem::Version.new("1"), spec.version
+ end
+
+ def test_execute_remote_without_prerelease
+ foo = new_spec 'foo', '2.0.0'
+ foo_pre = new_spec 'foo', '2.0.1.pre'
+
+ install_specs foo, foo_pre
+
+ @fetcher = Gem::FakeFetcher.new
+ Gem::RemoteFetcher.fetcher = @fetcher
+
+ util_setup_spec_fetcher foo
+ util_setup_spec_fetcher foo_pre
+
+ @cmd.options[:args] = %w[foo]
+ @cmd.options[:domain] = :remote
+
+ use_ui @ui do
+ @cmd.execute
+ end
+
+ assert_match %r|\A--- !ruby/object:Gem::Specification|, @ui.output
+ assert_match %r|name: foo|, @ui.output
+
+ spec = YAML.load @ui.output
+
+ assert_equal Gem::Version.new("2.0.0"), spec.version
+ end
+
+ def test_execute_remote_with_prerelease
+ foo = new_spec 'foo', '2.0.0'
+ foo_pre = new_spec 'foo', '2.0.1.pre'
+
+ install_specs foo, foo_pre
+
+ @fetcher = Gem::FakeFetcher.new
+ Gem::RemoteFetcher.fetcher = @fetcher
+
+ util_setup_spec_fetcher foo
+ util_setup_spec_fetcher foo_pre
+
+ @cmd.options[:args] = %w[foo]
+ @cmd.options[:domain] = :remote
+ @cmd.options[:prerelease] = true
+
+ use_ui @ui do
+ @cmd.execute
+ end
+
+ assert_match %r|\A--- !ruby/object:Gem::Specification|, @ui.output
+ assert_match %r|name: foo|, @ui.output
+
+ spec = YAML.load @ui.output
+
+ assert_equal Gem::Version.new("2.0.1.pre"), spec.version
+ end
+
def test_execute_ruby
foo = quick_spec 'foo'