activeldap 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/CHANGES +17 -0
  2. data/README +7 -1
  3. data/Rakefile +2 -1
  4. data/benchmark/bench-al.rb +3 -3
  5. data/examples/al-admin/app/helpers/users_helper.rb +1 -1
  6. data/examples/al-admin/config/environment.rb +4 -3
  7. data/examples/al-admin/config/initializers/gettext.rb +1 -0
  8. data/examples/al-admin/config/session_secret.txt +1 -1
  9. data/examples/al-admin/po/al-admin.pot +344 -0
  10. data/examples/al-admin/public/images/active-ldap.png +0 -0
  11. data/examples/al-admin/vendor/locale_rails/.gitignore +6 -0
  12. data/examples/al-admin/vendor/locale_rails/COPYING +56 -0
  13. data/examples/al-admin/vendor/locale_rails/ChangeLog +35 -0
  14. data/examples/al-admin/vendor/locale_rails/README.rdoc +62 -0
  15. data/examples/al-admin/vendor/locale_rails/Rakefile +73 -0
  16. data/examples/al-admin/vendor/locale_rails/lib/locale_rails.rb +18 -0
  17. data/examples/al-admin/vendor/locale_rails/lib/locale_rails/action_controller.rb +15 -0
  18. data/examples/al-admin/vendor/locale_rails/lib/locale_rails/action_controller/base.rb +82 -0
  19. data/examples/al-admin/vendor/locale_rails/lib/locale_rails/action_controller/caching.rb +51 -0
  20. data/examples/al-admin/vendor/locale_rails/lib/locale_rails/action_controller/test_process.rb +44 -0
  21. data/examples/al-admin/vendor/locale_rails/lib/locale_rails/action_view.rb +53 -0
  22. data/examples/al-admin/vendor/locale_rails/lib/locale_rails/i18n.rb +67 -0
  23. data/examples/al-admin/vendor/locale_rails/lib/locale_rails/version.rb +4 -0
  24. data/examples/al-admin/vendor/locale_rails/sample/README +22 -0
  25. data/examples/al-admin/vendor/locale_rails/sample/Rakefile +10 -0
  26. data/examples/al-admin/vendor/locale_rails/sample/app/controllers/application.rb +42 -0
  27. data/examples/al-admin/vendor/locale_rails/sample/app/controllers/samples_controller.rb +30 -0
  28. data/examples/al-admin/vendor/locale_rails/sample/app/helpers/application_helper.rb +3 -0
  29. data/examples/al-admin/vendor/locale_rails/sample/app/views/layouts/samples.html.erb +20 -0
  30. data/examples/al-admin/vendor/locale_rails/sample/app/views/samples/_part.html.erb +68 -0
  31. data/examples/al-admin/vendor/locale_rails/sample/app/views/samples/_part_nl.html.erb +2 -0
  32. data/examples/al-admin/vendor/locale_rails/sample/app/views/samples/cached_action.html.erb +6 -0
  33. data/examples/al-admin/vendor/locale_rails/sample/app/views/samples/index.html.erb +33 -0
  34. data/examples/al-admin/vendor/locale_rails/sample/app/views/samples/index.pt.html.erb +16 -0
  35. data/examples/al-admin/vendor/locale_rails/sample/app/views/samples/index_uz_UZ.html.erb +16 -0
  36. data/examples/al-admin/vendor/locale_rails/sample/config/boot.rb +109 -0
  37. data/examples/al-admin/vendor/locale_rails/sample/config/environment.rb +25 -0
  38. data/examples/al-admin/vendor/locale_rails/sample/config/environments/development.rb +17 -0
  39. data/examples/al-admin/vendor/locale_rails/sample/config/environments/production.rb +24 -0
  40. data/examples/al-admin/vendor/locale_rails/sample/config/environments/test.rb +22 -0
  41. data/examples/al-admin/vendor/locale_rails/sample/config/initializers/inflections.rb +10 -0
  42. data/examples/al-admin/vendor/locale_rails/sample/config/initializers/mime_types.rb +5 -0
  43. data/examples/al-admin/vendor/locale_rails/sample/config/initializers/new_rails_defaults.rb +17 -0
  44. data/examples/al-admin/vendor/locale_rails/sample/config/locales/en.yml +2 -0
  45. data/examples/al-admin/vendor/locale_rails/sample/config/locales/ja.yml +2 -0
  46. data/examples/al-admin/vendor/locale_rails/sample/config/routes.rb +13 -0
  47. data/examples/al-admin/vendor/locale_rails/sample/db/schema.rb +10 -0
  48. data/examples/al-admin/vendor/locale_rails/sample/public/404.html +30 -0
  49. data/examples/al-admin/vendor/locale_rails/sample/public/422.html +30 -0
  50. data/examples/al-admin/vendor/locale_rails/sample/public/500.html +33 -0
  51. data/examples/al-admin/vendor/locale_rails/sample/public/dispatch.cgi +10 -0
  52. data/examples/al-admin/vendor/locale_rails/sample/public/dispatch.fcgi +24 -0
  53. data/examples/al-admin/vendor/locale_rails/sample/public/dispatch.rb +10 -0
  54. data/examples/al-admin/vendor/locale_rails/sample/public/favicon.ico +0 -0
  55. data/examples/al-admin/vendor/locale_rails/sample/public/images/rails.png +0 -0
  56. data/examples/al-admin/vendor/locale_rails/sample/public/javascripts/application.js +2 -0
  57. data/examples/al-admin/vendor/locale_rails/sample/public/javascripts/controls.js +963 -0
  58. data/examples/al-admin/vendor/locale_rails/sample/public/javascripts/dragdrop.js +972 -0
  59. data/examples/al-admin/vendor/locale_rails/sample/public/javascripts/effects.js +1120 -0
  60. data/examples/al-admin/vendor/locale_rails/sample/public/javascripts/prototype.js +4221 -0
  61. data/examples/al-admin/vendor/locale_rails/sample/public/robots.txt +5 -0
  62. data/examples/al-admin/vendor/locale_rails/sample/public/stylesheets/locale.css +81 -0
  63. data/examples/al-admin/vendor/locale_rails/sample/public/stylesheets/scaffold.css +74 -0
  64. data/examples/al-admin/vendor/locale_rails/sample/script/about +4 -0
  65. data/examples/al-admin/vendor/locale_rails/sample/script/console +3 -0
  66. data/examples/al-admin/vendor/locale_rails/sample/script/dbconsole +3 -0
  67. data/examples/al-admin/vendor/locale_rails/sample/script/destroy +3 -0
  68. data/examples/al-admin/vendor/locale_rails/sample/script/generate +3 -0
  69. data/examples/al-admin/vendor/locale_rails/sample/script/performance/benchmarker +3 -0
  70. data/examples/al-admin/vendor/locale_rails/sample/script/performance/profiler +3 -0
  71. data/examples/al-admin/vendor/locale_rails/sample/script/performance/request +3 -0
  72. data/examples/al-admin/vendor/locale_rails/sample/script/plugin +3 -0
  73. data/examples/al-admin/vendor/locale_rails/sample/script/process/inspector +3 -0
  74. data/examples/al-admin/vendor/locale_rails/sample/script/process/reaper +3 -0
  75. data/examples/al-admin/vendor/locale_rails/sample/script/process/spawner +3 -0
  76. data/examples/al-admin/vendor/locale_rails/sample/script/runner +3 -0
  77. data/examples/al-admin/vendor/locale_rails/sample/script/server +3 -0
  78. data/examples/al-admin/vendor/locale_rails/sample/test/performance/browsing_test.rb +9 -0
  79. data/examples/al-admin/vendor/locale_rails/sample/test/test_helper.rb +38 -0
  80. data/examples/al-admin/vendor/locale_rails/test/README +243 -0
  81. data/examples/al-admin/vendor/locale_rails/test/Rakefile +10 -0
  82. data/examples/al-admin/vendor/locale_rails/test/app/controllers/application_controller.rb +10 -0
  83. data/examples/al-admin/vendor/locale_rails/test/app/controllers/articles_controller.rb +17 -0
  84. data/examples/al-admin/vendor/locale_rails/test/app/helpers/application_helper.rb +3 -0
  85. data/examples/al-admin/vendor/locale_rails/test/app/views/articles/index.html.erb +1 -0
  86. data/examples/al-admin/vendor/locale_rails/test/app/views/articles/index_de.html.erb +1 -0
  87. data/examples/al-admin/vendor/locale_rails/test/app/views/articles/index_fr_FR.html.erb +1 -0
  88. data/examples/al-admin/vendor/locale_rails/test/app/views/articles/index_ja.html.erb +1 -0
  89. data/examples/al-admin/vendor/locale_rails/test/app/views/articles/list.html.erb +1 -0
  90. data/examples/al-admin/vendor/locale_rails/test/app/views/articles/show.html.erb +0 -0
  91. data/examples/al-admin/vendor/locale_rails/test/app/views/articles/show.js.rjs +0 -0
  92. data/examples/al-admin/vendor/locale_rails/test/config/boot.rb +110 -0
  93. data/examples/al-admin/vendor/locale_rails/test/config/environment.rb +42 -0
  94. data/examples/al-admin/vendor/locale_rails/test/config/environments/development.rb +17 -0
  95. data/examples/al-admin/vendor/locale_rails/test/config/environments/production.rb +28 -0
  96. data/examples/al-admin/vendor/locale_rails/test/config/environments/test.rb +35 -0
  97. data/examples/al-admin/vendor/locale_rails/test/config/initializers/backtrace_silencers.rb +7 -0
  98. data/examples/al-admin/vendor/locale_rails/test/config/initializers/inflections.rb +10 -0
  99. data/examples/al-admin/vendor/locale_rails/test/config/initializers/mime_types.rb +5 -0
  100. data/examples/al-admin/vendor/locale_rails/test/config/initializers/new_rails_defaults.rb +19 -0
  101. data/examples/al-admin/vendor/locale_rails/test/config/initializers/session_store.rb +15 -0
  102. data/examples/al-admin/vendor/locale_rails/test/config/locales/en.yml +5 -0
  103. data/examples/al-admin/vendor/locale_rails/test/config/routes.rb +46 -0
  104. data/examples/al-admin/vendor/locale_rails/test/db/schema.rb +0 -0
  105. data/examples/al-admin/vendor/locale_rails/test/public/404.html +30 -0
  106. data/examples/al-admin/vendor/locale_rails/test/public/422.html +30 -0
  107. data/examples/al-admin/vendor/locale_rails/test/public/500.html +30 -0
  108. data/examples/al-admin/vendor/locale_rails/test/public/favicon.ico +0 -0
  109. data/examples/al-admin/vendor/locale_rails/test/public/images/rails.png +0 -0
  110. data/examples/al-admin/vendor/locale_rails/test/public/index.html +275 -0
  111. data/examples/al-admin/vendor/locale_rails/test/public/javascripts/application.js +2 -0
  112. data/examples/al-admin/vendor/locale_rails/test/public/javascripts/controls.js +963 -0
  113. data/examples/al-admin/vendor/locale_rails/test/public/javascripts/dragdrop.js +973 -0
  114. data/examples/al-admin/vendor/locale_rails/test/public/javascripts/effects.js +1128 -0
  115. data/examples/al-admin/vendor/locale_rails/test/public/javascripts/prototype.js +4320 -0
  116. data/examples/al-admin/vendor/locale_rails/test/public/robots.txt +5 -0
  117. data/examples/al-admin/vendor/locale_rails/test/script/about +4 -0
  118. data/examples/al-admin/vendor/locale_rails/test/script/console +3 -0
  119. data/examples/al-admin/vendor/locale_rails/test/script/dbconsole +3 -0
  120. data/examples/al-admin/vendor/locale_rails/test/script/destroy +3 -0
  121. data/examples/al-admin/vendor/locale_rails/test/script/generate +3 -0
  122. data/examples/al-admin/vendor/locale_rails/test/script/performance/benchmarker +3 -0
  123. data/examples/al-admin/vendor/locale_rails/test/script/performance/profiler +3 -0
  124. data/examples/al-admin/vendor/locale_rails/test/script/plugin +3 -0
  125. data/examples/al-admin/vendor/locale_rails/test/script/runner +3 -0
  126. data/examples/al-admin/vendor/locale_rails/test/script/server +3 -0
  127. data/examples/al-admin/vendor/locale_rails/test/test/functional/articles_controller_test.rb +161 -0
  128. data/examples/al-admin/vendor/locale_rails/test/test/performance/browsing_test.rb +9 -0
  129. data/examples/al-admin/vendor/locale_rails/test/test/test_helper.rb +38 -0
  130. data/lib/active_ldap.rb +9 -4
  131. data/lib/active_ldap/adapter/base.rb +3 -3
  132. data/lib/active_ldap/adapter/jndi.rb +1 -1
  133. data/lib/active_ldap/adapter/jndi_connection.rb +1 -3
  134. data/lib/active_ldap/adapter/ldap.rb +11 -11
  135. data/lib/active_ldap/adapter/ldap_ext.rb +25 -3
  136. data/lib/active_ldap/adapter/net_ldap.rb +9 -2
  137. data/lib/active_ldap/association/collection.rb +14 -2
  138. data/lib/active_ldap/base.rb +13 -5
  139. data/lib/active_ldap/configuration.rb +1 -0
  140. data/lib/active_ldap/ldap_error.rb +3 -3
  141. data/lib/active_ldap/ldif.rb +1 -1
  142. data/lib/active_ldap/operations.rb +2 -0
  143. data/lib/active_ldap/schema/syntaxes.rb +2 -2
  144. data/lib/active_ldap/validations.rb +37 -26
  145. data/lib/active_ldap/xml.rb +2 -0
  146. data/po/active-ldap.pot +38 -58
  147. data/test-unit/COPYING +56 -0
  148. data/test-unit/GPL +340 -0
  149. data/test-unit/History.txt +65 -3
  150. data/test-unit/Manifest.txt +5 -0
  151. data/test-unit/PSFL +271 -0
  152. data/test-unit/README.txt +6 -1
  153. data/test-unit/lib/test/unit.rb +6 -1
  154. data/test-unit/lib/test/unit/assertions.rb +129 -13
  155. data/test-unit/lib/test/unit/autorunner.rb +21 -16
  156. data/test-unit/lib/test/unit/collector.rb +1 -8
  157. data/test-unit/lib/test/unit/collector/dir.rb +1 -1
  158. data/test-unit/lib/test/unit/collector/load.rb +15 -7
  159. data/test-unit/lib/test/unit/color-scheme.rb +6 -2
  160. data/test-unit/lib/test/unit/diff.rb +17 -1
  161. data/test-unit/lib/test/unit/error.rb +4 -0
  162. data/test-unit/lib/test/unit/failure.rb +4 -0
  163. data/test-unit/lib/test/unit/notification.rb +8 -4
  164. data/test-unit/lib/test/unit/omission.rb +4 -0
  165. data/test-unit/lib/test/unit/pending.rb +4 -0
  166. data/test-unit/lib/test/unit/priority.rb +2 -3
  167. data/test-unit/lib/test/unit/testcase.rb +18 -7
  168. data/test-unit/lib/test/unit/ui/console/testrunner.rb +5 -3
  169. data/test-unit/lib/test/unit/util/backtracefilter.rb +1 -0
  170. data/test-unit/lib/test/unit/util/output.rb +31 -0
  171. data/test-unit/lib/test/unit/version.rb +1 -1
  172. data/test-unit/test/collector/test-descendant.rb +2 -4
  173. data/test-unit/test/collector/test-load.rb +121 -8
  174. data/test-unit/test/collector/test_objectspace.rb +7 -5
  175. data/test-unit/test/test-color-scheme.rb +4 -2
  176. data/test-unit/test/test-testcase.rb +48 -38
  177. data/test-unit/test/test_assertions.rb +87 -5
  178. data/test-unit/test/util/test-output.rb +11 -0
  179. data/test/al-test-utils.rb +6 -1
  180. data/test/fixtures/lower_case_object_class_schema.rb +802 -0
  181. data/test/test_associations.rb +20 -1
  182. data/test/test_base.rb +50 -3
  183. data/test/test_ldif.rb +10 -1
  184. data/test/test_syntax.rb +12 -0
  185. data/test/test_validation.rb +0 -2
  186. metadata +225 -56
@@ -2,6 +2,6 @@
2
2
  # HACK: quick and dirty to get integrated into the new project - ryan
3
3
  module Test
4
4
  module Unit
5
- VERSION = '2.0.6'
5
+ VERSION = '2.1.0'
6
6
  end
7
7
  end
@@ -66,7 +66,7 @@ class TestUnitCollectorDescendant < Test::Unit::TestCase
66
66
  collector.filter = [Proc.new {false}, Proc.new {true}]
67
67
  end
68
68
 
69
- assert_collect(full_suite) do |collector|
69
+ assert_collect(empty_suite) do |collector|
70
70
  collector.filter = [Proc.new {true}, Proc.new {false}]
71
71
  end
72
72
 
@@ -90,13 +90,11 @@ class TestUnitCollectorDescendant < Test::Unit::TestCase
90
90
  end
91
91
  end
92
92
 
93
- expected = empty_suite
94
93
  suite1 = Test::Unit::TestSuite.new(@test_case1.name)
95
94
  suite1 << @test_case1.new("test_1")
96
95
  suite2 = Test::Unit::TestSuite.new(@test_case2.name)
97
96
  suite2 << @test_case2.new("test_0")
98
- expected << suite1 << suite2
99
- assert_collect(expected) do |collector|
97
+ assert_collect(empty_suite) do |collector|
100
98
  filters = [Proc.new {|test| test.method_name == 'test_1' ? true : nil},
101
99
  Proc.new {|test| test.method_name == 'test_0' ? true : nil},
102
100
  Proc.new {false}]
@@ -13,8 +13,9 @@ class TestUnitCollectorLoad < Test::Unit::TestCase
13
13
  ::Object.const_set(@temporary_test_cases_module_name, Module.new)
14
14
 
15
15
  @test_dir = Pathname(Dir.tmpdir) + "test-unit"
16
- @test_dir.rmtree if @test_dir.exist?
17
- @test_dir.mkpath
16
+ @extra_test_dir = Pathname(Dir.tmpdir) + "test-unit-extra"
17
+ ensure_clean_directory(@test_dir)
18
+ ensure_clean_directory(@extra_test_dir)
18
19
  end
19
20
 
20
21
  setup
@@ -196,6 +197,72 @@ EOT
196
197
  end
197
198
  end
198
199
 
200
+ setup
201
+ def setup_sub_git_test_cases
202
+ @sub_git_test_dir = @sub_test_dir + ".git"
203
+ @sub_git_test_dir.mkpath
204
+
205
+ @sub_git_test_case11 = @sub_git_test_dir + "test_case11.rb"
206
+
207
+ @sub_git_test_case11.open("w") do |test_case|
208
+ test_case.puts(<<-EOT)
209
+ module #{@temporary_test_cases_module_name}
210
+ class SubGitTestCase11 < Test::Unit::TestCase
211
+ def test11
212
+ end
213
+ end
214
+ end
215
+ EOT
216
+ end
217
+ end
218
+
219
+ setup
220
+ def setup_extra_top_level_test_cases
221
+ @test_cases12 = @extra_test_dir + "test_cases12.rb"
222
+ @test_cases12.open("w") do |test_case|
223
+ test_case.puts(<<-EOT)
224
+ module #{@temporary_test_cases_module_name}
225
+ class TestCase121 < Test::Unit::TestCase
226
+ def test121_1
227
+ end
228
+
229
+ def test121_2
230
+ end
231
+ end
232
+
233
+ class TestCase122 < Test::Unit::TestCase
234
+ def test122_1
235
+ end
236
+
237
+ def test122_2
238
+ end
239
+ end
240
+ end
241
+ EOT
242
+ end
243
+ end
244
+
245
+ setup
246
+ def setup_sub_level_extra_test_cases
247
+ @sub_extra_test_dir = @extra_test_dir + "sub"
248
+ @sub_extra_test_dir.mkpath
249
+
250
+ @cases13_test = @sub_extra_test_dir + "13cases_test.rb"
251
+ @cases13_test.open("w") do |test_case|
252
+ test_case.puts(<<-EOT)
253
+ module #{@temporary_test_cases_module_name}
254
+ class SubTestCase13 < Test::Unit::TestCase
255
+ def test13_1
256
+ end
257
+
258
+ def test13_2
259
+ end
260
+ end
261
+ end
262
+ EOT
263
+ end
264
+ end
265
+
199
266
  def teardown
200
267
  @test_dir.rmtree if @test_dir.exist?
201
268
  ::Object.send(:remove_const, @temporary_test_cases_module_name)
@@ -212,6 +279,21 @@ EOT
212
279
  @sub_test_dir.to_s)
213
280
  end
214
281
 
282
+ def test_simple_collect_test_suffix
283
+ assert_collect([:suite, {:name => @extra_test_dir.basename.to_s},
284
+ [:suite, {:name => _test_case_name("TestCase121")},
285
+ [:test, {:name => "test121_1"}],
286
+ [:test, {:name => "test121_2"}]],
287
+ [:suite, {:name => _test_case_name("TestCase122")},
288
+ [:test, {:name => "test122_1"}],
289
+ [:test, {:name => "test122_2"}]],
290
+ [:suite, {:name => @sub_extra_test_dir.basename.to_s},
291
+ [:suite, {:name => _test_case_name("SubTestCase13")},
292
+ [:test, {:name => "test13_1"}],
293
+ [:test, {:name => "test13_2"}]]]],
294
+ @extra_test_dir.to_s)
295
+ end
296
+
215
297
  def test_multilevel_collect
216
298
  assert_collect([:suite, {:name => "."},
217
299
  [:suite, {:name => _test_case_name("TestCase1")},
@@ -234,13 +316,39 @@ EOT
234
316
  end
235
317
 
236
318
  def test_collect_file
237
- assert_collect([:suite, {:name => @test_case1.basename.to_s},
238
- [:suite, {:name => _test_case_name("TestCase1")},
239
- [:test, {:name => "test1_1"}],
240
- [:test, {:name => "test1_2"}]]],
319
+ assert_collect([:suite, {:name => _test_case_name("TestCase1")},
320
+ [:test, {:name => "test1_1"}],
321
+ [:test, {:name => "test1_2"}]],
241
322
  @test_case1.to_s)
323
+ end
242
324
 
243
- assert_collect(nil, @no_load_sub_test_case5.to_s)
325
+ def test_collect_file_no_pattern_match_file_name
326
+ assert_collect([:suite, {:name => _test_case_name("NoLoadSubTestCase5")},
327
+ [:test, {:name => "test5_1"}],
328
+ [:test, {:name => "test5_2"}]],
329
+ @no_load_sub_test_case5.to_s)
330
+ end
331
+
332
+ def test_collect_file_test_cases
333
+ assert_collect([:suite, {:name => "[#{@test_cases12}]"},
334
+ [:suite, {:name => _test_case_name("TestCase121")},
335
+ [:test, {:name => "test121_1"}],
336
+ [:test, {:name => "test121_2"}]],
337
+ [:suite, {:name => _test_case_name("TestCase122")},
338
+ [:test, {:name => "test122_1"}],
339
+ [:test, {:name => "test122_2"}]]],
340
+ @test_cases12.to_s)
341
+ end
342
+
343
+ def test_collect_files
344
+ assert_collect([:suite,
345
+ {:name => "[#{@test_case1}, #{@test_case2}]"},
346
+ [:suite, {:name => _test_case_name("TestCase1")},
347
+ [:test, {:name => "test1_1"}],
348
+ [:test, {:name => "test1_2"}]],
349
+ [:suite, {:name => _test_case_name("TestCase2")},
350
+ [:test, {:name => "test2"}]]],
351
+ @test_case1.to_s, @test_case2.to_s)
244
352
  end
245
353
 
246
354
  def test_nil_pattern
@@ -278,7 +386,7 @@ EOT
278
386
  [:test, {:name => "test4_2"}]],
279
387
  [:suite, {:name => _test_case_name("SubTestCase6")},
280
388
  [:test, {:name => "test6"}]]],
281
- [:suite, {:name => @sub2_test_dir.basename.to_s},
389
+ [:suite, {:name => @sub2_test_dir.basename.to_s},
282
390
  [:suite, {:name => _test_case_name("Sub2TestCase8")},
283
391
  [:test, {:name => "test8_1"}],
284
392
  [:test, {:name => "test8_2"}]],
@@ -299,6 +407,11 @@ EOT
299
407
  end
300
408
  end
301
409
 
410
+ def ensure_clean_directory(directory)
411
+ directory.rmtree if directory.exist?
412
+ directory.mkpath
413
+ end
414
+
302
415
  def keep_required_files
303
416
  required_files = $".dup
304
417
  yield
@@ -72,7 +72,7 @@ module Test
72
72
  assert_equal(empty_suite, @c.collect)
73
73
 
74
74
  @c.filter = [proc{true}, proc{false}]
75
- assert_equal(full_suite, @c.collect)
75
+ assert_equal(empty_suite, @c.collect)
76
76
 
77
77
  @c.filter = [proc{nil}, proc{false}]
78
78
  assert_equal(empty_suite, @c.collect)
@@ -87,10 +87,12 @@ module Test
87
87
  assert_equal(expected, @c.collect)
88
88
 
89
89
  expected = TestSuite.new(ObjectSpace::NAME)
90
- expected << (TestSuite.new(@tc1.name) << @tc1.new('test_1'))
91
- expected << (TestSuite.new(@tc2.name) << @tc2.new('test_0'))
92
- @c.filter = [proc{|t| t.method_name == 'test_1' ? true : nil}, proc{|t| t.method_name == 'test_0' ? true : nil}, proc{false}]
93
- assert_equal(expected, @c.collect)
90
+ TestSuite.new(@tc1.name) << @tc1.new('test_1')
91
+ TestSuite.new(@tc2.name) << @tc2.new('test_0')
92
+ @c.filter = [proc{|t| t.method_name == 'test_1' ? true : nil},
93
+ proc{|t| t.method_name == 'test_0' ? true : nil},
94
+ proc{false}]
95
+ assert_equal(empty_suite, @c.collect)
94
96
  end
95
97
  end
96
98
  end
@@ -1,8 +1,10 @@
1
1
  class TestUnitColorScheme < Test::Unit::TestCase
2
2
  def test_default
3
3
  assert_equal({
4
- "success" => color("green", :bold => true),
5
- "failure" => color("red", :bold => true),
4
+ "success" => color("green", :foreground => false) +
5
+ color("white", :bold => true),
6
+ "failure" => color("red", :foreground => false) +
7
+ color("white", :bold => true),
6
8
  "pending" => color("magenta", :bold => true),
7
9
  "omission" => color("blue", :bold => true),
8
10
  "notification" => color("cyan", :bold => true),
@@ -7,6 +7,7 @@ require 'test/unit'
7
7
  module Test
8
8
  module Unit
9
9
  class TestTestCase < TestCase
10
+ self.test_order = :random
10
11
  def test_creation
11
12
  tc = Class.new(TestCase) do
12
13
  def test_with_arguments(arg1, arg2)
@@ -469,52 +470,68 @@ module Test
469
470
  end
470
471
 
471
472
  def test_defined_order
472
- keep_test_order do
473
- test_case = Class.new(Test::Unit::TestCase) do
474
- def test_z
475
- end
473
+ test_case = Class.new(Test::Unit::TestCase) do
474
+ def test_z
475
+ end
476
476
 
477
- def test_1
478
- end
477
+ def test_1
478
+ end
479
479
 
480
- def test_a
481
- end
480
+ def test_a
482
481
  end
482
+ end
483
483
 
484
- assert_equal(["test_1", "test_a", "test_z"],
485
- test_case.suite.tests.collect {|test| test.method_name})
484
+ assert_equal(["test_1", "test_a", "test_z"],
485
+ test_case.suite.tests.collect {|test| test.method_name})
486
486
 
487
- test_case.test_order = :defined
488
- assert_equal(["test_z", "test_1", "test_a"],
489
- test_case.suite.tests.collect {|test| test.method_name})
490
- end
487
+ test_case.test_order = :defined
488
+ assert_equal(["test_z", "test_1", "test_a"],
489
+ test_case.suite.tests.collect {|test| test.method_name})
491
490
  end
492
491
 
493
492
  def test_declarative_style
494
- keep_test_order do
495
- test_case = Class.new(Test::Unit::TestCase) do
496
- test "declarative style test definition" do
497
- end
493
+ test_case = Class.new(Test::Unit::TestCase) do
494
+ test "declarative style test definition" do
495
+ end
498
496
 
499
- test "include parenthesis" do
500
- end
497
+ test "include parenthesis" do
498
+ end
501
499
 
502
- test "1 + 2 = 3" do
503
- end
500
+ test "1 + 2 = 3" do
504
501
  end
502
+ end
505
503
 
506
- test_case.test_order = :defined
504
+ test_case.test_order = :defined
507
505
 
508
- assert_equal(["test_declarative_style_test_definition",
509
- "test_include_parenthesis",
510
- "test_1_2_3"],
511
- test_case.suite.tests.collect {|test| test.method_name})
506
+ assert_equal(["test_declarative_style_test_definition",
507
+ "test_include_parenthesis",
508
+ "test_1_2_3"],
509
+ test_case.suite.tests.collect {|test| test.method_name})
510
+
511
+ assert_equal(["declarative style test definition",
512
+ "include parenthesis",
513
+ "1 + 2 = 3"],
514
+ test_case.suite.tests.collect {|test| test.description})
515
+ end
516
+
517
+ def test_redefine_method
518
+ test_case = Class.new(Test::Unit::TestCase) do
519
+ def test_name
520
+ end
521
+ alias_method :test_name2, :test_name
512
522
 
513
- assert_equal(["declarative style test definition",
514
- "include parenthesis",
515
- "1 + 2 = 3"],
516
- test_case.suite.tests.collect {|test| test.description})
523
+ def test_name
524
+ end
517
525
  end
526
+
527
+ suite = test_case.suite
528
+ assert_equal(["test_name", "test_name2"],
529
+ suite.tests.collect {|test| test.method_name})
530
+ result = TestResult.new
531
+ suite.run(result) {}
532
+ assert_equal("2 tests, 0 assertions, 0 failures, " +
533
+ "0 errors, 0 pendings, 0 omissions, 1 notifications",
534
+ result.summary)
518
535
  end
519
536
 
520
537
  private
@@ -522,13 +539,6 @@ module Test
522
539
  add_assertion
523
540
  raise AssertionFailedError.new(message) unless passed
524
541
  end
525
-
526
- def keep_test_order
527
- order = TestCase.test_order
528
- yield
529
- ensure
530
- TestCase.test_order = order
531
- end
532
542
  end
533
543
  end
534
544
  end
@@ -1,6 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
1
3
  # Author:: Nathaniel Talbott.
2
4
  # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
3
- # Copyright (c) 2009 Kouhei Sutou.
5
+ # Copyright (c) 2009-2010 Kouhei Sutou. All rights reserved.
4
6
  # License:: Ruby license.
5
7
 
6
8
  require 'test/unit'
@@ -275,6 +277,57 @@ EOM
275
277
  end
276
278
  end
277
279
 
280
+ def test_assert_equal_with_max_diff_target_string_size
281
+ key = "TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE"
282
+ before_value = ENV[key]
283
+ ENV[key] = "100"
284
+ begin
285
+ message = <<-EOM.chomp
286
+ <#{("a\n" + "x" * 97).inspect}> expected but was
287
+ <#{"x".inspect}>.
288
+
289
+ diff:
290
+ + x
291
+ - a
292
+ - #{"x" * 97}
293
+
294
+ folded diff:
295
+ + x
296
+ - a
297
+ #{(["- " + ("x" * 78)]).join("\n")}
298
+ - #{"x" * 19}
299
+ EOM
300
+ check_fails(message) do
301
+ assert_equal("a\n" + "x" * 97, "x")
302
+ end
303
+
304
+ message = <<-EOM.chomp
305
+ <#{("a\n" + "x" * 98).inspect}> expected but was
306
+ <#{"x".inspect}>.
307
+ EOM
308
+ check_fails(message) do
309
+ assert_equal("a\n" + "x" * 98, "x")
310
+ end
311
+ ensure
312
+ ENV[key] = before_value
313
+ end
314
+ end
315
+
316
+ def test_assert_equal_with_different_encoding
317
+ utf8_string = "こんにちは"
318
+ unless utf8_string.respond_to?(:force_encoding)
319
+ omit("encoding test is for Ruby >= 1.9")
320
+ end
321
+ ascii_8bit_string = utf8_string.dup.force_encoding("ascii-8bit")
322
+ message = <<-EOM.chomp
323
+ <"こんにちは">("UTF-8") expected but was
324
+ <#{ascii_8bit_string.inspect}>("ASCII-8BIT").
325
+ EOM
326
+ check_fails(message) do
327
+ assert_equal(utf8_string, ascii_8bit_string)
328
+ end
329
+ end
330
+
278
331
  def test_assert_raise_success
279
332
  return_value = nil
280
333
  check_nothing_fails(true) do
@@ -775,13 +828,19 @@ EOM
775
828
  end
776
829
  assert_in_delta(0.1, float_thing, 0.1)
777
830
  }
778
- check_fails("message.\n<0.5> and\n<0.4> expected to be within\n<0.05> of each other.") {
831
+ check_fails("message.\n" +
832
+ "<0.5> expected but was\n" +
833
+ "<0.4> (tolerance <0.05>).\n" +
834
+ "\n" +
835
+ "Relation:\n" +
836
+ "<<0.4> < <0.5>-<0.05>(0.45) <= <0.5>+<0.05>(0.55)>") {
779
837
  assert_in_delta(0.5, 0.4, 0.05, "message")
780
838
  }
781
839
  object = Object.new
840
+ inspected_object = AssertionMessage.convert(object)
782
841
  check_fails("The arguments must respond to to_f; " +
783
842
  "the first float did not.\n" +
784
- "<#{object.inspect}>.respond_to?(:to_f) expected\n" +
843
+ "<#{inspected_object}>.respond_to?(:to_f) expected\n" +
785
844
  "(Class: <Object>)") {
786
845
  assert_in_delta(object, 0.4, 0.1)
787
846
  }
@@ -1085,17 +1144,40 @@ EOM
1085
1144
  assert_alias_method(object, :other, :original_method)
1086
1145
  end
1087
1146
 
1088
- check_fails("<#{object.inspect}>.nonexistent doesn't exist\n" +
1147
+ inspected_object = AssertionMessage.convert(object)
1148
+ check_fails("<#{inspected_object}>.nonexistent doesn't exist\n" +
1089
1149
  "(Class: <Object>)") do
1090
1150
  assert_alias_method(object, :nonexistent, :original_method)
1091
1151
  end
1092
1152
 
1093
- check_fails("<#{object.inspect}>.nonexistent doesn't exist\n" +
1153
+ check_fails("<#{inspected_object}>.nonexistent doesn't exist\n" +
1094
1154
  "(Class: <Object>)") do
1095
1155
  assert_alias_method(object, :alias_method, :nonexistent)
1096
1156
  end
1097
1157
  end
1098
1158
 
1159
+ def test_assert_path_exist
1160
+ check_nothing_fails do
1161
+ assert_path_exist(__FILE__)
1162
+ end
1163
+
1164
+ nonexistent_file = __FILE__ + ".nonexistent"
1165
+ check_fails("<#{nonexistent_file.inspect}> expected to exist") do
1166
+ assert_path_exist(nonexistent_file)
1167
+ end
1168
+ end
1169
+
1170
+ def test_assert_path_not_exist
1171
+ nonexistent_file = __FILE__ + ".nonexistent"
1172
+ check_nothing_fails do
1173
+ assert_path_not_exist(nonexistent_file)
1174
+ end
1175
+
1176
+ check_fails("<#{__FILE__.inspect}> expected to not exist") do
1177
+ assert_path_not_exist(__FILE__)
1178
+ end
1179
+ end
1180
+
1099
1181
  private
1100
1182
  def add_failure(message, location=caller, options=nil)
1101
1183
  unless @catch_assertions