activeldap 0.10.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/CHANGES +6 -30
  2. data/README +4 -2
  3. data/Rakefile +7 -0
  4. data/data/locale/en/LC_MESSAGES/active-ldap.mo +0 -0
  5. data/data/locale/ja/LC_MESSAGES/active-ldap.mo +0 -0
  6. data/examples/al-admin/po/en/al-admin.po +3 -3
  7. data/examples/al-admin/po/ja/al-admin.po +3 -3
  8. data/examples/al-admin/po/nl/al-admin.po +3 -3
  9. data/lib/active_ldap/adapter/base.rb +0 -2
  10. data/lib/active_ldap/base.rb +4 -2
  11. data/lib/active_ldap/get_text_support.rb +3 -11
  12. data/lib/active_ldap/operations.rb +1 -0
  13. data/lib/active_ldap/schema/syntaxes.rb +5 -3
  14. data/lib/active_ldap/validations.rb +25 -15
  15. data/lib/active_ldap.rb +1 -1
  16. data/po/en/active-ldap.po +1 -1
  17. data/po/ja/active-ldap.po +1 -1
  18. data/rails/plugin/active_ldap/init.rb +1 -1
  19. data/test/run-test.rb +2 -0
  20. data/test/test_base.rb +63 -1
  21. data/test/test_syntax.rb +3 -2
  22. data/test-unit-ext/NEWS.en +28 -0
  23. data/test-unit-ext/NEWS.ja +28 -0
  24. data/test-unit-ext/README.en +247 -0
  25. data/test-unit-ext/README.ja +246 -0
  26. data/test-unit-ext/Rakefile +111 -0
  27. data/{test → test-unit-ext/lib}/test-unit-ext/always-show-result.rb +0 -0
  28. data/test-unit-ext/lib/test-unit-ext/assertions.rb +40 -0
  29. data/test-unit-ext/lib/test-unit-ext/attributes.rb +129 -0
  30. data/{test → test-unit-ext/lib}/test-unit-ext/backtrace-filter.rb +0 -0
  31. data/test-unit-ext/lib/test-unit-ext/color.rb +59 -0
  32. data/test-unit-ext/lib/test-unit-ext/colorized-runner.rb +111 -0
  33. data/test-unit-ext/lib/test-unit-ext/diff.rb +516 -0
  34. data/{test → test-unit-ext/lib}/test-unit-ext/long-display-for-emacs.rb +0 -0
  35. data/test-unit-ext/lib/test-unit-ext/notification.rb +79 -0
  36. data/test-unit-ext/lib/test-unit-ext/omission.rb +96 -0
  37. data/test-unit-ext/lib/test-unit-ext/pending.rb +97 -0
  38. data/{test → test-unit-ext/lib}/test-unit-ext/priority.rb +25 -53
  39. data/test-unit-ext/lib/test-unit-ext/version.rb +3 -0
  40. data/test-unit-ext/lib/test-unit-ext/xml-report.rb +224 -0
  41. data/test-unit-ext/lib/test-unit-ext.rb +16 -0
  42. data/test-unit-ext/misc/rd2html.rb +42 -0
  43. data/test-unit-ext/test/run-test.rb +14 -0
  44. data/test-unit-ext/test/test_attributes.rb +139 -0
  45. data/test-unit-ext/test/test_color.rb +39 -0
  46. data/test-unit-ext/test/test_diff.rb +475 -0
  47. data/test-unit-ext/test/test_notification.rb +32 -0
  48. data/test-unit-ext/test/test_omission.rb +64 -0
  49. data/test-unit-ext/test/test_pending.rb +64 -0
  50. data/test-unit-ext/test/test_priority.rb +88 -0
  51. data/test-unit-ext/test/test_xml_report.rb +161 -0
  52. metadata +34 -7
  53. data/test/test-unit-ext.rb +0 -4
@@ -0,0 +1,39 @@
1
+ require 'test-unit-ext'
2
+
3
+ class TestColor < Test::Unit::TestCase
4
+ def test_color_escape_sequence
5
+ assert_escape_sequence(["31"], color("red"))
6
+ assert_escape_sequence(["32", "1"], color("green", :bold => true))
7
+ assert_escape_sequence(["0"], color("reset"))
8
+ assert_escape_sequence(["45"], color("magenta", :foreground => false))
9
+ end
10
+
11
+ def test_mix_color_escape_sequence
12
+ assert_escape_sequence(["34", "1"],
13
+ mix_color([color("blue"),
14
+ color("none", :bold => true)]))
15
+ assert_escape_sequence(["34", "1", "4"],
16
+ mix_color([color("blue"),
17
+ color("none", :bold => true)]) +
18
+ color("none", :underline => true))
19
+ assert_escape_sequence(["34", "1", "4"],
20
+ color("blue") +
21
+ color("none", :bold => true) +
22
+ color("none", :underline => true))
23
+ end
24
+
25
+ private
26
+ def color(name, options={})
27
+ Test::Color.new(name, options)
28
+ end
29
+
30
+ def mix_color(colors)
31
+ Test::MixColor.new(colors)
32
+ end
33
+
34
+ def assert_escape_sequence(expected, color)
35
+ assert_equal(expected, color.sequence)
36
+ assert_match(/\e\[(?:\d+;)*\d+m/, color.escape_sequence)
37
+ assert_equal(expected, color.escape_sequence[2..-2].split(";"))
38
+ end
39
+ end
@@ -0,0 +1,475 @@
1
+ class TestDiff < Test::Unit::TestCase
2
+ def test_to_indexes
3
+ assert_to_indexes({"abc def" => [0, 2], "abc" => [1]},
4
+ ["abc def", "abc", "abc def"])
5
+
6
+ assert_to_indexes({?a => [0, 3], ?b => [1], ?c => [2], ?d => [4]},
7
+ "abcad")
8
+
9
+ assert_to_indexes({
10
+ ?1 => [0, 35],
11
+ ?t => [2, 5, 16],
12
+ ?e => [3, 14, 31, 38],
13
+ ?s => [4, 6, 12, 13, 20, 32, 44],
14
+ ?, => [7, 21, 33],
15
+ ?0 => [9, 23],
16
+ ?a => [11, 26],
17
+ ?r => [15, 30],
18
+ ?i => [17, 27, 41],
19
+ ?o => [18],
20
+ ?n => [19, 39, 42],
21
+ ?f => [25],
22
+ ?l => [28],
23
+ ?u => [29],
24
+ ?p => [37],
25
+ ?d => [40],
26
+ ?g => [43],
27
+ },
28
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
29
+ x == " "[0]
30
+ end
31
+ end
32
+
33
+ def test_longest_match
34
+ assert_longest_match([0, 1, 3],
35
+ %w(b c d), %w(a b c d x y z),
36
+ 0, 2, 0, 7)
37
+ assert_longest_match([1, 2, 2],
38
+ %w(b c d), %w(a b c d x y z),
39
+ 1, 2, 0, 6)
40
+ assert_longest_match([0, 0, 0],
41
+ %w(a b), %w(c),
42
+ 0, 1, 0, 0)
43
+ assert_longest_match([1, 0, 2],
44
+ %w(q a b x c d), %w(a b y c d f),
45
+ 0, 5, 0, 5)
46
+ assert_longest_match([4, 3, 2],
47
+ %w(q a b x c d), %w(a b y c d f),
48
+ 3, 5, 2, 5)
49
+
50
+ assert_longest_match([1, 0, 2], "qabxcd", "abycdf", 0, 5, 0, 5)
51
+ assert_longest_match([0, 0, 1], "efg", "eg", 0, 2, 0, 1)
52
+ assert_longest_match([2, 1, 1], "efg", "eg", 1, 2, 1, 1)
53
+ end
54
+
55
+ def test_longest_match_with_junk_predicate
56
+ assert_longest_match([0, 4, 5], " abcd", "abcd abcd", 0, 4, 0, 8)
57
+ assert_longest_match([1, 0, 4], " abcd", "abcd abcd", 0, 4, 0, 8) do |x|
58
+ x == ' '[0]
59
+ end
60
+ end
61
+
62
+ def test_matches
63
+ assert_matches([[0, 0, 2],
64
+ [3, 2, 2]],
65
+ %w(a b x c d), %w(a b c d))
66
+ assert_matches([[1, 0, 2],
67
+ [4, 3, 2]],
68
+ %w(q a b x c d), %w(a b y c d f))
69
+
70
+ assert_matches([[1, 0, 2],
71
+ [4, 3, 2]],
72
+ "qabxcd", "abycdf")
73
+ assert_matches([[0, 0, 1],
74
+ [2, 1, 1]],
75
+ "efg", "eg")
76
+ end
77
+
78
+ def test_matches_with_junk_predicate
79
+ assert_matches([[0, 0, 23],
80
+ [24, 24, 11],
81
+ [36, 36, 9]],
82
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
83
+ "1 tests, 0 assertions, 0 failures, 1 pendings")
84
+
85
+ assert_matches([[0, 0, 1],
86
+ [1, 1, 8],
87
+ [9, 9, 1],
88
+ [10, 10, 13],
89
+ [24, 24, 11],
90
+ [36, 36, 9]],
91
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
92
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
93
+ x == " "[0]
94
+ end
95
+ end
96
+
97
+ def test_blocks
98
+ assert_blocks([[0, 0, 2],
99
+ [3, 2, 2],
100
+ [5, 4, 0]],
101
+ %w(a b x c d), %w(a b c d))
102
+ assert_blocks([[1, 0, 2],
103
+ [4, 3, 2],
104
+ [6, 6, 0]],
105
+ %w(q a b x c d), %w(a b y c d f))
106
+
107
+ assert_blocks([[1, 0, 2],
108
+ [4, 3, 2],
109
+ [6, 6, 0]],
110
+ "qabxcd", "abycdf")
111
+ assert_blocks([[0, 0, 1],
112
+ [2, 1, 1],
113
+ [3, 2, 0]],
114
+ "efg", "eg")
115
+ end
116
+
117
+ def test_blocks_with_junk_predicate
118
+ assert_blocks([[0, 0, 23],
119
+ [24, 24, 11],
120
+ [36, 36, 9],
121
+ [45, 45, 0]],
122
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
123
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
124
+ x == " "[0]
125
+ end
126
+ end
127
+
128
+ def test_operations
129
+ assert_operations([], %w(), %w())
130
+
131
+ assert_operations([[:delete, 0, 1, 0, 0],
132
+ [:equal, 1, 3, 0, 2],
133
+ [:replace, 3, 4, 2, 3],
134
+ [:equal, 4, 6, 3, 5],
135
+ [:insert, 6, 6, 5, 6]],
136
+ %w(q a b x c d), %w(a b y c d f))
137
+
138
+ assert_operations([[:delete, 0, 1, 0, 0],
139
+ [:equal, 1, 3, 0, 2],
140
+ [:replace, 3, 4, 2, 3],
141
+ [:equal, 4, 6, 3, 5],
142
+ [:insert, 6, 6, 5, 6]],
143
+ "qabxcd", "abycdf")
144
+
145
+ assert_operations([[:equal, 0, 23, 0, 23],
146
+ [:replace, 23, 24, 23, 24],
147
+ [:equal, 24, 35, 24, 35],
148
+ [:replace, 35, 36, 35, 36],
149
+ [:equal, 36, 45, 36, 45]],
150
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
151
+ "1 tests, 0 assertions, 0 failures, 1 pendings")
152
+
153
+ assert_operations([[:equal, 0, 23, 0, 23],
154
+ [:replace, 23, 24, 23, 24],
155
+ [:equal, 24, 35, 24, 35],
156
+ [:replace, 35, 36, 35, 36],
157
+ [:equal, 36, 45, 36, 45]],
158
+ "1 tests, 0 assertions, 1 failures, 0 pendings",
159
+ "1 tests, 0 assertions, 0 failures, 1 pendings") do |x|
160
+ x == " "[0]
161
+ end
162
+ end
163
+
164
+ def test_grouped_operations
165
+ assert_grouped_operations([[[:equal, 0, 0, 0, 0]]],
166
+ %w(),
167
+ %w())
168
+
169
+ assert_grouped_operations([[[:equal, 0, 3, 0, 3]]],
170
+ %w(a b c),
171
+ %w(a b c))
172
+
173
+ assert_grouped_operations([[[:equal, 0, 1, 0, 1],
174
+ [:replace, 1, 2, 1, 2],
175
+ [:equal, 2, 5, 2, 5]],
176
+ [[:equal, 8, 11, 8, 11],
177
+ [:replace, 11, 12, 11, 12],
178
+ [:equal, 12, 13, 12, 13],
179
+ [:delete, 13, 16, 13, 13],
180
+ [:equal, 16, 17, 13, 14],
181
+ [:replace, 17, 18, 14, 15],
182
+ [:equal, 18, 20, 15, 17]]],
183
+ %w(1 2 3 4 5 6 7 8 9 a b c d e f g h i j k),
184
+ %w(1 i 3 4 5 6 7 8 9 a b cX d h iX j k))
185
+ end
186
+
187
+ def test_ratio
188
+ assert_ratio(0.75, "abcd", "bcde")
189
+ assert_ratio(0.80, "efg", "eg")
190
+ end
191
+
192
+ def test_same_contents_readable_diff
193
+ assert_readable_diff(" aaa", ["aaa"], ["aaa"])
194
+ assert_readable_diff(" aaa\n" \
195
+ " bbb",
196
+ ["aaa", "bbb"], ["aaa", "bbb"])
197
+ end
198
+
199
+ def test_deleted_readable_diff
200
+ assert_readable_diff(" aaa\n" \
201
+ "- bbb",
202
+ ["aaa", "bbb"], ["aaa"])
203
+ assert_readable_diff(" aaa\n" \
204
+ "- bbb\n" \
205
+ "- ccc\n" \
206
+ "- ddd",
207
+ ["aaa", "bbb", "ccc", "ddd"], ["aaa"])
208
+ end
209
+
210
+ def test_inserted_readable_diff
211
+ assert_readable_diff(" aaa\n" \
212
+ "+ bbb\n" \
213
+ "+ ccc\n" \
214
+ "+ ddd",
215
+ ["aaa"], ["aaa", "bbb", "ccc", "ddd"])
216
+ end
217
+
218
+ def test_replace_readable_diff
219
+ assert_readable_diff(" aaa\n" \
220
+ "- bbb\n" \
221
+ "+ BbB\n" \
222
+ " ccc\n" \
223
+ "- ddd\n" \
224
+ "- efg\n" \
225
+ "? -\n" \
226
+ "+ eg",
227
+ ["aaa", "bbb", "ccc", "ddd", "efg"],
228
+ ["aaa", "BbB", "ccc", "eg"])
229
+
230
+ assert_readable_diff("- abcd xyz abc\n" \
231
+ "? -\n" \
232
+ "+ abcd abcd xyz abc\n" \
233
+ "? +++++",
234
+ [" abcd xyz abc"],
235
+ ["abcd abcd xyz abc"])
236
+ end
237
+
238
+ def test_difference_readable_diff
239
+ assert_readable_diff("- 1 tests, 0 assertions, 1 failures, 0 pendings\n" \
240
+ "? ^ ^\n" \
241
+ "+ 1 tests, 0 assertions, 0 failures, 1 pendings\n" \
242
+ "? ^ ^",
243
+ ["1 tests, 0 assertions, 1 failures, 0 pendings"],
244
+ ["1 tests, 0 assertions, 0 failures, 1 pendings"])
245
+ end
246
+
247
+ def test_complex_readable_diff
248
+ assert_readable_diff(" aaa\n" \
249
+ "- bbb\n" \
250
+ "- ccc\n" \
251
+ "+ \n" \
252
+ "+ # \n" \
253
+ " ddd",
254
+ ["aaa", "bbb", "ccc", "ddd"],
255
+ ["aaa", "", " # ", "ddd"])
256
+
257
+ assert_readable_diff("- one1\n" \
258
+ "? ^\n" \
259
+ "+ ore1\n" \
260
+ "? ^\n" \
261
+ "- two2\n" \
262
+ "- three3\n" \
263
+ "? - -\n" \
264
+ "+ tree\n" \
265
+ "+ emu",
266
+ ["one1", "two2", "three3"],
267
+ ["ore1", "tree", "emu"])
268
+ end
269
+
270
+ def test_empty_readable_diff
271
+ assert_readable_diff("", [""], [""])
272
+ end
273
+
274
+ def test_unified_diff
275
+ assert_unified_diff("",
276
+ ["one", "two", "three"],
277
+ ["one", "two", "three"],
278
+ "content 1",
279
+ "content 2")
280
+
281
+ assert_unified_diff("--- Original Sat Jan 26 23:30:50 1991\n" \
282
+ "+++ Current Fri Jun 06 10:20:52 2003\n" \
283
+ "@@ -1,4 +1,4 @@\n" \
284
+ "+zero\n" \
285
+ " one\n" \
286
+ "-two\n" \
287
+ "-three\n" \
288
+ "+tree\n" \
289
+ " four",
290
+ ["one", "two", "three", "four"],
291
+ ["zero", "one", "tree", "four"],
292
+ "Original Sat Jan 26 23:30:50 1991",
293
+ "Current Fri Jun 06 10:20:52 2003",
294
+ :show_context => false)
295
+
296
+ from = File.read(__FILE__).split(/\n/)
297
+ to = from.dup
298
+ target_line = __LINE__
299
+ to[target_line - 1, 1] = []
300
+ context = " def test_unified_diff"
301
+ summary = "@@ -#{target_line - 3},7 +#{target_line - 3},6 @@ #{context}"
302
+ assert_unified_diff((["--- revision 10",
303
+ "+++ revision 11",
304
+ summary] +
305
+ from[target_line - 4, 3].collect {|line| " #{line}"} +
306
+ ["-#{from[target_line - 1]}"] +
307
+ from[target_line, 3].collect {|line| " #{line}"}
308
+ ).join("\n"),
309
+ from, to,
310
+ "revision 10",
311
+ "revision 11")
312
+ end
313
+
314
+ def test_empty_unified_diff
315
+ assert_unified_diff("", [""], [""], "From", "To")
316
+ assert_unified_diff("", [], [], "From", "To")
317
+ end
318
+
319
+ def test_diff_lines
320
+ assert_diff_lines(["- ddd",
321
+ "- efg",
322
+ "? -",
323
+ "+ eg"],
324
+ ["aaa", "bbb", "ccc", "ddd", "efg"],
325
+ ["aaa", "BbB", "ccc", "eg"],
326
+ 3, 5, 3, 4)
327
+ end
328
+
329
+ def test_diff_line
330
+ assert_diff_line(["- abcDefghiJkl",
331
+ "? ^ ^ ^",
332
+ "+ abcdefGhijkl",
333
+ "? ^ ^ ^"],
334
+ "abcDefghiJkl",
335
+ "abcdefGhijkl")
336
+
337
+ assert_diff_line(["- bcDefghiJklx",
338
+ "? ^ ^ ^ -",
339
+ "+ abcdefGhijkl",
340
+ "? + ^ ^ ^"],
341
+ "bcDefghiJklx",
342
+ "abcdefGhijkl")
343
+ end
344
+
345
+ def test_empty_diff_line
346
+ assert_diff_line(["- ",
347
+ "+ "],
348
+ "", "")
349
+ end
350
+
351
+ def test_format_diff_point
352
+ assert_format_diff_point(["- \tabcDefghiJkl",
353
+ "? \t ^ ^ ^",
354
+ "+ \t\tabcdefGhijkl",
355
+ "? \t ^ ^ ^"],
356
+ "\tabcDefghiJkl",
357
+ "\t\tabcdefGhijkl",
358
+ " ^ ^ ^ ",
359
+ "+ ^ ^ ^ ")
360
+ assert_format_diff_point(["- efg",
361
+ "? ^",
362
+ "+ eg"],
363
+ "efg",
364
+ "eg",
365
+ " ^",
366
+ "")
367
+ end
368
+
369
+ def test_interesting_line
370
+ from = ["class X",
371
+ " def find(x=0)",
372
+ " body",
373
+ " end",
374
+ "end"]
375
+ to = ["def xxx",
376
+ " raise 'not call me'",
377
+ "end"]
378
+ assert_interesting_line(" def find(x=0)",
379
+ from, to,
380
+ 2, 1)
381
+ assert_interesting_line("def xxx",
382
+ from, to,
383
+ 2, 0)
384
+ assert_interesting_line("class X",
385
+ from, to,
386
+ 0, 0)
387
+ end
388
+
389
+ private
390
+ def assert_to_indexes(expected, to, &junk_predicate)
391
+ matcher = Test::Diff::SequenceMatcher.new([""], to, &junk_predicate)
392
+ assert_equal(expected, matcher.instance_variable_get("@to_indexes"))
393
+ end
394
+
395
+ def assert_find_best_match_position(expected, from, to,
396
+ from_start, from_end,
397
+ to_start, to_end, &junk_predicate)
398
+ matcher = Test::Diff::SequenceMatcher.new(from, to, &junk_predicate)
399
+ assert_equal(expected, matcher.send(:find_best_match_position,
400
+ from_start, from_end,
401
+ to_start, to_end))
402
+ end
403
+
404
+ def assert_longest_match(expected, from, to,
405
+ from_start, from_end,
406
+ to_start, to_end, &junk_predicate)
407
+ matcher = Test::Diff::SequenceMatcher.new(from, to, &junk_predicate)
408
+ assert_equal(expected, matcher.longest_match(from_start, from_end,
409
+ to_start, to_end))
410
+ end
411
+
412
+ def assert_matches(expected, from, to, &junk_predicate)
413
+ matcher = Test::Diff::SequenceMatcher.new(from, to, &junk_predicate)
414
+ assert_equal(expected, matcher.send(:matches))
415
+ end
416
+
417
+ def assert_blocks(expected, from, to, &junk_predicate)
418
+ matcher = Test::Diff::SequenceMatcher.new(from, to, &junk_predicate)
419
+ assert_equal(expected, matcher.blocks)
420
+ end
421
+
422
+ def assert_operations(expected, from, to, &junk_predicate)
423
+ matcher = Test::Diff::SequenceMatcher.new(from, to, &junk_predicate)
424
+ assert_equal(expected, matcher.operations)
425
+ end
426
+
427
+ def assert_grouped_operations(expected, from, to)
428
+ matcher = Test::Diff::SequenceMatcher.new(from, to)
429
+ assert_equal(expected, matcher.grouped_operations)
430
+ end
431
+
432
+ def assert_ratio(expected, from, to)
433
+ matcher = Test::Diff::SequenceMatcher.new(from, to)
434
+ assert_in_delta(expected, 0.001, matcher.ratio)
435
+ end
436
+
437
+ def assert_readable_diff(expected, from, to)
438
+ assert_equal(expected, Test::Diff.readable(from.join("\n"), to.join("\n")))
439
+ end
440
+
441
+ def assert_unified_diff(expected, from, to, from_label, to_label, options={})
442
+ options = options.merge(:from_label => from_label,
443
+ :to_label => to_label)
444
+ assert_equal(expected, Test::Diff.unified(from.join("\n"), to.join("\n"),
445
+ options))
446
+ end
447
+
448
+ def assert_diff_lines(expected, from, to,
449
+ from_start, from_end,
450
+ to_start, to_end)
451
+ differ = Test::Diff::ReadableDiffer.new(from, to)
452
+ assert_equal(expected, differ.send(:diff_lines,
453
+ from_start, from_end,
454
+ to_start, to_end))
455
+ end
456
+
457
+ def assert_diff_line(expected, from_line, to_line)
458
+ differ = Test::Diff::ReadableDiffer.new([""], [""])
459
+ assert_equal(expected, differ.send(:diff_line, from_line, to_line))
460
+ end
461
+
462
+ def assert_format_diff_point(expected, from_line, to_line, from_tags, to_tags)
463
+ differ = Test::Diff::ReadableDiffer.new([""], [""])
464
+ assert_equal(expected, differ.send(:format_diff_point,
465
+ from_line, to_line,
466
+ from_tags, to_tags))
467
+ end
468
+
469
+ def assert_interesting_line(expected, from, to, from_start, to_start)
470
+ differ = Test::Diff::UnifiedDiffer.new(from, to)
471
+ assert_equal(expected, differ.send(:find_interesting_line,
472
+ from_start, to_start,
473
+ :define_line?))
474
+ end
475
+ end
@@ -0,0 +1,32 @@
1
+ require 'test-unit-ext'
2
+
3
+ class TestNotification < Test::Unit::TestCase
4
+ class TestCase < Test::Unit::TestCase
5
+ class << self
6
+ def suite
7
+ Test::Unit::TestSuite.new(name)
8
+ end
9
+ end
10
+
11
+ def test_notify
12
+ notify("1st notify")
13
+ notify("2nd notify. Reach here.")
14
+ end
15
+ end
16
+
17
+ def test_notify
18
+ result = run_test("test_notify")
19
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
20
+ "0 omissions, 2 notifications",
21
+ result.to_s)
22
+ assert_equal(["1st notify", "2nd notify. Reach here."],
23
+ result.notifications.collect {|n| n.message})
24
+ end
25
+
26
+ private
27
+ def run_test(name)
28
+ result = Test::Unit::TestResult.new
29
+ TestCase.new(name).run(result) {}
30
+ result
31
+ end
32
+ end
@@ -0,0 +1,64 @@
1
+ require 'test-unit-ext'
2
+
3
+ class TestOmission < Test::Unit::TestCase
4
+ class TestCase < Test::Unit::TestCase
5
+ class << self
6
+ def suite
7
+ Test::Unit::TestSuite.new(name)
8
+ end
9
+ end
10
+
11
+ def test_omit
12
+ omit("1st omit")
13
+ omit("2nd omit. Not reached here.")
14
+ end
15
+
16
+ def test_omit_with_failure_in_block
17
+ omit("Wait a minute") do
18
+ raise "Not implemented yet"
19
+ end
20
+ assert(true, "Not reached here.")
21
+ end
22
+
23
+ def test_omit_with_no_failure_in_block
24
+ omit("Wait a minute") do
25
+ "Nothing raised"
26
+ end
27
+ assert(true, "Reached here.")
28
+ end
29
+ end
30
+
31
+ def test_omit
32
+ result = run_test("test_omit")
33
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
34
+ "1 omissions, 0 notifications",
35
+ result.to_s)
36
+ assert_equal(["1st omit"],
37
+ result.omissions.collect {|omission| omission.message})
38
+ end
39
+
40
+ def test_omit_with_failure_in_block
41
+ result = run_test("test_omit_with_failure_in_block")
42
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
43
+ "1 omissions, 0 notifications",
44
+ result.to_s)
45
+ assert_equal(["Wait a minute"],
46
+ result.omissions.collect {|omission| omission.message})
47
+ end
48
+
49
+ def test_omit_with_no_failure_in_block
50
+ result = run_test("test_omit_with_no_failure_in_block")
51
+ assert_equal("1 tests, 1 assertions, 1 failures, 0 errors, 0 pendings, " \
52
+ "0 omissions, 0 notifications",
53
+ result.to_s)
54
+ assert_equal(["Omission block should not be passed: Wait a minute."],
55
+ result.failures.collect {|failure| failure.message})
56
+ end
57
+
58
+ private
59
+ def run_test(name)
60
+ result = Test::Unit::TestResult.new
61
+ TestCase.new(name).run(result) {}
62
+ result
63
+ end
64
+ end
@@ -0,0 +1,64 @@
1
+ require 'test-unit-ext'
2
+
3
+ class TestPending < Test::Unit::TestCase
4
+ class TestCase < Test::Unit::TestCase
5
+ class << self
6
+ def suite
7
+ Test::Unit::TestSuite.new(name)
8
+ end
9
+ end
10
+
11
+ def test_pend
12
+ pend("1st pend")
13
+ pend("2nd pend. Not reached here.")
14
+ end
15
+
16
+ def test_pend_with_failure_in_block
17
+ pend("Wait a minute") do
18
+ raise "Not implemented yet"
19
+ end
20
+ assert(true, "Not reached here.")
21
+ end
22
+
23
+ def test_pend_with_no_failure_in_block
24
+ pend("Wait a minute") do
25
+ "Nothing raised"
26
+ end
27
+ assert(true, "Reached here.")
28
+ end
29
+ end
30
+
31
+ def test_pend
32
+ result = run_test("test_pend")
33
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 1 pendings, " \
34
+ "0 omissions, 0 notifications",
35
+ result.to_s)
36
+ assert_equal(["1st pend"],
37
+ result.pendings.collect {|pending| pending.message})
38
+ end
39
+
40
+ def test_pend_with_failure_in_block
41
+ result = run_test("test_pend_with_failure_in_block")
42
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 1 pendings, " \
43
+ "0 omissions, 0 notifications",
44
+ result.to_s)
45
+ assert_equal(["Wait a minute"],
46
+ result.pendings.collect {|pending| pending.message})
47
+ end
48
+
49
+ def test_pend_with_no_failure_in_block
50
+ result = run_test("test_pend_with_no_failure_in_block")
51
+ assert_equal("1 tests, 1 assertions, 1 failures, 0 errors, 0 pendings, " \
52
+ "0 omissions, 0 notifications",
53
+ result.to_s)
54
+ assert_equal(["Pending block should not be passed: Wait a minute."],
55
+ result.failures.collect {|failure| failure.message})
56
+ end
57
+
58
+ private
59
+ def run_test(name)
60
+ result = Test::Unit::TestResult.new
61
+ TestCase.new(name).run(result) {}
62
+ result
63
+ end
64
+ end