ZenTest 3.7.2 → 3.8.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/History.txt CHANGED
@@ -1,3 +1,22 @@
1
+ === 3.8.0 / 2008-01-12
2
+
3
+ * 10 minor enhancements:
4
+
5
+ * Added basic support for rubinius in multiruby.
6
+ * Changed Dunno! message to only output on -v
7
+ * Added Getting Started with Autotest by Philippe Hanrigou (with permission)
8
+ * Updated example_dot_autotest.rb for newer plugins.
9
+ * Cleaned up rdoc.
10
+ * Worked with David Chelimsky to make Autotest more uber for subclasses.
11
+ * Removed exceptions and test_mappings accessors and replaced with add/remove/clear methods. Updating .autotest should be very straightforward.
12
+ * Moved :initialize hook to beginning of run method
13
+ * Changed load/customization order to be:
14
+ * Autotest
15
+ * AutotestSubClass
16
+ * ~/.autotest
17
+ * ./.autotest (yes, both .autotest files).
18
+ * Moved away from using instance variables to encourage subclasses to use accessors.
19
+
1
20
  === 3.7.2 / 2008-01-09
2
21
 
3
22
  * 2 minor enhancements:
data/Manifest.txt CHANGED
@@ -1,8 +1,10 @@
1
1
  History.txt
2
- LinuxJournalArticle.txt
3
2
  Manifest.txt
4
3
  README.txt
5
4
  Rakefile
5
+ articles/Article.css
6
+ articles/getting_started_with_autotest.html
7
+ articles/how_to_use_zentest.txt
6
8
  bin/autotest
7
9
  bin/multiruby
8
10
  bin/rails_test_audit
data/Rakefile CHANGED
@@ -51,5 +51,17 @@ task :sort do
51
51
  end
52
52
  end
53
53
 
54
+ task :rcov_info do
55
+ ruby "-Ilib -S rcov --text-report --save coverage.info test/test_*.rb"
56
+ end
57
+
58
+ task :rcov_overlay do
59
+ rcov, eol = Marshal.load(File.read("coverage.info")).last[ENV["FILE"]], 1
60
+ puts rcov[:lines].zip(rcov[:coverage]).map { |line, coverage|
61
+ bol, eol = eol, eol + line.length
62
+ [bol, eol, "#ffcccc"] unless coverage
63
+ }.compact.inspect
64
+ end
65
+
54
66
  # vim:syntax=ruby
55
67
 
@@ -0,0 +1,721 @@
1
+ /*
2
+ * Basic styles for core document typography.
3
+ *
4
+ * Influenced by:
5
+ * - "How to size text using ems" [http://www.clagnut.com/blog/348]
6
+ */
7
+
8
+ /*************************** Basic Typography ******************************/
9
+
10
+ a:link { color: black; } /* unvisited link */
11
+ a:visited { color: black; } /* visited link */
12
+ a:hover { color: black; } /* mouse over link */
13
+ a:active { color: black; } /* selected link */
14
+
15
+ html {
16
+ background: white;
17
+ color: black;
18
+ text-align: center; /* IE hack to workaround for block centering. */
19
+ margin: 0;
20
+ padding: 0;
21
+ }
22
+
23
+
24
+ body {
25
+ margin: 0;
26
+ padding: 0;
27
+ font-family: Lucida Grande, sans-serif;
28
+ }
29
+
30
+ * {
31
+ font-family: Lucida Grande, sans-serif;
32
+ }
33
+
34
+ img { vertical-align: middle; }
35
+
36
+ p, li, dt, dd {
37
+ line-height: 1.5;
38
+ font-size: .95em;
39
+ }
40
+
41
+ p, ul, ol, dl {
42
+ margin-left: 3em;
43
+ margin-right: 2em;
44
+ }
45
+
46
+ p + p {
47
+ text-indent: 1.4em;
48
+ }
49
+
50
+ dl {
51
+ margin: 1em 3em;
52
+ }
53
+
54
+ dl dt a {
55
+ font: 1.5em bold Lucida Grande, sans-serif;
56
+ }
57
+
58
+ dl dt {
59
+ font-weight: bold;
60
+ }
61
+
62
+ dl dd {
63
+ margin: 0em 3em;
64
+ }
65
+
66
+ ul {
67
+ list-style: square outside;
68
+ }
69
+
70
+ li p { /* Markdown define paragraphs for list items. */
71
+ margin: 0;
72
+ }
73
+
74
+ /*
75
+ * Ensure that nested items have the same size as their parent as we are
76
+ * using (relative) em sizing.
77
+ */
78
+ li li, li p, td p, blockquote p {
79
+ font-size: 1em;
80
+ }
81
+
82
+ abbr, acronym {
83
+ letter-spacing:0.1em
84
+ font-variant: small-caps;
85
+ }
86
+
87
+ em {
88
+ font-style: italic;
89
+ }
90
+
91
+ term {
92
+ font-style: italic;
93
+ }
94
+
95
+ cite {
96
+ font-style: italic;
97
+ }
98
+ input, select, th, td {font-size:1em}
99
+
100
+ /******************************* Headers ********************************/
101
+
102
+ h1 {
103
+ text-align: center;
104
+ padding: .3em 2em 0em 2em;
105
+ margin: 0;
106
+ color: black;
107
+ font-size: 1.3em;
108
+ }
109
+
110
+ h2 {
111
+ margin-left: 0.4em;
112
+ font-weight: bold;
113
+ font-size: 1.2em;
114
+ border-bottom: medium #5089da solid;
115
+ }
116
+
117
+ h3 {
118
+ font-size: 1.2em;
119
+ margin-left: .5em;
120
+ margin-right: auto;
121
+ color: #929292;
122
+ border-bottom: thin solid #929292;
123
+ }
124
+
125
+ /************************ Editing / Authoring ********************/
126
+
127
+ .todo {
128
+ background: red;
129
+ color: yellow;
130
+ font-weight: bold;
131
+ }
132
+
133
+ /************************ Samples, Input, Code, Commands ********************/
134
+
135
+ code {
136
+ font-family: monospace;
137
+ }
138
+
139
+
140
+
141
+ kbd:before {
142
+ content: open-quote;
143
+ }
144
+
145
+ kbd:after {
146
+ content: close-quote;
147
+ }
148
+
149
+
150
+ code, kbd, var, pre {
151
+ font-family: monaco, "Courier New", courier, monospace;
152
+ font-size: 14px;
153
+ }
154
+
155
+ .command-box {
156
+ clear: right; /* Side notes. */
157
+ border: 1px dotted #888;
158
+ background: #151515;
159
+ color: #eee;
160
+ margin: .5em 2em .5em 3em;
161
+ padding: .5em;
162
+ text-align: left;
163
+ font-family: monospace;
164
+ -moz-border-radius: .5em;
165
+ -webkit-border-radius: .5em;
166
+ border-radius: .5em;
167
+
168
+ }
169
+
170
+ span.placeholder {
171
+ font-style: italic;
172
+ }
173
+
174
+ span.placeholder:before {
175
+ content: "<";
176
+ }
177
+
178
+ span.placeholder:after {
179
+ content: ">";
180
+ }
181
+
182
+ .command-box span.placeholder {
183
+ font-style: normal;
184
+ color: #cc2;
185
+ }
186
+
187
+ .source-code-box {
188
+ border: 1px dotted #888;
189
+ background: #151515;
190
+ color: #eee;
191
+ margin: .5em 2em .5em 3em;
192
+ padding: .5em;
193
+ text-align: left;
194
+ font-family: monospace;
195
+ -moz-border-radius: .5em;
196
+ -webkit-border-radius: .5em;
197
+ border-radius: .5em;
198
+ }
199
+
200
+ .output-box {
201
+ border: 1px dotted #888;
202
+ background: #151515;
203
+ color: #eee;
204
+ margin: .5em 2em .5em 3em;
205
+ padding: .5em;
206
+ text-align: left;
207
+ font-family: monospace;
208
+ }
209
+
210
+ .sample-box {
211
+ border: 1px dotted #444;
212
+ margin: .5em 2em .5em 3em;
213
+ padding: .5em;
214
+ text-align: left;
215
+ }
216
+
217
+ /*
218
+ * Global styles for PH Web
219
+ */
220
+
221
+ /*
222
+ * Banner and Main navigation menu
223
+ */
224
+
225
+ div.banner {
226
+ margin: 0;
227
+ padding: 0;
228
+ float: left;
229
+ width: 100%;
230
+ font-size: 110%;
231
+ line-height: normal;
232
+ background: #5089da url( Main-Menu-Background-2.jpg ) repeat-y bottom left;
233
+ border-bottom: thin #666 solid;
234
+ }
235
+
236
+ div.banner div.signature span.by {
237
+ font: italic .7em Didot, serif;
238
+ padding-right: .6em;
239
+ text-shadow: .2em .2em .2em #222;
240
+ }
241
+
242
+ div.banner div.signature {
243
+ float: right;
244
+ color: gainsboro;
245
+ font: 1.1em Didot, serif;
246
+ margin: 0;
247
+ padding: 60px .1em 0 0;
248
+ vertical-align: baseline;
249
+ }
250
+
251
+ img#banner-logo {
252
+ float: left;
253
+ margin: .3em 6em .1em 1em;
254
+ border: 0;
255
+ }
256
+
257
+
258
+ div.banner a#feed_link img {
259
+ vertical-align: middle;
260
+ border: 0;
261
+ float: right;
262
+ margin: .5em 1em;
263
+ }
264
+
265
+ div.banner a#contact_me_link img {
266
+ vertical-align: middle;
267
+ border: 0;
268
+ float: right;
269
+ margin: .5em 1em;
270
+ }
271
+
272
+ ul.section-menu {
273
+ float: left;
274
+ margin: 0 auto;
275
+ padding: 0;
276
+ width: 40em;
277
+ list-style: none;
278
+ }
279
+
280
+ ul.section-menu li {
281
+ display:block;
282
+ float: left;
283
+ margin: .8em 1px .5em 1px;
284
+ padding: 1em 0;
285
+ background: transparent url( 'Button Gradient.png' ) repeat-x center;
286
+ text-shadow: .1em .1em .2em #444;
287
+ }
288
+
289
+
290
+ ul.section-menu li a:visited {
291
+ color: gainsboro;
292
+ }
293
+
294
+ ul.section-menu li a {
295
+ padding: 0 1em;
296
+ margin: 0;
297
+ font: bold .9em Lucida Grande, sans-serif;
298
+ text-decoration: none;
299
+ color: gainsboro;
300
+ }
301
+
302
+ ul.section-menu li.first a {
303
+ padding-left: .6em;
304
+ }
305
+
306
+ ul.section-menu li.last a {
307
+ padding-left: .6em;
308
+ }
309
+
310
+ ul.section-menu li a:hover {
311
+ color: white;
312
+ }
313
+
314
+ ul.section-menu li#current a {
315
+ color: #ff8;
316
+ }
317
+
318
+ div.content {
319
+ float: left;
320
+ background: url(Shore.jpg) no-repeat left top;
321
+ width: 100%;
322
+ padding: 0;
323
+ padding-top: 1.3em;
324
+ padding-bottom: 1.3em;
325
+ text-align: left;
326
+ clear: both;
327
+ margin: 0;
328
+ }
329
+
330
+
331
+ p.Cartouche {
332
+ float: right;
333
+ width: 15em;
334
+ margin: 0 2em 2em 3em;
335
+ background: #5089da;
336
+ padding: 1em;
337
+ text-align: center;
338
+ color: white;
339
+ font-weight: bold;
340
+ border: 0;
341
+ text-indent: 0;
342
+
343
+ -moz-border-radius: .5em;
344
+ -webkit-border-radius: .5em;
345
+ border-radius: .5em;
346
+ -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5)
347
+ }
348
+
349
+ p.Cartouche a img {
350
+ border: 0;
351
+ }
352
+
353
+ .Copyright {
354
+ clear: both;
355
+ text-align: center;
356
+ font: italic 1em Lucida Grande, sans-serif;
357
+ color: #444;
358
+ margin-bottom: .2em;
359
+ }
360
+
361
+ .License {
362
+ margin-top: 0;
363
+ font: italic 1em Lucida Grande, sans-serif;
364
+ color: #444;
365
+ }
366
+
367
+ a.discussion_link {
368
+ text-decoration: none;
369
+ }
370
+
371
+ a.comment_counter {
372
+ color: #5089da;
373
+ padding: 0 1.5em;
374
+ }
375
+
376
+ h2.document_reference a {
377
+ text-decoration: none;
378
+ }
379
+
380
+ span.tag_list {
381
+ padding-left: 4em;
382
+ font-weight: normal;
383
+ }
384
+
385
+ span.tag_list img {
386
+ vertical-align: middle;
387
+ }
388
+
389
+ span.tag_list:before {
390
+ content: '[';
391
+ }
392
+
393
+ span.tag_list:after {
394
+ content: ']';
395
+ }
396
+
397
+ p.read_more, p.read_more a {
398
+ font-variant : small-caps;
399
+ font-weight: bold;
400
+ color: #5089da;
401
+ }
402
+
403
+ h2 span.post_date {
404
+ padding-right: 1em;
405
+ color: #5089da;
406
+ }
407
+
408
+ div#contact_form {
409
+ margin: 2em;
410
+ }
411
+
412
+ div#contact_form label {
413
+ margin-bottom: 100px;
414
+ padding: 5em 1em 5em 0;
415
+ }
416
+
417
+ div#contact_form textarea {
418
+ margin-top: 1.5em;
419
+ width: 50em;
420
+ }
421
+
422
+ div.errorExplanation {
423
+ background: #fbb;
424
+ color: red;
425
+ padding: 1em;
426
+ margin: 1em;
427
+ -moz-border-radius: 1em;
428
+ -webkit-border-radius: 1em;
429
+ border-radius: 1em;
430
+ }
431
+
432
+ div.errorExplanation h2 {
433
+ font-size: 1em;
434
+ border: 0;
435
+ color: red;
436
+ }
437
+
438
+ /*
439
+ * Round box
440
+ */
441
+ table.box {
442
+ table-layout: fixed;
443
+ border-spacing: 0;
444
+ border: none;
445
+ }
446
+
447
+ table.box tr, table.box tr td {
448
+ padding: 0;
449
+ margin: 0;
450
+ border: none;
451
+ }
452
+
453
+ table.box tr.top, table.box tr.bottom {
454
+ height: 30px;
455
+ }
456
+
457
+ table.box tr.bottom td { /* Fix for Safari who does not pick up height from the <tr> rule. */
458
+ height: 30px;
459
+ }
460
+
461
+ table.box tr td.left, table.box tr td.right {
462
+ width: 30px;
463
+ }
464
+
465
+ table.box tr.top td.left {
466
+ background: url('Blue Box Top Left.png') no-repeat top left;
467
+ }
468
+
469
+ table.box tr.top td.center {
470
+ background: url('Blue Box Top.png') repeat-x top;
471
+ }
472
+
473
+ table.box tr.top td.right {
474
+ background: url('Blue Box Top Right.png') no-repeat top right;
475
+ }
476
+
477
+ table.box tr.middle td.left {
478
+ background: url('Blue Box Left.png') repeat-y left;
479
+ }
480
+
481
+ table.box tr.middle td.center {
482
+ background: url('Blue Box Center.png') repeat;
483
+ padding: 0px;
484
+ }
485
+
486
+ table.box tr.middle td.right {
487
+ background: url('Blue Box Right.png') repeat-y right;
488
+ }
489
+
490
+ table.box tr.bottom td.left {
491
+ background: url('Blue Box Bottom Left.png') no-repeat bottom left;
492
+ }
493
+
494
+ table.box tr.bottom td.center {
495
+ background: url('Blue Box Bottom.png') repeat-x bottom;
496
+ }
497
+
498
+ table.box tr.bottom td.right {
499
+ background: url('Blue Box Bottom Right.png') no-repeat bottom right;
500
+ }
501
+
502
+
503
+ /*
504
+ * Styles for PH articles.
505
+ */
506
+
507
+ div.content {
508
+ float: left;
509
+ width: 90%;
510
+ padding: 0 3em;
511
+ }
512
+
513
+ div.content * {
514
+ text-align: left;
515
+ }
516
+
517
+ div.content h1 {
518
+ padding: 1em 2em 1em 2em;
519
+ text-align: center;
520
+ font-size: 1.7em;
521
+ text-shadow: .1em .1em .2em #666;
522
+ }
523
+
524
+ div.content table.reference-table {
525
+ margin-left: 4em;
526
+ }
527
+ div.content table.reference-table tr td, div.content table.reference-table tr th {
528
+ padding: .3em 1em;
529
+ text-align: left;
530
+ }
531
+
532
+ div.Header {
533
+ margin: .5em 3em 1em 3em;
534
+ padding: .5em 1em .5em 1em;
535
+ background: #999;
536
+ color: #fff;
537
+ border: thin solid #888;
538
+ text-align: center;
539
+ }
540
+
541
+ div.Author {
542
+ padding: 0;
543
+ margin: 0;
544
+ color: #fff;
545
+ font: italic 1em serif;
546
+ }
547
+
548
+ div.Author:before {
549
+ content: "By "
550
+ }
551
+
552
+ div.LastUpdate:before {
553
+ content: "Last significant update: "
554
+ }
555
+
556
+ p.LastUpdate {
557
+ padding: 0;
558
+ margin: -.5em 0 1.2em 0;
559
+ color: #222;
560
+ font: italic 1em sans-serif;
561
+ text-align: center;
562
+ }
563
+
564
+ div.Abstract {
565
+ margin: .5em 6em;
566
+ background: #5089da;
567
+ color: white;
568
+ text-align: justify;
569
+ padding: 1.2em 1.2em;
570
+
571
+ -moz-border-radius: 1em;
572
+ -webkit-border-radius: 1em;
573
+ border-radius: 1em;
574
+ -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5)
575
+ }
576
+
577
+ div.Abstract p {
578
+ margin: 1em 0 0 0;
579
+ padding: 0;
580
+ }
581
+
582
+ div.Abstract p.first {
583
+ margin-top: 0;
584
+ }
585
+
586
+ div.Audience:before {
587
+ content: "Audience: ";
588
+ }
589
+
590
+ div.Audience {
591
+ margin: .5em 2em;
592
+ color: #444;
593
+ font: italic 1em Verdana sans-serif;
594
+ text-align: justify;
595
+ }
596
+
597
+
598
+ h2 {
599
+ margin-top: 1.5em;
600
+ margin-left: 0em;
601
+ font-weight: bold;
602
+ font-size: 1.2em;
603
+ border-bottom: medium #5089da solid;
604
+ text-shadow: .1em .1em .2em #666;
605
+ }
606
+
607
+ h3 {
608
+ font-size: 1.1em;
609
+ margin-top: 1em;
610
+ margin-left: 1em;
611
+ margin-right: auto;
612
+ color: #5089da;
613
+ border-bottom: thin solid #929292;
614
+ text-shadow: .1em .1em .2em #bbb;
615
+ }
616
+
617
+ h4 {
618
+ font-size: 1em;
619
+ font-weight: bold;
620
+ margin-left: 2em;
621
+ margin-right: auto;
622
+ color: #000;
623
+ border-bottom: thin #5089da solid;
624
+ }
625
+
626
+ div#what-s-next {
627
+ margin: .5em 0em;
628
+ background: #5089da;
629
+ color: white;
630
+ text-align: justify;
631
+ padding: 1.5em 1em 1em 1em;
632
+
633
+ -moz-border-radius: 1em;
634
+ -webkit-border-radius: 1em;
635
+ border-radius: 1em;
636
+ -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5)
637
+ }
638
+
639
+ div#what-s-next h2 {
640
+ color: white;
641
+ padding-top: 0em;
642
+ padding: 0;
643
+ margin: 0;
644
+ }
645
+
646
+ div#what-s-next h3 {
647
+ color: #060c14;
648
+ border-color: #305282;
649
+ }
650
+
651
+ div.side-note {
652
+ float: right;
653
+ width: 23em;
654
+ margin: 0 0 1.2em 2em;
655
+ padding: 0;
656
+
657
+ background: lightyellow;
658
+ border: thin solid #a8a86d;
659
+ }
660
+
661
+ div.side-note .header {
662
+ margin: .25em 1em;
663
+ padding: 0 0 .3em 0;
664
+
665
+ color: black;
666
+ border-bottom: solid medium #5089da;
667
+ }
668
+
669
+ div.side-note p {
670
+ margin: .5em 1em;
671
+ }
672
+
673
+ div.side-note .header p {
674
+ text-align: center;
675
+ font-weight: bold;
676
+ margin: 0;
677
+ padding: 0;
678
+ }
679
+
680
+ h2, h3 {
681
+ clear: both;
682
+ }
683
+
684
+ div.maruku_toc ul {
685
+ margin: 0 2em;
686
+ padding: 0;
687
+ }
688
+
689
+ div.maruku_toc ul li ul {
690
+ margin: 0 2em;
691
+ padding: 0;
692
+ }
693
+
694
+ div.content li {
695
+ margin-top: 1em;
696
+ margin-bottom: 1em;
697
+ }
698
+
699
+ blockquote {
700
+ color: #333;
701
+ font-style: Italic;
702
+ }
703
+
704
+ .ruby .normal {}
705
+ .ruby .comment { color: #005; font-style: italic; }
706
+ .ruby .keyword { color: #A00; font-weight: bold; }
707
+ .ruby .method { color: #077; }
708
+ .ruby .class { color: #074; }
709
+ .ruby .module { color: #050; }
710
+ .ruby .punct { color: #447; font-weight: bold; }
711
+ .ruby .symbol { color: #099; }
712
+ .ruby .string { color: #944; background: #FFE; }
713
+ .ruby .char { color: #F07; }
714
+ .ruby .ident { color: #004; }
715
+ .ruby .constant { color: #07F; }
716
+ .ruby .regex { color: #B66; background: #FEF; }
717
+ .ruby .number { color: #F99; }
718
+ .ruby .attribute { color: #7BB; }
719
+ .ruby .global { color: #7FB; }
720
+ .ruby .expr { color: #227; }
721
+ .ruby .escape { color: #277; }