ZenTest 3.7.2 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
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; }