PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/storyteller/test/file_analyser_test.rb

http://multimedia-storyteller.googlecode.com/
Ruby | 266 lines | 218 code | 48 blank | 0 comment | 0 complexity | 682c6e5ed3edb4cea2b66c10779fc756 MD5 | raw file
Possible License(s): LGPL-2.1
  1. require 'test/unit'
  2. require 'test/test_case'
  3. require 'file_analyser'
  4. class FileAnalyserTest < Test::Unit::TestCase
  5. def setup
  6. FileUtils.mkdir("empty_dir")
  7. FileUtils.mkdir("single_level_dir")
  8. File.open("single_level_dir/a.txt","a") { |file| file.puts "12" }
  9. File.open("single_level_dir/b.txt","a") { |file| file.puts "abc" }
  10. FileUtils.mkdir("multi_level_dir")
  11. FileUtils.mkdir("multi_level_dir/dir1")
  12. FileUtils.mkdir("multi_level_dir/dir2")
  13. FileUtils.mkdir("multi_level_dir/dir3")
  14. File.open("my.config","a") do |file|
  15. file.puts "#ignore=1"
  16. file.puts "one=1"
  17. file.puts "two=2"
  18. file.puts "two=3"
  19. file.puts "#ignore me too"
  20. end
  21. FileUtils.mkdir("root")
  22. FileUtils.mkdir("root/one")
  23. FileUtils.mkdir("root/two")
  24. FileUtils.mkdir("root/three")
  25. File.open("root/one/a.txt","a") { |file| file.puts "1" }
  26. File.open("root/one/b.txt","a") { |file| file.puts "12" }
  27. File.open("root/one/c.txt","a") { |file| file.puts "123" }
  28. File.open("root/two/d.txt","a") { |file| file.puts "1234" }
  29. File.open("root/two/e.txt","a") { |file| file.puts "12345" }
  30. File.open("root/three/f.txt","a") { |file| file.puts "123456" }
  31. File.open("root/three/g.txt","a") { |file| file.puts "1234567" }
  32. File.open("root/three/h.txt","a") { |file| file.puts "12345678" }
  33. File.open("multi_level_dir/a.txt","a") { |file| file.puts "1" }
  34. File.open("multi_level_dir/b.txt","a") { |file| file.puts "1" }
  35. File.open("multi_level_dir/dir1/c.txt","a") { |file| file.puts "1" }
  36. end
  37. def teardown
  38. FileUtils.rm_rf("empty_dir")
  39. FileUtils.rm_rf("single_level_dir")
  40. FileUtils.rm_rf("multi_level_dir")
  41. File.delete("my.config")
  42. FileUtils.rm_rf("root")
  43. end
  44. def test_files_in_recursive
  45. fa = FileAnalyser.new
  46. assert_equal 8, fa.files_in("root",true).length
  47. end
  48. def test_files_in_not
  49. fa = FileAnalyser.new
  50. assert_equal 2, fa.files_in("multi_level_dir",false).length
  51. end
  52. def test__directories_in__unknown_directory
  53. fa = FileAnalyser.new
  54. all_directories = fa.directories_in("blah")
  55. assert_equal 0, all_directories.length
  56. end
  57. def test__directories_in__empty_directory
  58. fa = FileAnalyser.new
  59. all_directories = fa.directories_in("empty_dir")
  60. assert_equal 0, all_directories.length
  61. end
  62. def test__directories_in__no_directory
  63. fa = FileAnalyser.new
  64. all_directories = fa.directories_in("single_level_dir")
  65. assert_equal 0, all_directories.length
  66. end
  67. def test__directories_in__has_directories
  68. fa = FileAnalyser.new
  69. all_directories = fa.directories_in("multi_level_dir")
  70. assert_equal 3, all_directories.length
  71. assert_equal ["multi_level_dir/dir3","multi_level_dir/dir2","multi_level_dir/dir1"], all_directories
  72. end
  73. def test__directories_in__ignore
  74. fa = FileAnalyser.new
  75. fa.ignoring = ["dir2","dir3"]
  76. all_directories = fa.directories_in("multi_level_dir")
  77. assert_equal 1, all_directories.length
  78. assert_equal ["multi_level_dir/dir1"], all_directories
  79. end
  80. def test__files_in__unknown_directory
  81. fa = FileAnalyser.new
  82. all_files = fa.files_in("blah")
  83. assert_equal 0, all_files.length
  84. end
  85. def test__files_in__empty_directory
  86. fa = FileAnalyser.new
  87. all_files = fa.files_in("empty_dir")
  88. assert_equal 0, all_files.length
  89. end
  90. def test__files_in__has_files
  91. fa = FileAnalyser.new
  92. all_files = fa.files_in("single_level_dir")
  93. assert_equal 2, all_files.length
  94. assert_equal ["single_level_dir/b.txt","single_level_dir/a.txt"], all_files
  95. end
  96. def test__files_in__ignore
  97. fa = FileAnalyser.new
  98. fa.ignoring << "b.txt"
  99. all_files = fa.files_in("single_level_dir")
  100. assert_equal 1, all_files.length
  101. assert_equal ["single_level_dir/a.txt"], all_files
  102. end
  103. def test_load_config_and_properties_of
  104. fa = FileAnalyser.new
  105. fa.load_config("my.config")
  106. assert_equal "1", fa.property_of("one")
  107. assert_equal "2", fa.property_of("two")
  108. assert_equal ["1"], fa.properties_of("one")
  109. assert_equal ["2","3"], fa.properties_of("two")
  110. end
  111. def test_properties_of_unknown
  112. fa = FileAnalyser.new
  113. assert_equal nil, fa.property_of("three")
  114. assert_equal [], fa.properties_of("three")
  115. fa.load_config("my.config")
  116. assert_equal nil, fa.property_of("three")
  117. assert_equal [], fa.properties_of("three")
  118. end
  119. def test_add_property_no_config_file_loaded
  120. fa = FileAnalyser.new
  121. assert_equal false, fa.add_property("a","1")
  122. end
  123. def test_add_property_unknown_config_file_loaded
  124. fa = FileAnalyser.new
  125. fa.load_config("blah.config")
  126. assert_equal false, fa.add_property("a","1")
  127. end
  128. def test_add_property
  129. fa = FileAnalyser.new
  130. fa.load_config("my.config")
  131. fa.add_property("one","11")
  132. fa.add_property("three","3")
  133. fa = FileAnalyser.new
  134. fa.load_config("my.config")
  135. assert_equal "3", fa.property_of("three")
  136. assert_equal ["1","11"], fa.properties_of("one")
  137. end
  138. def test_size_of_nil
  139. fa = FileAnalyser.new
  140. assert_equal 0, fa.size_of(nil)
  141. assert_equal 0, fa.size_of("unknown")
  142. end
  143. def test_size_of_file
  144. fa = FileAnalyser.new
  145. assert_equal_one_of 3, 4, fa.size_of("single_level_dir/a.txt")
  146. assert_equal_one_of 4, 5, fa.size_of("single_level_dir/b.txt")
  147. end
  148. def test_size_of_single_directory
  149. fa = FileAnalyser.new
  150. assert_equal_one_of 2, 3, fa.size_of("root/one/a.txt")
  151. assert_equal_one_of 3, 4, fa.size_of("root/one/b.txt")
  152. assert_equal_one_of 4, 5, fa.size_of("root/one/c.txt")
  153. assert_equal_one_of 5, 6, fa.size_of("root/two/d.txt")
  154. assert_equal_one_of 6, 7, fa.size_of("root/two/e.txt")
  155. assert_equal_one_of 7, 8, fa.size_of("root/three/f.txt")
  156. assert_equal_one_of 8, 9, fa.size_of("root/three/g.txt")
  157. assert_equal_one_of 9, 10, fa.size_of("root/three/h.txt")
  158. assert_equal_one_of 179, 12, fa.size_of("root/one")
  159. assert_equal_one_of 147, 13, fa.size_of("root/two")
  160. assert_equal_one_of 194, 27, fa.size_of("root/three")
  161. assert_equal_one_of 690, 52, fa.size_of("root")
  162. end
  163. def test_merge
  164. assert_equal "root\\a.txt", FileAnalyser.merge("root", "a.txt")
  165. assert_equal "root/a.txt", FileAnalyser.merge("root/", "a.txt")
  166. assert_equal "root\\a.txt", FileAnalyser.merge("root", "/a.txt")
  167. assert_equal "root/a.txt", FileAnalyser.merge("root/", "/a.txt")
  168. assert_equal "root\\a.txt", FileAnalyser.merge("root", "a.txt")
  169. assert_equal "root\\a.txt", FileAnalyser.merge("root\\", "a.txt")
  170. assert_equal "root\\a.txt", FileAnalyser.merge("root", "\\a.txt")
  171. assert_equal "root\\a.txt", FileAnalyser.merge("root\\", "\\a.txt")
  172. end
  173. def test_file_delimiter?
  174. assert_equal true, FileAnalyser.file_delimiter?("/")
  175. assert_equal true, FileAnalyser.file_delimiter?("\\")
  176. assert_equal false, FileAnalyser.file_delimiter?("a")
  177. end
  178. def test_file_delimiter_for
  179. assert_equal "\\", FileAnalyser.file_delimiter_for(nil)
  180. assert_equal "\\", FileAnalyser.file_delimiter_for("")
  181. assert_equal "\\", FileAnalyser.file_delimiter_for("blah")
  182. assert_equal "\\", FileAnalyser.file_delimiter_for("blah\\")
  183. assert_equal "\\", FileAnalyser.file_delimiter_for("blah\\more")
  184. assert_equal "/", FileAnalyser.file_delimiter_for("blah/")
  185. assert_equal "/", FileAnalyser.file_delimiter_for("blah\\more/")
  186. end
  187. def test_fix_absolute_directory
  188. fa = FileAnalyser.new
  189. assert_equal "root/blah", FileAnalyser.fix_absolute_directory("root/blah")
  190. assert_equal "root/blah", FileAnalyser.fix_absolute_directory("root/blah/")
  191. assert_equal "root", FileAnalyser.fix_absolute_directory("root\\")
  192. assert_equal "root\\blah", FileAnalyser.fix_absolute_directory("root\\blah")
  193. assert_equal "root\\blah", FileAnalyser.fix_absolute_directory("root\\blah\\")
  194. end
  195. def test_fix_relative_file
  196. fa = FileAnalyser.new
  197. assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("/root/blah.txt")
  198. assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("root/blah.txt")
  199. assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("root/blah.txt/")
  200. assert_equal "root/blah.txt", FileAnalyser.fix_relative_file("root/blah.txt\\")
  201. end
  202. def test_rename_file_extension
  203. fa = FileAnalyser.new
  204. assert_equal "root/blah.rb", FileAnalyser.rename_file_extension("root/blah.txt",".rb")
  205. assert_equal "root/blah.rb", FileAnalyser.rename_file_extension("root/blah",".rb")
  206. assert_equal "root/blah.rb", FileAnalyser.rename_file_extension("root/blah.rb",".rb")
  207. end
  208. def test_image?
  209. fa = FileAnalyser.new
  210. assert_equal false, FileAnalyser.image?("root/blah.txt")
  211. assert_equal true, FileAnalyser.image?("root/blah.jpg")
  212. assert_equal true, FileAnalyser.image?("root/blah.gif")
  213. assert_equal false, FileAnalyser.image?("root/blah")
  214. assert_equal false, FileAnalyser.image?("tmp_dir/mytrip")
  215. assert_equal true, FileAnalyser.image?("root/blah.JPG")
  216. assert_equal true, FileAnalyser.image?("root/blah.GIF")
  217. end
  218. end