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