activeldap 0.10.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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