1require File.expand_path('../helper', __FILE__) 2require 'fileutils' 3 4class TestRakeDirectoryTask < Rake::TestCase 5 include Rake 6 7 def test_directory 8 desc "DESC" 9 10 directory "a/b/c" 11 12 assert_equal FileCreationTask, Task["a"].class 13 assert_equal FileCreationTask, Task["a/b"].class 14 assert_equal FileCreationTask, Task["a/b/c"].class 15 16 assert_nil Task["a"].comment 17 assert_nil Task["a/b"].comment 18 assert_equal "DESC", Task["a/b/c"].comment 19 20 verbose(false) { 21 Task['a/b'].invoke 22 } 23 24 assert File.exist?("a/b") 25 refute File.exist?("a/b/c") 26 end 27 28 if Rake::Win32.windows? 29 def test_directory_win32 30 desc "WIN32 DESC" 31 directory 'c:/a/b/c' 32 assert_equal FileTask, Task['c:'].class 33 assert_equal FileCreationTask, Task['c:/a'].class 34 assert_equal FileCreationTask, Task['c:/a/b'].class 35 assert_equal FileCreationTask, Task['c:/a/b/c'].class 36 assert_nil Task['c:/'].comment 37 assert_equal "WIN32 DESC", Task['c:/a/b/c'].comment 38 assert_nil Task['c:/a/b'].comment 39 end 40 end 41 42 def test_can_use_blocks 43 runlist = [] 44 45 t1 = directory("a/b/c" => :t2) { |t| runlist << t.name } 46 task(:t2) { |t| runlist << t.name } 47 48 verbose(false) { 49 t1.invoke 50 } 51 52 assert_equal Task["a/b/c"], t1 53 assert_equal FileCreationTask, Task["a/b/c"].class 54 assert_equal ["t2", "a/b/c"], runlist 55 assert File.directory?("a/b/c") 56 end 57end 58