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.
- data/CHANGES +6 -30
- data/README +4 -2
- data/Rakefile +7 -0
- data/data/locale/en/LC_MESSAGES/active-ldap.mo +0 -0
- data/data/locale/ja/LC_MESSAGES/active-ldap.mo +0 -0
- data/examples/al-admin/po/en/al-admin.po +3 -3
- data/examples/al-admin/po/ja/al-admin.po +3 -3
- data/examples/al-admin/po/nl/al-admin.po +3 -3
- data/lib/active_ldap/adapter/base.rb +0 -2
- data/lib/active_ldap/base.rb +4 -2
- data/lib/active_ldap/get_text_support.rb +3 -11
- data/lib/active_ldap/operations.rb +1 -0
- data/lib/active_ldap/schema/syntaxes.rb +5 -3
- data/lib/active_ldap/validations.rb +25 -15
- data/lib/active_ldap.rb +1 -1
- data/po/en/active-ldap.po +1 -1
- data/po/ja/active-ldap.po +1 -1
- data/rails/plugin/active_ldap/init.rb +1 -1
- data/test/run-test.rb +2 -0
- data/test/test_base.rb +63 -1
- data/test/test_syntax.rb +3 -2
- data/test-unit-ext/NEWS.en +28 -0
- data/test-unit-ext/NEWS.ja +28 -0
- data/test-unit-ext/README.en +247 -0
- data/test-unit-ext/README.ja +246 -0
- data/test-unit-ext/Rakefile +111 -0
- data/{test → test-unit-ext/lib}/test-unit-ext/always-show-result.rb +0 -0
- data/test-unit-ext/lib/test-unit-ext/assertions.rb +40 -0
- data/test-unit-ext/lib/test-unit-ext/attributes.rb +129 -0
- data/{test → test-unit-ext/lib}/test-unit-ext/backtrace-filter.rb +0 -0
- data/test-unit-ext/lib/test-unit-ext/color.rb +59 -0
- data/test-unit-ext/lib/test-unit-ext/colorized-runner.rb +111 -0
- data/test-unit-ext/lib/test-unit-ext/diff.rb +516 -0
- data/{test → test-unit-ext/lib}/test-unit-ext/long-display-for-emacs.rb +0 -0
- data/test-unit-ext/lib/test-unit-ext/notification.rb +79 -0
- data/test-unit-ext/lib/test-unit-ext/omission.rb +96 -0
- data/test-unit-ext/lib/test-unit-ext/pending.rb +97 -0
- data/{test → test-unit-ext/lib}/test-unit-ext/priority.rb +25 -53
- data/test-unit-ext/lib/test-unit-ext/version.rb +3 -0
- data/test-unit-ext/lib/test-unit-ext/xml-report.rb +224 -0
- data/test-unit-ext/lib/test-unit-ext.rb +16 -0
- data/test-unit-ext/misc/rd2html.rb +42 -0
- data/test-unit-ext/test/run-test.rb +14 -0
- data/test-unit-ext/test/test_attributes.rb +139 -0
- data/test-unit-ext/test/test_color.rb +39 -0
- data/test-unit-ext/test/test_diff.rb +475 -0
- data/test-unit-ext/test/test_notification.rb +32 -0
- data/test-unit-ext/test/test_omission.rb +64 -0
- data/test-unit-ext/test/test_pending.rb +64 -0
- data/test-unit-ext/test/test_priority.rb +88 -0
- data/test-unit-ext/test/test_xml_report.rb +161 -0
- metadata +34 -7
- 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
|