• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hazendaz / httpunit / 636

05 Dec 2025 03:27AM UTC coverage: 80.509%. Remained the same
636

push

github

hazendaz
Cleanup more old since tags

you guessed it, at this point going to jautodoc the rest so the warnings on builds go away ;)

3213 of 4105 branches covered (78.27%)

Branch coverage included in aggregate %.

8249 of 10132 relevant lines covered (81.42%)

0.81 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

3.23
/src/main/java/com/meterware/httpunit/parsing/JTidyHTMLParser.java
1
/*
2
 * MIT License
3
 *
4
 * Copyright 2011-2025 Russell Gold
5
 *
6
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
7
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation
8
 * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
9
 * to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10
 *
11
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions
12
 * of the Software.
13
 *
14
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
15
 * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
17
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
18
 * DEALINGS IN THE SOFTWARE.
19
 */
20
package com.meterware.httpunit.parsing;
21

22
import com.meterware.httpunit.dom.HTMLDocumentImpl;
23

24
import java.io.ByteArrayInputStream;
25
import java.io.IOException;
26
import java.net.URL;
27
import java.nio.charset.StandardCharsets;
28

29
import org.w3c.dom.Document;
30
import org.w3c.dom.Node;
31
import org.w3c.dom.NodeList;
32
import org.w3c.dom.html.HTMLDocument;
33
import org.w3c.tidy.Tidy;
34
import org.xml.sax.SAXException;
35

36
class JTidyHTMLParser implements HTMLParser {
1✔
37

38
    @Override
39
    public void parse(URL pageURL, String pageText, DocumentAdapter adapter) throws IOException, SAXException {
40
        Document jtidyDocument = getParser(pageURL)
×
41
                .parseDOM(new ByteArrayInputStream(pageText.getBytes(StandardCharsets.UTF_8)), null);
×
42
        HTMLDocument htmlDocument = new HTMLDocumentImpl();
×
43
        NodeList nl = jtidyDocument.getChildNodes();
×
44
        for (int i = 0; i < nl.getLength(); i++) {
×
45
            Node importedNode = nl.item(i);
×
46
            if (importedNode.getNodeType() != Node.DOCUMENT_TYPE_NODE) {
×
47
                htmlDocument.appendChild(htmlDocument.importNode(importedNode, true));
×
48
            }
49
        }
50
        adapter.setDocument(htmlDocument);
×
51
    }
×
52

53
    @Override
54
    public String getCleanedText(String string) {
55
        return string == null ? "" : string.replace(NBSP, ' ');
×
56
    }
57

58
    @Override
59
    public boolean supportsPreserveTagCase() {
60
        return false;
×
61
    }
62

63
    @Override
64
    public boolean supportsForceTagCase() {
65
        return false;
×
66
    }
67

68
    @Override
69
    public boolean supportsReturnHTMLDocument() {
70
        return true;
×
71
    }
72

73
    @Override
74
    public boolean supportsParserWarnings() {
75
        return true;
×
76
    }
77

78
    private static final char NBSP = (char) 160; // non-breaking space, defined by JTidy
79

80
    /**
81
     * get the parser of the given url
82
     *
83
     * @param url
84
     *
85
     * @return the parser
86
     */
87
    private static Tidy getParser(URL url) {
88
        Tidy tidy = new Tidy();
×
89
        // BR 2880636 httpunit 1.7 does not work with latest Tidy release r918
90
        // tidy.setCharEncoding( org.w3c.tidy.Configuration.UTF8 );
91
        tidy.setInputEncoding("UTF8");
×
92
        tidy.setQuiet(true);
×
93
        tidy.setShowWarnings(HTMLParserFactory.isParserWarningsEnabled());
×
94
        if (!HTMLParserFactory.getHTMLParserListeners().isEmpty()) {
×
95
            tidy.setErrout(new JTidyPrintWriter(url));
×
96
        }
97
        return tidy;
×
98
    }
99

100
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc