1require File.expand_path('../helper', __FILE__)
2require 'date'
3require 'time'
4require 'rake/contrib/ftptools'
5
6class FakeDate
7  def self.today
8    Date.new(2003,10,3)
9  end
10  def self.now
11    Time.local(2003,10,3,12,00,00)
12  end
13end
14
15class TestRakeFtpFile < Rake::TestCase
16
17  def setup
18    super
19
20    Rake::FtpFile.class_eval { @date_class = FakeDate; @time_class = FakeDate }
21  end
22
23  def test_general
24    file = Rake::FtpFile.new("here", "-rw-r--r--   1 a279376  develop   121770 Mar  6 14:50 wiki.pl")
25    assert_equal "wiki.pl", file.name
26    assert_equal "here/wiki.pl", file.path
27    assert_equal "a279376", file.owner
28    assert_equal "develop", file.group
29    assert_equal 0644, file.mode
30    assert_equal 121770, file.size
31    assert_equal Time.mktime(2003,3,6,14,50,0,0), file.time
32    assert ! file.directory?
33    assert ! file.symlink?
34  end
35
36  def test_far_date
37    file = Rake::FtpFile.new(".", "drwxr-xr-x   3 a279376  develop     4096 Nov 26  2001 vss")
38    assert_equal Time.mktime(2001,11,26,0,0,0,0), file.time
39  end
40
41  def test_close_date
42    file = Rake::FtpFile.new(".", "drwxr-xr-x   3 a279376  develop     4096 Nov 26 15:35 vss")
43    assert_equal Time.mktime(2002,11,26,15,35,0,0), file.time
44  end
45
46  def test_directory
47    file = Rake::FtpFile.new(".", "drwxrwxr-x   9 a279376  develop     4096 Mar 13 14:32 working")
48    assert file.directory?
49    assert !file.symlink?
50  end
51
52  def test_symlink
53    file = Rake::FtpFile.new(".", "lrwxrwxrwx   1 a279376  develop       64 Mar 26  2002 xtrac -> /home/a279376/working/ics/development/java/com/fmr/fwp/ics/xtrac")
54    assert_equal 'xtrac', file.name
55    assert file.symlink?
56    assert !file.directory?
57  end
58end
59
60