1require 'rubygems/test_case' 2require 'rubygems' 3require 'rubygems/package_task' 4 5class TestGemPackageTask < Gem::TestCase 6 7 def setup 8 super 9 10 Rake.application = Rake::Application.new 11 RakeFileUtils.verbose_flag = false 12 end 13 14 def test_gem_package 15 gem = Gem::Specification.new do |g| 16 g.name = "pkgr" 17 g.version = "1.2.3" 18 19 g.authors = %w[author] 20 g.files = %w[x] 21 g.summary = 'summary' 22 end 23 24 pkg = Gem::PackageTask.new(gem) do |p| 25 p.package_files << "y" 26 end 27 28 assert_equal %w[x y], pkg.package_files 29 30 Dir.chdir @tempdir do 31 FileUtils.touch 'x' 32 FileUtils.touch 'y' 33 34 Rake.application['package'].invoke 35 36 assert_path_exists 'pkg/pkgr-1.2.3.gem' 37 end 38 end 39 40 def test_gem_package_with_current_platform 41 gem = Gem::Specification.new do |g| 42 g.name = "pkgr" 43 g.version = "1.2.3" 44 g.files = Rake::FileList["x"].resolve 45 g.platform = Gem::Platform::CURRENT 46 end 47 pkg = Gem::PackageTask.new(gem) do |p| 48 p.package_files << "y" 49 end 50 assert_equal ["x", "y"], pkg.package_files 51 end 52 53 def test_gem_package_with_ruby_platform 54 gem = Gem::Specification.new do |g| 55 g.name = "pkgr" 56 g.version = "1.2.3" 57 g.files = Rake::FileList["x"].resolve 58 g.platform = Gem::Platform::RUBY 59 end 60 pkg = Gem::PackageTask.new(gem) do |p| 61 p.package_files << "y" 62 end 63 assert_equal ["x", "y"], pkg.package_files 64 end 65 66 def test_package_dir_path 67 gem = Gem::Specification.new do |g| 68 g.name = 'nokogiri' 69 g.version = '1.5.0' 70 g.platform = 'java' 71 end 72 73 pkg = Gem::PackageTask.new gem 74 pkg.define 75 76 assert_equal 'pkg/nokogiri-1.5.0-java', pkg.package_dir_path 77 end 78 79end 80 81