forked from russgold/httpunit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
release_notes.html
1551 lines (1453 loc) · 110 KB
/
release_notes.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<html>
<head><title>httpunit 1.7.2 release notes</title></head>
<body>
<h1>HttpUnit release notes</h1>
<pre>
$Id$
$URL$
</pre>
<h3>Known problems:</h3>
<ol>
<li>The "accept-charset" attribute for forms is ignored; the page content character set is used to encode any response.
This behavior matches that currently used by IE and Navigator.</li>
<li>Defining a form parameter with the same name or ID as a JavaScript Form function will cause that function not to
be callable.</li>
</ol>
<h3>Limitations:</h3>
<ol>
<li>JDK 1.5 or higher is required</li>
<li>JDK 1.4.2 or higher may be used by slightly modifying the source code</li>
<li>JavaScript support does not include some DOM properties</li>
<li>The JavaScript assignment Document.cookie= does not restrict the cookie by path and domain</li>
<li>Only table cells and explicit paragraphs are recognized as text blocks</li>
</ol>
<h2>Revision History:</h2>
<h3>Version 1.7.2 Release 2012-10</h3>
<h4>Acknowledgements:</h4>
<ul>
<li>Marc Guillemot for his change request to add the response to a HttpException</li>
<li>Robert Wadura for showing that trying to load included scripts that do not exist might abort entire requests - was already fixed in 1.7 but not mentioned in the release notes</li>
<li>Dan Lipofsky for pointing out some problems with JavaScript handling</li>
<li>James Abley for making the Abstract base class of the TestCases abstract</li>
<li>Tiago Luchini for a fix to avoid that forms are submitted twice</li>
<li>Martin Burchell for supplying a testCase for the forms are submitted twice problem</li>
<li>Hugh Winkler for pointing out that setAuthorization(user, password should not be deprecated</li>
<li>Peter De Bruycker for asking to make form.name property mutable</li>
<li>Dawn Lambeth for helping to fix a NullPointerException in MimeEncodedMessageBody</li>
<li>Matthew O. Smith for finding a but that BlockElement is not checking null</li>
<li>Markus Gaisbauer for correcting an issue with Cookie handling </li>
<li>Malcolm Robbins for helping to fix isHiddenParameter which return true for non existing parameters</li>
<li>Stephen Cresswell for suggesting to modify CookieTest</li>
<li>Stephen Mikaty for an addition to so that the XPath Predicate handling may work again</li>
<li>Mattias Jiderhamn for helping to avoid 'event is not defined' problems</li>
<li>Brendan Boesen for revisiting BR 2264431</li>
<li>James Courtney for proposing a new test case and providing a fix</li>
<li>Serge Maslyukov for a path to solve issue with drupal's cookie</li>
<li>Chris Wilson for supplying a fix for Rhino JavaScript errors to show up when ScriptError handling is switched off</li>
<li>redsonic and Adam Heath for proposing a patch to solve problems with getFormWithId()</li>
<li>Oliver Wahlen for asking for a solution to get the bytes for a download result - WebResponse.getBytes() is now available for this purpose</li>
</ul>
Please find more references to helpful people in the subversion history below.
<h4>Recent subversion history</h4>
<ol>
<li>2009-08-20: svn keywords set
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1045">r1045</a>)
</li>
<li>2009-08-20: test case for double quoted cookie problem pointed out by Mario V
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1046">r1046</a>)
</li>
<li>2009-08-20: Patch by Antoine Vernois: it implements getServerName() and getServerPort of ServletUnitHttpRequest. ServerName and ServerPort are extracted from request's URL instead of always returning localhost and 0.
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1047">r1047</a>)
</li>
<li>2009-08-20: 2009-08-20: 2009-08-20: Patch by Rick Huff: to implement the <br />getElementsWithClassName() method. This method returns those nodes <br />where there are more than one class name on the element.
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1048">r1048</a>)
</li>
<li>2009-08-21: Patch by Matthew Boedicker: post with authentication using inputstream
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1049">r1049</a>)
</li>
<li>2009-08-21: Patch by Dan Lipofsky - reset Listeners and allow switching off parsing. Switch off parsing for Head method.
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1050">r1050</a>)
</li>
<li>2009-08-21: fix for BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2534057&group_id=6550&atid=106550">2534057</a> by Igor Kanshin
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1051">r1051</a>)
</li>
<li>2009-08-21: add getSocketFactory convenience method as proposed by Florian Weimar
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1053">r1053</a>)
</li>
<li>2009-08-21: fixed examples (e.g. for changed behaviour of target web sites)
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1054">r1054</a>)
</li>
<li>2009-08-21: 2009-08-21: [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1163753&group_id=6550&atid=306550">1163753</a> ] partial patch for bug 771335 (DOM2 Events support) by <br />Rafal Krzewski
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1055">r1055</a>)
</li>
<li>2009-08-21: Svn Keywords set
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1056">r1056</a>)
</li>
<li>2009-08-21: Testcase for patch
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1057">r1057</a>)
</li>
<li>2009-08-21: Svn Keywords set
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1058">r1058</a>)
</li>
<li>2009-09-10: This patch adds support for creating and testing HTTP DELETE requests. - by Matthew M. Boedicker
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1061">r1061</a>)
</li>
<li>2009-12-22: 2009-12-22: Patch for issue when server returns empty content type value + workaround for regression<br />problem - do not try to redefine resources
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1062">r1062</a>)
</li>
<li>2010-05-06: comment for BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1672385&group_id=6550&atid=106550">1672385</a> of 2010-04-22
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1063">r1063</a>)
</li>
<li>2010-05-06: type fixed as outlined in BR<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2595566&group_id=6550&atid=106550">2595566</a> by Sebastian Lisken
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1064">r1064</a>)
</li>
<li>2010-05-07: comment typo fixed
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1065">r1065</a>)
</li>
<li>2010-05-07: patch by Izzy Alanis - but test not working yet
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1066">r1066</a>)
</li>
<li>2010-05-07: patch for parseContentTypeHeader by Serge Maslyukov
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1067">r1067</a>)
</li>
<li>2010-05-07: patch by Serge Maslyukov for Triple dotted path handling
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1068">r1068</a>)
</li>
<li>2011-01-10: improved documentation and changed proxy settings to constants. Added System.out message to explain how to modify this example
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1069">r1069</a>)
</li>
<li>2011-01-10: fixed according to changes on simple.wiktionary.org
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1070">r1070</a>)
</li>
<li>2011-01-10: add suport for getDesktop if available
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1071">r1071</a>)
</li>
<li>2011-01-10: fixed to use Google Maps direction API
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1072">r1072</a>)
</li>
<li>2011-01-10: leave xml output untouched
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1073">r1073</a>)
</li>
<li>2011-01-11: You Tube Visitor example
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1074">r1074</a>)
</li>
<li>2011-01-11: new example
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1075">r1075</a>)
</li>
<li>2011-01-29: removed superfluous call - added comment
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1076">r1076</a>)
</li>
<li>2011-01-29: fix of BR<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2822484&group_id=6550&atid=306550">2822484</a> by gcc with supplied patch file httpunit-textarea-090923.patch
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1077">r1077</a>)
</li>
<li>2011-04-07: removed unused import
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1078">r1078</a>)
</li>
<li>2011-12-19: modified version number to 1.7.1 for maven builds
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1079">r1079</a>)
</li>
<li>2012-09-07: switch to full maven build to prepare for sync to maven central
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1080">r1080</a>)
</li>
<li>2012-09-09: switch to JUnit4
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1081">r1081</a>)
</li>
<li>2012-09-10: fix jetty comment
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1082">r1082</a>)
</li>
<li>2012-09-10: [maven-release-plugin] prepare release httpunit-1.7.1
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1083">r1083</a>)
</li>
<li>2012-09-10: [maven-release-plugin] copy for tag httpunit-1.7.1
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1084">r1084</a>)
</li>
<li>2012-09-10: [maven-release-plugin] prepare for next development iteration
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1085">r1085</a>)
</li>
<li>2012-09-12: converted to m2eclipse project
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1086">r1086</a>)
</li>
<li>2012-09-12: add checks for InvocationContextFactory - clearly ServletAccessTest can not be run on it's own with this change
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1087">r1087</a>)
</li>
<li>2012-09-12: 2012-09-12: modified for BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2825872&group_id=6550&atid=106550">2825872</a> Cookie domains not stored correctly - ID: 2825872<br />by aptivate
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1088">r1088</a>)
</li>
<li>2012-09-12: 2012-09-12: adds fix for BR BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2822957&group_id=6550&atid=106550">2822957</a> Cannot remove file upload parameter once set in WebForm<br />by Chris Wilson
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1089">r1089</a>)
</li>
<li>2012-09-12: 2012-09-12: Fixes BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2834933&group_id=6550&atid=106550">2834933</a> There is no facility to allow recursive redirects<br />by Aptivate
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1090">r1090</a>)
</li>
<li>2012-09-12: 2012-09-12: switch to latest jtidy release as asked for by BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2880636&group_id=6550&atid=106550">2880636</a><br />by Chuck Betts
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1092">r1092</a>)
</li>
<li>2012-09-12: 2012-09-12: fixes BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2883515&group_id=6550&atid=106550">2883515</a> noscript tag parsing incorrect<br />by Matthias Hanisch
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1093">r1093</a>)
</li>
<li>2012-09-12: 2012-09-12: fix BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2946821&group_id=6550&atid=106550">2946821</a> getDOM changes since 1.5.4<br />by max
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1094">r1094</a>)
</li>
<li>2012-09-12: 2012-09-12: fixes BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2957505&group_id=6550&atid=106550">2957505</a> No 'opaque' causes NPE when attempting DigestAuthentication<br />by Jason McSwain
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1095">r1095</a>)
</li>
<li>2012-09-13: 2012-09-13: fixes BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=3076917&group_id=6550&atid=106550">3076917</a> Missing port number in URL from ServletUnitHtt<br />by bbogg
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1096">r1096</a>)
</li>
<li>2012-09-13: 2012-09-13: mostly fixes BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=3301056&group_id=6550&atid=106550">3301056</a> ServletUnit handling Content-Type incorrectly<br />by Kevin Hunter - the default Content-Type can not be set to null or any other value at this time
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1097">r1097</a>)
</li>
<li>2012-09-13: 2012-09-13: 2012-09-13: fixes FR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2836664&group_id=6550&atid=356550">2836664</a> make WebRequestSource.getDestination() public<br />by Dan Lipofsky<br />and makes sure FR records will show up in release notes
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1098">r1098</a>)
</li>
<li>2012-09-13: added svn log results from 2009-09 to 2012-09
(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1044">r1099</a>)
</li>
</ol>
<h4>Problems fixed:</h4>
<li>BR [<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1055450&group_id=6550&atid=106550">1055450</a> ] Error loading included script aborts entire request</li>
<li>BR [<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2034998&group_id=6550&atid=106550">2034998</a> ] by Tiago Luchini + fix of another bug (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=991">r991</a>) </li>
<li>BR [<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2212706&group_id=6550&atid=106550">2212706</a> ] NullPointerException in MimeEncodedMessageBody by Dawn Lambeth (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=997">r997</a>)</li>
<li>BR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1963211&group_id=6550&atid=106550">1963211</a> ] FindBug: BlockElement not checking null by Matthew O. Smith (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1008">r1008</a>) </li>
<li>BR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2076028&group_id=6550&atid=106550">2076028</a> ] Cookies are handeled incorrectly by Markus Gaisbauer (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1006">r1006</a>) </li>
<li>BR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2099277&group_id=6550&atid=106550">2099277</a> ] isHiddenParameter() returns true when non existent by Malcolm Robbins (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1007">r1007</a>)
<li>BR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2100376&group_id=6550&atid=106550">2100376</a> ] Unable to implement an XPath Predicate (which used to work) by Stephane Mikaty (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1010">r1010</a>) </li>
<li>BR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2100376&group_id=6550&atid=106550">2100376</a> ] Unable to implement an XPath Predicate (which used to work) by Stephane Mikaty (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1012">r1012</a>) </li>
<li>Patch [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1968504&group_id=6550&atid=306550">1968504</a> ] Avoid '"event" is not defined' by Mattias Jiderhamn (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1013">r1013</a>) </li>
<li>BR[<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2264431&group_id=6550&atid=106550">2264431</a>] Revisited by Brendan Boesen (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1014">r1014</a>)</li>
<li>fix by James Courtney (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1033">r1033</a>) </li>
<h5>Other modifications</h5>
<ol>
<li>made abstract on recommendation of James Abley (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=990">r990</a>)</li>
<li>test case for BR<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2034998&group_id=6550&atid=106550">2034998</a> by Martin Burchell, Aptivate (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=992">r992</a>)</li>
<li>removed deprecated as asked for in BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2034206&group_id=6550&atid=106550">2034206</a> by Hugh Winkler (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=993">r993</a>) </li>
<li>FR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2163079&group_id=6550&atid=106550">2163079</a> ] make form.name property mutable by Peter De Bruycker (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=995">r995</a>)</li>
<li>follow up on BR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1518901&group_id=6550&atid=106550">1518901</a> ] (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=998">r998</a>) </li>
<li>Test for [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2264431&group_id=6550&atid=106550">2264431</a> ] form.submit() sends multiple HTTP POSTS (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=999">r999</a>) </li>
<li>modified according to suggestion by Stephen Cresswell (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1005">r1005</a>)</li>
<li>added test case for discussing <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2373755&group_id=6550&atid=106550">2373755</a>(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1015">r1015</a>)</li>
<li>new testcase according to discussion with James Courtney (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1017">r1017</a>)</li>
<li>Negotiate Header should not spoil Authentication -- null pointer problem removed (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1019">r1019</a>)</li>
<li>patch by Serge Maslyukov to solve issue with drupal's cookie (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1020">r1020</a>) </li>
<li>fix problems in german locale (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1032">r1032</a>) </li>
<li>check behaviour of undefined resources (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1035">r1035</a>) </li>
<li>modify message on failure of getIncludes Scripts via src attributes<br />to make sure the message is the same on all setting of Exception and ScriptError status flags (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1039">r1039</a>) </li>
<li>add test for HeadMethodWebRequest by Dan Lipofsky and fix the PseudoServer accordingly. Make sure GetMethodWebRequest sets the method attribute in the superClass. (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1040">r1040</a>) </li>
<li>fixed BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2637824&group_id=6550&atid=106550">2637824</a> by Chris Wilson <br />JavaScriptException still fatal with script exceptions off (Rhino)(<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1041">r1041</a>) </li>
<li>proposed fix for BR <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2407470&group_id=6550&atid=306550">2407470</a> Regression in httpUnit-1.7 by redsonic with Patch from Adam Heath (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1042">r1042</a>) </li>
</ol>
<h4>Additions:</h4>
<h5>Debugging</h5>
Whenever some code was changed it was made more debug and test-friendly.
<ul>
<li>One-lines have been modified to multiple lines to be able to inspect variables that hold temporary results</li>
<li>accessing private variables is sometimes done via getters and setters just to be able to better debug when the variable is set</li>
</ul>
<h5>Error handling</h5>
<ol>
<li>change request #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=914314&group_id=6550&atid=356550">914314</a>Add HttpException.getResponse for better reporting - comment added only</li>
<li>implemented CR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=914314&group_id=6550&atid=106550">914314</a> ] to add getResponse to HttpException<br />improved handling of undefined resources in PseudoServer<br />getIncludedScript now handles 404 errors according to the HttpUnit Options settings for script error and exception handling (thanks to Dan Lipofsky for pointing this out) (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1036">r1036</a>) </li>
</ol>
<h5>Content and Parsing</h5>
<ol>
<li>Test added for BR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1964665&group_id=6550&atid=106550">1964665</a> ] HeaderOnlyRequest cannot be constructed (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1009">r1009</a>) </li>
<li>getBytes added to WebResponse according to a CR by Oliver Wahlen<br />getDownload helper function is superfluous now (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1043">r1043</a>) </li>
</ol>
<h5>Java Script</h5>
<ol>
<li>FR [ <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=2025598&group_id=6550&atid=106550">2025598</a> ] support javascript window.scrollTo() (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=994">r994</a>) </li>
<li>toLowerCase built in function added (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1021">r1021</a>) </li>
<li>patch <a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1152036&group_id=6550&atid=306550">1152036</a>: don't request javascript when not enabled (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1022">r1022</a>) </li>
</ol>
<h5>IDE Support</h5>
<ol>
<li>updated for new maven2 repository (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=987">r987</a>)</li>
<li>Eclipse settings added (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=988">r988</a>) </li>
<li>Eclipse setting modified for lesser warnings (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1023">r1023</a>) </li>
<li>more settings changed (<a href="http://httpunit.svn.sourceforge.net/viewvc/httpunit?view=rev&revision=1024">r1024</a>)</li>
</ol>
<h4>Improvements</h4>
<h5>Javadoc</h5>
<h3>Version 1.7 Released 2008-05-20</h3>
<h4>Acknowledgements:</h4>
This project would almost certainly have remained dormant without the extraordinary contributions of our new committer, Wolfgang Fahl.
Wolfgang has been extremely active over the past few months, erasing the backlog in bug, patches, and enhancement requests,
and generally improving the quality and energy of the project.
In addition, thanks are due to:<ul>
<li>Stefan Hübner for supplying a patch for URL-decoding of parameters in ServletUnit</li>
<li>Archimedes Trajano for supplying code to support non-JSSE SSL providers</li>
<li>Bobby Abraham for adding the capability of deleting a cookie manually</li>
<li>Rafal Krzewski for adding special handling for form actions containing a parameter named "action."</li>
<li>Michael Rudolf for adding support for connection and read timeouts.</li>
<li>Richard Lee for supporting xy parameter submission for unnamed image buttons.</li>
<li>Laurent Wozniak for address the handling of expired cookies</li>
<li>Matthew O. Smith for adding more sophisticated logging to ServletUnit</li>
<li>Mattias Jiderhamn for adding Javascript support for arbitrary attributes</li>
<li>Björn Beskow for adding Javascript support for 'onMouseUp' and 'onMouseDown' events</li>
<li>Jord Sonneveld for adding support for onBlur and onFocus events</li>
<li>Hugh Winkler for fixing getPathInfo decoding</li>
<li>David D. Kilzer for supporting direct invocation ot javascript events</li>
<li>Fabrizio Giustina for enabling html parsing of xml responses</li>
<li>Roger Lindsj for adding handling of empty error pages under JDK 1.5</li>
</ul>
<h4>Notes:</h4>
<ol>
<li>Upgraded NekoHTML to 0.9.5</li>
<li>Upgraded Xerces to 2.6.1</li>
<li>Upgraded Rhino to 1.6R5</li>
<li>The PostMethodWebRequest.setMimeEncoded method has been removed. Mime encoding, if desired, should now be
specified when constructing the object.
</li>
<li>WebLink.click() now only returns the contents of the frame containing the link. Previously, if there was no
event involved and the link included a frame reference, it would return the contents of the referenced frame.
</li>
<li> HttpUnit configuration management has been moved from CVS to subversion at
<a href="http://httpunit.svn.sourceforge.net/svnroot/httpunit/trunk/httpunit">http://httpunit.svn.sourceforge.net/svnroot/httpunit/trunk/httpunit</a>
</li>
<li>The build now uses the Maven dependencies task (see http://maven.apache.org/ant-tasks.html) rather than
keeping the dependent jars in the repository.
</li>
<li>When using the nekoHtml parser, tag and attribute names now default to lower case, rather than upper case as before</li>
<li>Empty cells from tables are no longer automatically purged when searching for a table by its first non-blank cell</li>
</ol>
<h4>Problems fixed:</h4>
<h5>Content and Parsing:</h5>
<ol>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1124057&group_id=6550&atid=106550">1124047</a> - selecting a select option by index should now throw RuntimeException rather than IndexOutOfBounds if the index is bad</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1212204&group_id=6550&atid=106550">1212204</a> - WebRquest.getQueryString was ignoring parameters without values</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1277797&group_id=6550&atid=106550">1277797</a> - expired cookies are now removed from the client session</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1283878&group_id=6550&atid=106550">1283878</a> - in JDK 1.5, empty error pages were causing FileNotFoundException to be thrown</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1371204&group_id=6550&atid=106550">1371204</a> - there was no way to change or delete a server-supplied cookie from a test</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1672385&group_id=6550&atid=106550">1672385</a> - specifying <code>HttpOnly</code> on a cookie header was causing any specified cookies to be lost</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1705925&group_id=6550&atid=106550">1705925</a> - URL-encoded parameter values were not decoded properly if HttpUnitOptions.setDefaultCharacterSet() is set to something different than ISO-8859-1</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1843978&group_id=6550&atid=106550">1843978</a> - the value of a SELECT control could not be set if the web page defined a namespace URI</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1895501&group_id=6550&atid=106550">1895501</a> - the applet codebase was defaulting to the root directory, rather than the current directory</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1954311&group_id=6550&atid=106550">1954311</a> - WebForm.setParameter no longer throws NullPointerException when the control is a TextArea</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1155415&group_id=6550&atid=306550">1155415</a> - in some cases, automatic redirects could result in an infinite loop</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1155792&group_id=6550&atid=306550">1155792</a> - could not set the action for a form if its original action had a parameter named "action" </li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1281655&group_id=6550&atid=306550">1281655</a> - attempts to parse xml as html were being rejected</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1443333&group_id=6550&atid=306550">1443333</a> - unnamed image buttons now submit positions as "x" and "y"</li>
</ol>
<h5>Javascript</h5>
<ol>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1289151&group_id=6550&atid=106550">1289151</a> - clicking a button was firing the 'onClick' event for disabled buttons</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=&group_id=6550&atid=106550">1396835</a> - increading the length of a select control was throwing an exception</li>
</ol>
<h5>PseudoServer</h5>
<ol>
<li>PseudoServer was incorrectly parsing chunk lengths as decimal rather than hexadecimal</li>
</ol>
<h5>ServletUnit</h5>
<ol>
<li>The implementation of ServletContext is now public, allowing it to be instantiated via reflection as needed</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1165454&group_id=6550&atid=106550">1165454</a> - HttpServletRequest.getScheme() now returns "https" for secure requests</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1242640&group_id=6550&atid=106550">1242640</a> - Causes of 500 errors are not included in the stack trace</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1323031&group_id=6550&atid=106550">1323031</a> - HttpServletRequest.getPathInfo was not properly decoding spaces in URLs</li>
</ol>
<h4>Additions:</h4>
<h5> Content and Parsing:</h5>
<ol>
<li>Created a custom HttpUnit DOM</li>
<li>Basic authentication now can support authorization only after challenge and different passwords for different realms.</li>
<li>Added support for rudimentary (RFC 2109) digest authentication.</li>
<li>Added "overrideContextType" property to ClientProperties to permit handling of files served with the wrong content type.</li>
<li>Added <a href="api/com/meterware/httpunit/HttpsProtocolSupport.html#useProvider(java.lang.String,%20java.lang.String)">HttpsProtocolSupport.useProvider</a> to override the default selection of the JSSE for SSL support</li>
<li>Added <a href="api/com/meterware/httpunit/HttpsProtocolSupport.html#useIBM()">HttpsProtocolSupport.useIBM</a> to select the SSL support provided by IBM WebSphere (which must be in the classpath)</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=844084&group_id=6550&atid=306550">844084</a> - added "sendReferer" property to ClientProperties to permit testing of sites when the referer header is blocked
by a firewall or proxy server</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1518901&group_id=6550&atid=306550">1518901</a> - added methods to control connection and read timeouts.</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1415415&group_id=6550&atid=306550">1415415</a> - added (mime types for tiff and pdf)</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1531005&group_id=6550&atid=306550">1531005</a> - getElementsWithAttribute should now work with most attribute names</li>
<li>bug #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1476380&group_id=6550&atid=106550">1476380</a> - cookies are now accepted even if their domain matches exactly</li>
</ol>
<h5>Javascript support</h5>
<ol>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=796961&group_id=6550&atid=356550">796961</a> - javascript events can now be directly invoked on elements</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=884146&group_id=6550&atid=306550">884146</a> - added support for the 'onMouseDown" and 'onMouseUp' events</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1030851&group_id=6550&atid=306550">1030851</a> - added support for 'onBlur' and 'onFocus' events</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1653410&group_id=6550&atid=306550">1653410</a> - added support for arbitrary element attributes</li>
</ol>
<h5>ServletUnit</h5>
<ol>
<li>HttpRequest.getDateHeader() has been implemented; previously it always returned -1</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1246438&group_id=6550&atid=106550">1246438</a> - HttpRequest.getReader is now implemented</li>
<li>patch #<a href="http://sourceforge.net/tracker/index.php?func=detail&aid=1864072&group_id=6550&atid=106550">1864072</a> - now log to a user-specified output stream</li>
</ol>
<h5>Pseudoserver:</h5>
<ol>
<li>Added WebResource.suppressAutomaticContentTypeHeader to permit generation of responses without the Content-Type header.</li>
<li>Improved debugging messages and handle response timeouts.</li>
</ol>
<h3>Version 1.6.2 released 2006-03-27:</h3>
<pre>
Acknowledgements:
Thanks for Fabrizio Giustina for suggesting a way to make the TableRow object publically accessible.
Problems fixed:
1. bug #1063494 HTML entity replacement was looping indefinitely on strings with '&' and no ';'
2. ServletContext.getRealPath() now handles relative paths that do not start with a "/"
Additions:
1. patch #1413171 Web table rows are now directly accessible in a TableRow element.
2. Added support for Servlet API 2.4
3. Implemented ServletContext.getServletContextName
4. (PseudoServer) made HttpRequest class public
</pre>
<h3>Version 1.6.1 released 2005-03-06 </h3>
<pre>
Acknowledgements:
Thanks to Hanson Char for identifying a JDK 1.5 incompatibility.
Thanks to Satish Kolli for fixing bug #1040770
Thanks to Fabrizio Guistina for supplying an implementation of locale handling for ServletUnitHttpResponse
Thanks to Vladimir Korenev for providing an implementation for style.visibility, element.tagName, and element.nodeName
Thanks to Yaqoub Jaiousi for identifying the problem with buttons outside of forms.
Problems fixed:
JDK compatibility
1. bug #1039989 Did not compile with JDK 1.3. This bug was introduced in HttpUnit 1.6 and has now been corrected.
2. Renamed local variables which conflicted with new JDK 1.5 keyword "enum."
Content and Parsing
3. bug #1046597 tables nested inside paragraphs were not being seen by the enclosing page. This bug was introduced
in 1.6 and has now been corrected.
4. bug #1074232 buttons outside of forms were only recognized if defined with the <button> tag, not <input>
Window handling
5. bug #1035949 Following a link from the top frame to a _parent target no longer results in a NullPointerException.
JavaScript
6. bug #1040508 Using the setCheckbox and toggleCheckbox methods was not triggering the onclick event
7. bug #1040770 the Image.name JavaScript property is now supported
8. bug #1047367 frames defined by javascript were not being detected.
9. patch #1046516 property style.visibility is now supported
10. bug #1073810 a null pointer exception is no longer thrown when javascript sets a control value to null
11. bug #1052779 window.open() with javascript URL no longer throws a null pointer exception or class cast exception
12. bug #1087180 setting a numeric value into a form parameter was appending a trailing decimal zero
ServletUnit
13. bug #1044820 ServletUnit now implements HttpServletResponse.getLocale() and setLocale()
14. bug #1051123 ServletUnit handling of parameter encoding was not cleaning up url-encodings
15. bug #1151277 only the first user-defined cookie was recognized in ServletUnit if multiple were set
PseudoServer
16. Made all WebResource constructors public
</pre>
<h3>Version 1.6 released 2004-10-03</h3>
<pre>
Acknowledgements:
Thanks to Chris Hane for making it easier to add support for javascript properties and for providing support for
getAttribute() to handle any property defined in the underlying Node.
Thanks to Patrick Lightbody for adding JavaScript support for the Style object
Thanks to Phil Zampino for finding a fixing a problem in PseudoServer's handling of very long requests.
Thanks to Andrew Bickerton for adding the following JavaScript support:
Form.length - returns the number of controls in a form
Control.type - returns a test description of the control type
Control.defaultValue - returns the default value for text controls
Initial page tokenizing now skips JavaScript while looking for header tags
Writing into an empty frame no longer corrupts all empty frames
Thanks to Jarom Smith for finding some typos in the tutorial.
Thanks to Jay Dunning for providing an implementation of HttpServletResponse.containsHeader
and implementing support for ServletContextListeners.
Thanks to Fabrizio Giustina for adding an entity-resolver to support local use of ServletUnit with a regular web.xml
Thanks to Kazuaki Matsuhashi for correcting the handling of non-Latin link parameters
Thanks to Dan Frankow for supplying an implementation of ServletContext.getMimeType and correcting the
implementation of HttpSession.setAttribute when the value is null
Thanks to Guillaume Dandurand for supplying code to get the onload event when the page
is a frameset rather than a regular page.
Thanks to Michael Corum for making the Button.disabled property settable from JavaScript.
Thanks to Darrell DeBoer for providing a patch for select box functionality
Thanks to Bart Vanhaute for finding a fixing an infinite recursion problem with frame loading.
Thanks to Dave Brosius for adding hashCode to Cookie and QuerySpec
Additions:
Content and Parsing
1. rfe #766768: getText() methods now translate <br> tags as newlines.
2. rfe #901172: content-types "text/xhtml" and "application/xhtml+xml" are now recognized as valid HTML
3. rfe #974791: WebForm now supports submitNoButton to submit a form without any of its buttons. This permits
testing of server response to a Javascript-style submit without using JavaScript.
4. rfe #986876: The WebClient.addCookie method has been deprecated, since its behavior is actually a bit confusing
and replaced with "putCookie" allowing subsequent the replacement of a cookie value defined by a previous
call to "putCookie."
5. patch #1026566 The Cookie class now implements hashCode properly.
6. patch #879193: The name of a select box may now be treated as an array of options.
7. patch #879193: Select now behaves as a multiselect listbox if it has size > 1 or if multiple is set and the size is not set to 1.
8. Patch #795698: HTMLElement now supports a getAttribute method to return the value of any named attribute.
9. WebResponse and TableCell now support getElementsWithAttribute to return all contained HTML elements
with a specified attribute.
10. setCheckbox() and toggleCheckbox() have now been expanded to select one of a group of checkboxes by specifying
its name.
11. WebForm now supports the newUnvalidatedRequest method, which should be used in preference to
HttpUnitOptions.setParametersValidated( false ). This creates a web request copied from the form
but not tied to it, so that parameters can be set without validation.
12. Enhanced http logging to show target server, request header line, and received URL
13. HTMLElement now supports a getText() method to return the text contents of any element
14. WebResponse now supports getTextBlocks and getFirstMatchingTextBlock to retrieve headers and paragraphs from a page.
15. HttpUnit now catches an attempt to load an included script from a page included with "getResource" rather than
"getResponse."
16. Click positions on image buttons may now be specified using one of:
form.submit( button, x, y )
button.click( x, y )
17. Added preliminary support for lists
18. Added convenience method setParameter( String, File ) to simplify file uploading
19. A username and password may now be specified when accessing a proxy server.
JavaScript
20. Added support for javascript Input.tabindex and Text.maxlength properties (read-only)
21. Added support for javascript HTMLElement.style property
ServletUnit
22. Patch #890995 - Implemented ServletUnitHttpResponse.containsHeader
23. Patch #890936 - Added ServletContextListener support
24. Added HttpSessionListener support
25. Added support for ServletContextAttributeListener and HttpSessionAttributeListener
26. Added support for filters
27. rfe #909922: ServletUnit now supports HttpServletRequest.getHeaders
28. patch #915296: Local copies of the 2.2 and 2.3 web.xml dtds are now consulted if specified,
rather than connecting to the Sun website.
29. ServletRunner now takes a reference to a web.xml as a File object in its constructor.
30. ServletRunner and ServletUnitClient now support a getSession() method to return the HTTP session to be used
by the next request or modified by the last request.
31. ServletUnit now implements HttpSession.getServletContext().
PseudoServer
32. PseudoServer now pools its ServerSocket's in order to be more gracious regarding system resources. Pooling can
be controlled via the properties: socketReleaseWaitTime and waitThreshhold.
33. PseudoServer can now received chunked requests, and will not send a "Content-Length" header if a
"Transfer-Encoding: chunked" has been defined.
34. PseudoServer now accepts a full http URL to permit testing of interaction with proxy servers.
Problems fixed:
Documentation
1. bug #804585: the javascript documentation referred to the old location of the
getNextAlert and popNextAlert methods
2. bug #804559: unimplemented links have been removed from the incomplete user manual.
3. A number of typos in the tutorial have been corrected
Content and Parsing
4. bug #978770 Clicking on a button outside of a form is now supported
5. bug #838947 Document.getElementById now returns null if no such element exists
6. bug #957882: URL path elements containing leading '.' were being stripped of those periods.
7. bug #830856: WebLink URLs broken across lines are now handled correctly
8. bug #805921: WebForm.selectImageButtonPosition was misleadingly public and should not have been used.
It has been made package-private, and new means are provided to submit positional image buttons (see additions).
9. bug #982097: http urls being used as request parameters were being mangled
10. bug #803041: HTML entity & now recognized in refresh URL tag
11. bug #803095: Absolute URLs now supported in refresh URL tag
12. bug #986397: Subframe included fragments in their source attributes now ignore those fragments when generating requests.
13. bug #990914: WebFrame scriptables are now accessible by getElementById
14. patch #995853: decode link parameters based on page character set
15. When a form has no action specified and its URL contains parameters whose names match those of parameters
in the form, the form values are used instead.
16. Slashes in URL parameters were being misinterpeted as navigation
Request handling
17. The HeadMethodWebRequest was actually sending the GET method, as was any HeaderOnlyWebRequest.
18. bug #964940 The Referer header was not being sent again if the original request was redirected
19. bug #974380 When using a DNS listener, host header no longer includes ':-1' if the port is not specified
20. bug #1032440: An explanatory exception is now thrown on an attempt to use a mailto: URL in a form submission
Cookie handling
21. bug #873169 - Cookie headers were generated with no space after the semicolon (unlike IE, Netscape, and Mozilla)
22. Cookie domains without leading dots are now accepted, as per RFC 2965.
23. bug #1025968: Cookies with max-age attribute will now expire (max-age=0 is treated as immediate expiration)
Frame handling
24. bug #737167: Nested frame names are now as specified, previous included names of parent frames.
25. Return from a request that wrote to a new frame is now the result of that request, was the original page.
26. Return from a request specifying an unknown frame now opens a new window; previously created a subframe
in the requesting window.
27. bug #1029139: infinite recursion in frameset page when a frame has src="#"
JavaScript
28. A frameset 'onload' event is now invoked after all of its subframes have been loaded
29. HttpUnit no longer complains about not being able to find the Rhino jar (js.jar) if scripting is disabled
before any pages are read.
30. bug #823433: document.cookie now defaults to the empty string, like IE and Mozilla, rather than null
31. Using JavaScript to write into an empty frame could change all empty frames to the same value
32. Window.open() using an empty name was replacing the main window rather than creating a new one.
33. Patch #812709: Support JavaScript changing "disabled" attribute on Buttons
34. bug #861866: Support JavaScript changing "disabled" attribute on form controls
35. Forms defined after a <script> section which accessed document.forms would not be found if document.forms
was also accessed in a subsequent <script> section after the new form definition.
36. bug #974675 Javascript function Window.open did not honor "_self" tag for window name.
37. bug #960307 meta tags within <noscript> tags were not being ignored when scripting was disabled
38. bug #959918: Javascript setting of numeric values included trailing zeros after the decimal point.
39. bug #1013045: Form, Link, and Image id tags are now recognizable from JavaScript where a name tag would be
ServletUnit
40. ServletUnit now applies character encoding in interpreting post parameters
41. Patch #873911: ServletContext.getMimeType is supported
42. Patch #873914: HttpSession.setAttribute( name, null ) now properly removes the named attribute
43. bug #872129: Cookie header set on a web request was ignored in servletunit
44. HttpServletRequest.getCookies() method was only returning the first cookie defined in the request
45. bug #1034067: ServletConfig.getServletName now returns the name specified in web.xml for registered servlets.
PseudoServer
46. PseudoServer now supports any method handled by a PseudoServlet. Previously, it only handled GET, POST, and PUT.
It is simply necessary to override the getResponse method to make this work.
47. PseudoServer would hang when sent a very long request.
Notes:
1. Upgraded NekoHTML to 0.9.1
2. Upgraded Xerces to 2.4.0
3. Upgraded Rhino to 1.5R4.1
</pre>
<h3>Version 1.5.4 released 2003-08-21</h3>
<pre>
Acknowledgements:
Thanks to David D. Kilzer for:
creating thorough tests for URLs containing navigation and showing a way to handle them, and
submitting the WebLink.MATCH_TEXT predicate.
Thanks to Lloyd McKenzie for finding a problem with listing cookie names and suggesting a fix.
Thanks to Brian O'Kelley for supplying a way to disable use of the proxy server.
Additions:
Content and Parsing
1. WebResponse and TableCell now support getElementsWithName and getElementNames to look up HTML elements.
2. Form.getOptions() now works for radio buttons and checkboxes - as long as the desired name is located after the control.
3. rfe #723895: A new class CookieProperties now supports relaxing cookie matching rules for path, domain, or both.
4. It is now possible to define a CookieListener on CookieProperties to watch for cookie rejection events
5. rfe #751505: Add clearProxyServer() to disable the use of the proxy server
6. rfe #744360: Added getFirstMatchingForm and getMatchingForms() methods to WebResponse and HTMLSegment
7. rfe #756453: Made Button.isDisabled() method public
8: rfe #717752: Added WebLink.MATCH_TEXT predicate to match link text exactly
9. rfe #721424: You can now set checkbox values in a form via: setCheckbox(name,boolean) or toggleCheckbox(name).
These methods will throw an exception if the specified parameter is not a checkbox or if more than
one control has the name.
ServletUnit
10. JUnitServlet now supports a value of 'xml' for the format parameter, generating a format compatible with
ant's XMLResultFormatter
11. You can now get the value of context parameters from a ServletRunner via the getContextParameter method
PseudoServer
12. PseudoServer now permits setting the maximum protocol level. If it is 1.0, all responses will be forced to
HTTP/1.0 no matter the protocol of the request.
Problems fixed:
Content and Parsing
1. bug #717280: URLs with "../" in them were not resolved properly
2. bug #717640: <base> element was not being handled in the case when no host was specified.
3. When setting a selection control, HttpUnit would always select a value matching its first option if possible,
rather than taking the first valid value.
4. bug #722788: WebForm.submit() was not invoking the 'onClick' event of the specified submit button.
5. bug #721989: scripts did not see id attributes of form controls.
6. bug #741965: cookies with explicit domain attributes are being rejected when their host is of the form HD
where D is the explicit domain attribute and H contains a dot. Apparently, most browsers ignore this
rule. Now, so does HttpUnit, if CookieProperties.setDomainMatchingStrict( false ) is called.
7. bug #750846: Cannot retrieve all cookie names when both global and site-specific cookies are defined.
8. gzip'ed responses were sometimes truncated.
JavaScript
9. bug #734133: javascript: URLs were ignored if "javascript:" is not all lower case.
ServletUnit
10. bug #744214: ServletUnit does not recognize subframes
</pre>
<h3>Version 1.5.3 released 2004-04-04</h3>
<pre>
Acknowledgements:
Thanks to Andrew Bickerton for:
correcting the handling of document.open for non-HTML pages and new pages with base tags,
correcting the document.write append problem,
identifying the javascript parent frame update problem and suggesting a fix, and
showing how to handle responses with content-length 0.
Thanks to Brendan Boesen for:
adding a method to access session IDs in ServletUnitContext, and
correcting the session invalidation problem.
Thanks to Daniel Jasmin for fixing the handling of applet loading from archives.
Thanks to Mark Luty for supplying a test for the getElementsByName function.
Thanks to Ron Webster for designing the new HttpUnit logo.
Thanks to Sergey Bondarenko for supplying a test for getElementsByTagName
Thanks to George Murnock for adding WebResponse.getMatchingTables()
Problems Fixed:
Content and Parsing
1. Bug #700889: Under certain cases, multiple <script> sections in a document caused a problem where
only those HTML elements defined before the first one were actually available to the scripts.
2. Bug #709979: Select.selectedIndex was returning -1 for a normal select box with no options explicitly selected.
3. calling Document.open() on a non-HTML page no longer throws an exception.
4. Rewriting a document now properly handles any <base> tags in the new document.
5. Applets were not loading properly from applets if a codebase was specified in the <applet> tag.
6. When loading a page triggered a script function which redirected to a new page in the same frame,
the WebResponse returned from getResponse was the triggering page. It is now the redirected page.
7. HttpUnit now handles refresh headers without explicit URLs, defaulting to refreshing the containing page.
8. HttpUnit was delaying until a timeout when a zero-length response was received
JavaScript
9. calling document.write on a closed document was appending to rather than replacing its contents.
10. Following a javascript link which updated a parent frame via manipulating the location was causing a 'NoSuchFrame'
exception to be thrown.
11. HttpUnit was chopping off javascript urls if they contained a '#' character.
ServletUnit
12. The Content-Length header was not being sent with requests.
13. HttpServletRequest.getIntHeader() always returned -1.
14. ServletUnit was creating a new session if the current one was not valid, even if "create" was not specified.
15. ServletUnit had not implemented HttpServletRequest.getContentLength();
16. ServletUnit had not implemented HttpServletRequest.getURL();
17. ServletUnit was always supplying a charset parameter in the returned Content-Type header, even when not requested.
Additions:
Content and Parsing
1. WebResponse and TableCell now have getMatchingTables to return all tables matching the specified criteria.
JavaScript
2. <noscript> nodes in the body of a page now show their content if a <script> earlier in the page is not recognized.
3. Select.value is now supported.
4. Added WebForm.getButton() method using HTMLPredicate to permit more generalized button searches.
5. Document.getElementsByName is now supported
6. Added support for getElementsByTagName to Document and Form
ServletUnit
7. You can now get at the stored session IDs in ServletUnitContext.
8. ServletUnit now supports HttpServletRequest.getRequestDispatch()
PseudoServer
9. PseudoServer now handles persistent connections.
Extensibility
10. ClientProperties now supports a listener which allows for the override of DNS mapping, allowing a client
to supply an actual IP address for a host programatically. The original Host header will be retained.
11. Added format parameter for JUnitServlet: values are "text" or "html"
Notes:
1. The acceptCookies, acceptGzip, autoRefresh and autoForward properties have been moved from HttpUnitOptions
to ClientProperties, permitting them to be set per WebClient rather than just globally. The old properties
have been deprecated, and now access the defaults for ClientProperties. Tests which set the HttpUnitOptions
properties before creating their WebClients will be unaffected.
</pre>
<h3>Version 1.5.2 released 2003-03-03</h3>
<pre>
Acknowledgements:
Thanks to John Sinclair for noting the lack of line breaks in manifest.mf and proposing a fix
Thanks to Bernhard Wagner for simplifying some string comparison code in ParsedHTML and WebTable
Thanks to Bernhard Wagner for adding some parser customization code.
Thanks to James Howe for noting the mispelling of the getElementById method
Thanks to Alex Beggs for noting the mishandling of non-JavaScript scripts and providing a test case.
Thanks to Navid Vahdat for ServletUnit fixes for invalid session handling and request dispatcher paths
Thanks to Daniel Sheppard for identifying a problem with meta refresh tags.
Thanks to Daniel Sheppard for correcting the return status for HttpServletResponse.sendRedirect
Thanks to Daniel Sheppard, Navid Vahdat, and Ron Hanson for help in adding capabilities to the RequestDispatcher implementation.
Thanks to Ron Hanson for catching the obsolete behavior of HttpServletRequest.setAttribute.
Thanks to Raphael Corre for improving logging of transmitted headers
Thanks to Jason Bedell for supplying an implementation for HttpSession.getValueNames.
Thanks to Jianqin Qu for finding the getTableStartingWithPrefix bug when using NekoHTML
Thanks to Scott Fleischman for providing tests for missing frame handling functionality
Thanks to Artashes Aghajanyan for implementing error reporting for the NekoHTML parser
Problems Fixed:
Packaging
1. The manifest.mf file now has line breaks between properties
Content and Parsing
2. get...WithID was incorrectly doing case insensitive matches. It is now case-sensitive, since that is the way
the ID attribute is defined.
3. Forms prematurely closed because of improper nesting will now contain any controls defined before the next form.
4. Quotes in refresh URL meta tags are now recognized and stripped.
5. Headers defined per request were not being logged
6. WebResponse.getTableStartingWith and getTableStartingWithPrefix was trying to match newline characters when
using the NekoHTML parser.
JavaScript
7. Bug #680695: Button.click() is now supported.
8. Bug #680695: Form control ids are now usable to locate components.
9. Scripts marked as something besides JavaScript are now ignored.
10. Calling document.close() in the middle of an immediate script no longer replaces the current page.
11. Opening a non-HTML window via Javascript no longer raises a NotHTMLException.
ServletUnit
12. Included and forwarded servlets now inherit parameters from their calling servlet.
13. Included servlets now have access to their path information as attributes, as per the spec.
14. Forwarded servlets now have access to their path information from the standard request methods, as required.
15. All servlets within a web application now share the same instance of ServletContext, permitting attributes
set by one servlet to be visible to other servlets.
16. ServletUnit now creates a new session if the requested session exists but is marked invalid
17. ServletUnit was interpreting the getRequestDispatcher path as an absolute path. It now correctly treats it
as relative to the context root.
18. ServletUnit now supports HttpSession.getValueNames().
19. Calling HttpServletRequest.setAttribute in ServletUnit no longer throws an IllegalStateException if the value
had previously been defined.
Additions:
Content and Parsing
1. You may call HTMLParserFactory.setPreserveTagCase and setReturnHTMLDocument to control whether the parser coerces
the case of tags and attributes or returns a HTMLDocument object, respectively.
2. HTMLParserFactory now supports methods to explicitly select the parser without playing with the class path.
This includes support for additional parsers not bundled with HttpUnit.
3. WebResponse and TableCell now support the getElementWithID method, which returns any supported HTMLElement,
given its ID. Supported HTMLElement objects include WebForm, WebLink, WebTable, WebImage, WebApplet,
FormControl, TableCell, and TableRow.
4. Added getFragmentIdentifier() to WebRequestSource (parent of WebLink, WebForm, and WebImage)
5. Added support for <iframe> tag. IFrames work just like regular frames, except that they are embedded in a response
without a <frameset> tag. IFrame support is controlled by the ClientProperties.iframeSupported property.
6. WebForm.isHiddenParameter returns true if all parameters with the specified name are hidden
7. Frame handling is now more flexible, searching within a window for a target frame rather than just below the source frame.
8. HTMLParserListeners and parser warnings now work with the NekoHTML parser.
JavaScript
9. All HTML elements with id attributes are now accessible
10. The Form.target property is now supported
11. Added support for document.getElementById
ServletUnit
12. ServletUnit now handles https requests, marking them as "secure."
13. ServletUnit now supports HttpServletResponse.flushBuffer()
14. InvocationContext now supports include and forwarded servlets: calling pushIncludeRequest or pushForwardRequest
updates the servlet, request, and response properties of the context so that subsequent calls can be done from
the dispatched servlet. Calling popRequest reverts to the dispatching servlet.
15. ServletUnit now loads and initializes servlets specified with the <load-on-startup> element.
16. HttpServletResponse methods reset(), resetBuffer(), and setBufferSize() are now implemented.
17. ServletRunner.shutDown() will invoke the destroy() methods of any servlets which have been invoked
through that servlet runner.
18. ServletUnit now supports HttpServletRequest.getHeaderNames
Notes:
1. Upgraded NekoHTML to 0.7.2 which no longer generates superfluous <form> tags.
2. Removed a number of deprecated methods
</pre>
<h3>Version 1.5.1 released 2002-12-18</h3>
<pre>
Acknowledgements:
Thanks to Geert Bevin for fixing a problem with comparing cookies
Thanks to Troy Waldrep for pointing out the non-standard Refresh header definition accepted in popular browsers
Thanks to Raul Benito Garcia for pointing out the problem with no-action forms accessed with URL parameters
Thanks to Larry Hamel for supplying an ant target to run Example.java
Thanks to Charles Mendis for finding the bug in the proxy support
Thanks to Michael McCallum for adding handling for bad character-set headers and an ant target to build the examples
Thanks to Neville Wylie for catching the top.parent and frame name index problems
Problems Fixed:
Content and Parsing
1. Adding both a "global" cookie and a server-based cookie with the same name caused a NullPointerException
2. Simply removing the NekoHTML parser jar from the classpath was not enough to re-enable JTidy. Now it is.
3. When a form obtained using parameters as part of the URL has no action, those parameters are now sent
as part of the form submission.
4. Bug #635273 Proxy port always interpreted as port 80 due to typo
5. As of 1.5, HttpUnit was not building if NekoHTML was not in the classpath. This is now fixed.
6. Bad character-set headers from servers would result in an UnsupportedEncodingException.
7. Bug #638406 Multi-line values in form data were using the platform-specific line ending rather than CRLF.
8. HttpUnit now ignores empty parameters on form actions, as IE and Netscape do.
9. Table <th> elements were being handled *after* <td> elements in the same row
10. Bug #641687: when neither NekoHTML.jar or Tidy.jar is in the classpath, a class not found exception was thrown
JavaScript
11. Bug #638306 Document.writeln was writing the value "13" rather than CRLF as its terminator.
12. Bug #638304 Interframe dependancies for JavaScript at load time were causing frame data not to be found.
13. Bug #637208 Link.click() no longer returns null when an 'onClick' event fails to return true.
14. The parent attribute of the top frame was returning null rather than the frame.
15. Frame names used as indexes into the Window.frames array were not being recognized.
16. The <base> tag was not being used to find included scripts
17. Multiple form parameters with the same name were only being treated as an array if they were checkboxes;
otherwise, they were being ignored - this would result in a "undefined value has no properties" error message.
18. Bug #644642: changes to form parameters made from immediate scripts were being discarded
Additions:
Content and Parsing
1. Added support for the Refresh header
2. Added support for applet parameters and archives
3. There is now an ant target to run the Example program.
JavaScript
4. Added support for the location.href property
5. Added support for Document.open, Document.close, and Document.write / writeln for new documents
6. The Rhino jar now includes a patch to improve error-reporting for unsupported DOM elements
7. Added support for most subproperties of the Location object - mostly r/o, but some read/write
8. Added support for Document.cookie
Notes:
1. Upgraded NekoHTML to 0.7.1
</pre>
<h3>Version 1.5. released 2002-11-03</h3>
<pre>
Acknowledgements:
Thanks to Ken Corbin for adding tests for disabled and read-only parameters.
Thanks to Geert Bevin for fixing a problem with generation of cookie headers that affects some servers.
Thanks to Richard Harris for adding support for the title attribute for links,
for adding the JavaScript Navigator.platform property,
for adding Javascript support for the Screen object,
for pointing out the value of retaining the same ScriptingEngine instance for a ScriptableDelegate,
for adding stubs for various unimplemented JavaScript Window properties.
and for finding a case where the handling of JavaScript comments was not working.
Thanks to Stefan Renz for describing the correct way to set up proxy servers in Java 2 and later.
Thanks to Troy Waldrep for help with the new handling of response statuses and messages.
and for fixing the JavaScript / HTML end-comment bug
Thanks to Andy Clark for help using the NekoHTML filter capability.
Thanks to EdA-qa mort-ora-y for findind and fixing the MIME-encoding bug
Notes:
1. The NekoHTML parser is now supported. If it is present in the classpath, it will be used in preference to JTidy.
Note that NekoHTML is a much more forgiving parser than JTidy, properly handling a lot of bad HTML that JTidy
cannot. In addition, the Document class that NekoHTML creates is of type HTMLDocument. On the other hand,
the HTMLErrorListener is not currently supporting the NekoHTML parser, although such support will be added if
it is really needed. NekoHTML is the current preferred parser and will probably be required to support certain
JavaScript enhancements. Ultimately, it is possible that JTidy support will be dropped.
2. The version of xerces now included in the distribution is 2.2, which is required for NekoHTML.
3. The exception HttpServerNotFoundException has been removed. When no server is found, HttpUnit now throws the
standard exception: java.net.UnknownHostException
4. The required jars are now included in the distribution, so it is not necessary to download them separately.
This was an oversight.
Problems fixed:
Content and parsing
1. The cookie header was being generated with a space after each ";" separator.
2. AuthorizationRequiredException was being thrown even when exceptions on error status was disabled
3. A bad certificate on an https connection was incorrectly being flagged as a no-such-server exception. This
is fixed on JDK 1.4, due to a correct in the JDK. On previous versions of the JDK, HttpUnit is using a
workaround, which cannot detect the difference.
4. Bug #626822 Controls without names are no longer sent as part of a MIME-encoded message
Internationalization
5. When not using Latin-1 encoding, URL string characters *, _, and - were improperly being encoded
6. Requests created by calling the web request constructors directly, rather than being derived from an HTML page
were always using the Latin-1 encoding, rather than the user-specified default encoding.
JavaScript
7. Repeated requests for the same JavaScript domain objects returned new and different instances, thus
preventing identity tests.
8. Under certain circumstances, the first line of a JavaScript section was being treated as though commented out.
9. JavaScript ending with --> rather than the proper end-comment // --> was being treated as a syntax error
10. When a JavaScript event resulted in submitting a request and bypassed the normal mechanism, WebForm.submit and
WebLink.click() did not return the changed page.
11. Bug #618140 JavaScript access to the file submit control value was not working
ServletUnit
12. ServletUnit was not supporting mappings for the default servlet.
13. ServletUnit now explicitly specifies its locale for generating dates as Locale.US to comply with RFC-1123
Additions:
Content and parsing enhancements:
1. WebForm now supports 'isReadOnlyParameter' and 'isDisabledParameter' which allow checking of the state of a
particular form parameter. Note that if multiple controls exist with the same name, these methods only return
true when all such controls are read-only or disabled, as appropriate.
2. RFE #614397 <input> parameters with unrecognized type fields are now treated as text fields. This appears
to match the behavior in most browsers.
3. Links, forms, and images now have a readable title property.
Web navigation enhancements:
4. Following the "_blank" target now creates a new web window, with its own set of frames. Following links or submitting
forms will update the window from which the request originated. Requests may also now be initiated from an open window.
The list of open windows is a property of the web client.
5. The mechanism for searching for tables has been expanded to permit arbitrary search criteria, similar to that
for links.
6. WebClient now supports a WebWindowListener which will be called when a new window is opened or closed.
7. Added WebWindow.getOpenedWindow() to return a window by its name.
8. You may now close a window by calling window.close(). This will trigger any active listeners. If the window closed
the main window, another window will be promoted to that status.
9. Added the HeadMethodWebRequest class to support HEAD method requests
Security and state-management enhancements:
10. The proxy server may now be specified by calling WebClient.setProxyServer. This should also ensure that the
correct authorization header is sent.
11. Cookies are now restricted by their origin server, rather than being sent on every request.
12. A new package com.meterware.httpunit.cookies, now exists to support the cookie functionality.
Scripting enhancements:
13. The navigator object now supports the readable 'platform' property.
14. The screen object is now supported, with properties availHeight and availWidth
15. Added support for Location.replace()
16. Added support for Window methods: open(), and close()
17. Added support for Window properties: closed, frames, name, opener, top, parent, and <subframe-name>
18. Added do-nothing stubs for the Window properties and functions: moveTo(), focus(), setTimeout()
19. document.write and writeln are now supported for processing a page while it is being loaded. This only
works if the default NekoHTML parser is being used.
ServletUnit enhancements:
20. RFE #585495 ServletUnit now supports HttpServletResponse.setContentLength.
21. ServletUnit now implements HttpServletRequest.getLocale() and getLocales()
</pre>
<h3>Version 1.4.6 released 2002-10-02</h3>
<pre>
Acknowledgements:
Thanks to Ville Skytt� for removing the test dependency on xerces.
Thanks to Donald Ball for pointing out the problem with the behavior of Select.selectedIndex.
Thanks to Jin Zhao for help in expanding the search possibilities for links.
Problems fixed:
1. An attempt to set a non-existent parameter now correctly throws NoSuchParameterException rather
than UnusedParameterValueException.
2. Obtaining the URL from a javascript: request no longer throws MalformedURLException.
3. Bug #604478 - setting the form action did not always update the predefined parameter list. This could cause a request
to be sent with the wrong URL parameters.
4. Form, Image, and Link names are now properly treated as case-sensitive within Javascript.
5. A Javascript URL containing a question mark was incorrectly being URL-encoded.
6. HTML comments at the start of a JavaScript were not being completely ignored
7. Disabled form parameters were being submitted with requests and could be modified by setParameter calls.
8. Bug #617065: using Javascript to set an option in a drop-down box does not unset other options.
Additions:
Content and parsing enhancements:
1. When no response is received from a server, HttpUnit will now throw HttpServerNotFoundException, which is a
subclass of HttpNotFoundException. This should aid in diagnosing response failures.
2. When a 404 (not found status) is received from a server, the accompanying message is now available
from HttpNotFoundException.getResponseMessage().
3. The mechanism for search for links has been expanded to permit arbitrary search criteria and to retrieve
either the first match or all matches.
4. Some per-client properties are now stored in a per-client object. Each new web client is initialized from the
default, but may also be configured independently by retrieving the clientProperties object.
Scripting enhancements:
6. It is now possible to control the handling of script errors by calling HttpUnitOptions.setExceptionsThrownOnScriptError.
If the exceptions are not thrown, the error messages will instead be available via HttpUnitOptions.getScriptErrorMessages()
7. The forms, images, links, and Form.elements arrays now handle string indexes
8. Select.selectedIndex is now read/write.
9. Link.href is now read-write.
10. The Navigator object is now supported.
</pre>
<h3>Version 1.4.5 released 2002-08-30</h3>
<pre>
Acknowledgements:
Thanks to Steve Heath for an example on how to make JSPs work with ServletUnit.
Thanks to Rajan Narasimhan for fixing the relative URL computation problem.
Thanks to Sebastien Rosset for pointing out the case sensitivity problem with WebResponse.isHTML
Thanks to Hans-Joerg Hessmann for a faster algorithm for the table lookups
Thanks to Peter Royal for fixing the handling of query-only relative URLs and the IllegalStateException when
scripting is disabled.
Thanks to Michael Reardon for implementing the ServletUnit header method handling code and session.getAttributeNames
Thanks to Geert Bevin for finding and fixing the ServletUnit POST parameters bug.
Thanks to Geert Bevin for implementing ServletUnit support for HttpServletRequest.getParameterMap
Problems fixed:
1. The "_parent" frame target should now be handled correctly.
2. Relative URLs were not being computed properly when the base URL had a query string containing a slash.
3. WebResponses are now recognized as HTML even if the content type is not lower case.
4. A form request created after a call to getScriptableObject().setAction() now correctly uses the new action.
5. Table lookups should be faster, especially for complex and large tables
6. Embedded spaces in URLs are now encoded when a request is made