Package javax.swing.text.html

Source Code of javax.swing.text.html.HTMLTest

/*
*  Licensed to the Apache Software Foundation (ASF) under one or more
*  contributor license agreements.  See the NOTICE file distributed with
*  this work for additional information regarding copyright ownership.
*  The ASF licenses this file to You under the Apache License, Version 2.0
*  (the "License"); you may not use this file except in compliance with
*  the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
/**
* @author Alexey A. Ivanov
* @version $Revision$
*/
package javax.swing.text.html;

import java.net.URL;

import javax.swing.BasicSwingTestCase;
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleContext;
import javax.swing.text.html.HTML.Attribute;
import javax.swing.text.html.HTML.Tag;

public class HTMLTest extends BasicSwingTestCase {

//    public void testHTML() {
//    }

    public void testGetAllTags() {
        final Tag[] expected = {
            Tag.A,
            Tag.ADDRESS,
            Tag.APPLET,
            Tag.AREA,
            Tag.B,
            Tag.BASE,
            Tag.BASEFONT,
            Tag.BIG,
            Tag.BLOCKQUOTE,
            Tag.BODY,
            Tag.BR,
            Tag.CAPTION,
            Tag.CENTER,
            Tag.CITE,
            Tag.CODE,
            //Tag.COMMENT,
            //Tag.CONTENT,
            Tag.DD,
            Tag.DFN,
            Tag.DIR,
            Tag.DIV,
            Tag.DL,
            Tag.DT,
            Tag.EM,
            Tag.FONT,
            Tag.FORM,
            Tag.FRAME,
            Tag.FRAMESET,
            Tag.H1,
            Tag.H2,
            Tag.H3,
            Tag.H4,
            Tag.H5,
            Tag.H6,
            Tag.HEAD,
            Tag.HR,
            Tag.HTML,
            Tag.I,
            Tag.IMG,
            //Tag.IMPLIED,
            Tag.INPUT,
            Tag.ISINDEX,
            Tag.KBD,
            Tag.LI,
            Tag.LINK,
            Tag.MAP,
            Tag.MENU,
            Tag.META,
            Tag.NOFRAMES,
            Tag.OBJECT,
            Tag.OL,
            Tag.OPTION,
            Tag.P,
            Tag.PARAM,
            Tag.PRE,
            Tag.S,
            Tag.SAMP,
            Tag.SCRIPT,
            Tag.SELECT,
            Tag.SMALL,
            Tag.SPAN,
            Tag.STRIKE,
            Tag.STRONG,
            Tag.STYLE,
            Tag.SUB,
            Tag.SUP,
            Tag.TABLE,
            Tag.TD,
            Tag.TEXTAREA,
            Tag.TH,
            Tag.TITLE,
            Tag.TR,
            Tag.TT,
            Tag.U,
            Tag.UL,
            Tag.VAR
        };

        Tag[] actual = HTML.getAllTags();
        assertEquals(73, expected.length);
        assertEquals(isHarmony() ? 91 : 74, actual.length);

        final boolean[] found = new boolean[expected.length];
        for (int i = 0; i < expected.length; i++) {
            for (int j = 0; j < actual.length; j++) {
                if (expected[i] == actual[j]) {
                    found[i] = true;
                    break;
                }
            }
        }

        for (int i = 0; i < found.length; i++) {
            assertTrue("Tag " + expected[i] + " was not found, index " + i,
                       found[i]);
        }
    }

    public void testGetTag() {
        assertNull(HTML.getTag("comment"));
        assertNull(HTML.getTag(HTML.Tag.COMMENT.toString()));
        assertNull(HTML.getTag("content"));
        assertNull(HTML.getTag(HTML.Tag.CONTENT.toString()));
        assertNull(HTML.getTag("p-implied"));
        assertNull(HTML.getTag(HTML.Tag.IMPLIED.toString()));

        if (!isHarmony()) {
            assertNotNull("nobr");
        }

        assertSame(Tag.A,
                   HTML.getTag("a"));
        assertSame(Tag.ADDRESS,
                   HTML.getTag("address"));
        assertSame(Tag.APPLET,
                   HTML.getTag("applet"));
        assertSame(Tag.AREA,
                   HTML.getTag("area"));
        assertSame(Tag.B,
                   HTML.getTag("b"));
        assertSame(Tag.BASE,
                   HTML.getTag("base"));
        assertSame(Tag.BASEFONT,
                   HTML.getTag("basefont"));
        assertSame(Tag.BIG,
                   HTML.getTag("big"));
        assertSame(Tag.BLOCKQUOTE,
                   HTML.getTag("blockquote"));
        assertSame(Tag.BODY,
                   HTML.getTag("body"));
        assertSame(Tag.BR,
                   HTML.getTag("br"));
        assertSame(Tag.CAPTION,
                   HTML.getTag("caption"));
        assertSame(Tag.CENTER,
                   HTML.getTag("center"));
        assertSame(Tag.CITE,
                   HTML.getTag("cite"));
        assertSame(Tag.CODE,
                   HTML.getTag("code"));
        assertSame(Tag.DD,
                   HTML.getTag("dd"));
        assertSame(Tag.DFN,
                   HTML.getTag("dfn"));
        assertSame(Tag.DIR,
                   HTML.getTag("dir"));
        assertSame(Tag.DIV,
                   HTML.getTag("div"));
        assertSame(Tag.DL,
                   HTML.getTag("dl"));
        assertSame(Tag.DT,
                   HTML.getTag("dt"));
        assertSame(Tag.EM,
                   HTML.getTag("em"));
        assertSame(Tag.FONT,
                   HTML.getTag("font"));
        assertSame(Tag.FORM,
                   HTML.getTag("form"));
        assertSame(Tag.FRAME,
                   HTML.getTag("frame"));
        assertSame(Tag.FRAMESET,
                   HTML.getTag("frameset"));
        assertSame(Tag.H1,
                   HTML.getTag("h1"));
        assertSame(Tag.H2,
                   HTML.getTag("h2"));
        assertSame(Tag.H3,
                   HTML.getTag("h3"));
        assertSame(Tag.H4,
                   HTML.getTag("h4"));
        assertSame(Tag.H5,
                   HTML.getTag("h5"));
        assertSame(Tag.H6,
                   HTML.getTag("h6"));
        assertSame(Tag.HEAD,
                   HTML.getTag("head"));
        assertSame(Tag.HR,
                   HTML.getTag("hr"));
        assertSame(Tag.HTML,
                   HTML.getTag("html"));
        assertSame(Tag.I,
                   HTML.getTag("i"));
        assertSame(Tag.IMG,
                   HTML.getTag("img"));
        assertSame(Tag.INPUT,
                   HTML.getTag("input"));
        assertSame(Tag.ISINDEX,
                   HTML.getTag("isindex"));
        assertSame(Tag.KBD,
                   HTML.getTag("kbd"));
        assertSame(Tag.LI,
                   HTML.getTag("li"));
        assertSame(Tag.LINK,
                   HTML.getTag("link"));
        assertSame(Tag.MAP,
                   HTML.getTag("map"));
        assertSame(Tag.MENU,
                   HTML.getTag("menu"));
        assertSame(Tag.META,
                   HTML.getTag("meta"));
        assertSame(Tag.NOFRAMES,
                   HTML.getTag("noframes"));
        assertSame(Tag.OBJECT,
                   HTML.getTag("object"));
        assertSame(Tag.OL,
                   HTML.getTag("ol"));
        assertSame(Tag.OPTION,
                   HTML.getTag("option"));
        assertSame(Tag.P,
                   HTML.getTag("p"));
        assertSame(Tag.PARAM,
                   HTML.getTag("param"));
        assertSame(Tag.PRE,
                   HTML.getTag("pre"));
        assertSame(Tag.S,
                   HTML.getTag("s"));
        assertSame(Tag.SAMP,
                   HTML.getTag("samp"));
        assertSame(Tag.SCRIPT,
                   HTML.getTag("script"));
        assertSame(Tag.SELECT,
                   HTML.getTag("select"));
        assertSame(Tag.SMALL,
                   HTML.getTag("small"));
        assertSame(Tag.SPAN,
                   HTML.getTag("span"));
        assertSame(Tag.STRIKE,
                   HTML.getTag("strike"));
        assertSame(Tag.STRONG,
                   HTML.getTag("strong"));
        assertSame(Tag.STYLE,
                   HTML.getTag("style"));
        assertSame(Tag.SUB,
                   HTML.getTag("sub"));
        assertSame(Tag.SUP,
                   HTML.getTag("sup"));
        assertSame(Tag.TABLE,
                   HTML.getTag("table"));
        assertSame(Tag.TD,
                   HTML.getTag("td"));
        assertSame(Tag.TEXTAREA,
                   HTML.getTag("textarea"));
        assertSame(Tag.TH,
                   HTML.getTag("th"));
        assertSame(Tag.TITLE,
                   HTML.getTag("title"));
        assertSame(Tag.TR,
                   HTML.getTag("tr"));
        assertSame(Tag.TT,
                   HTML.getTag("tt"));
        assertSame(Tag.U,
                   HTML.getTag("u"));
        assertSame(Tag.UL,
                   HTML.getTag("ul"));
        assertSame(Tag.VAR,
                   HTML.getTag("var"));


        if (isHarmony()) {
            assertSame(Tag.ABBR,
                       HTML.getTag("abbr"));
            assertSame(Tag.ACRONYM,
                       HTML.getTag("acronym"));
            assertSame(Tag.BDO,
                       HTML.getTag("bdo"));
            assertSame(Tag.BUTTON,
                       HTML.getTag("button"));
            assertSame(Tag.COL,
                       HTML.getTag("col"));
            assertSame(Tag.COLGROUP,
                       HTML.getTag("colgroup"));
            assertSame(Tag.DEL,
                       HTML.getTag("del"));
            assertSame(Tag.FIELDSET,
                       HTML.getTag("fieldset"));
            assertSame(Tag.IFRAME,
                       HTML.getTag("iframe"));
            assertSame(Tag.INS,
                       HTML.getTag("ins"));
            assertSame(Tag.LABEL,
                       HTML.getTag("label"));
            assertSame(Tag.LEGEND,
                       HTML.getTag("legend"));
            assertSame(Tag.NOSCRIPT,
                       HTML.getTag("noscript"));
            assertSame(Tag.OPTGROUP,
                       HTML.getTag("optgroup"));
            assertSame(Tag.Q,
                       HTML.getTag("q"));
            assertSame(Tag.TBODY,
                       HTML.getTag("tbody"));
            assertSame(Tag.TFOOT,
                       HTML.getTag("tfoot"));
            assertSame(Tag.THEAD,
                       HTML.getTag("thead"));


        } else {


            assertNull(HTML.getTag("abbr"));
            assertNull(HTML.getTag("acronym"));
            assertNull(HTML.getTag("bdo"));
            assertNull(HTML.getTag("button"));
            assertNull(HTML.getTag("col"));
            assertNull(HTML.getTag("colgroup"));
            assertNull(HTML.getTag("del"));
            assertNull(HTML.getTag("fieldset"));
            assertNull(HTML.getTag("iframe"));
            assertNull(HTML.getTag("ins"));
            assertNull(HTML.getTag("label"));
            assertNull(HTML.getTag("legend"));
            assertNull(HTML.getTag("noscript"));
            assertNull(HTML.getTag("optgroup"));
            assertNull(HTML.getTag("q"));
            assertNull(HTML.getTag("tbody"));
            assertNull(HTML.getTag("tfoot"));
            assertNull(HTML.getTag("thead"));
        }
    }

    public void testGetAllAttributeKeys() {
        final Attribute[] expected = {
            Attribute.ACTION,
            Attribute.ALIGN,
            Attribute.ALINK,
            Attribute.ALT,
            Attribute.ARCHIVE,
            Attribute.BACKGROUND,
            Attribute.BGCOLOR,
            Attribute.BORDER,
            Attribute.CELLPADDING,
            Attribute.CELLSPACING,
            Attribute.CHECKED,
            Attribute.CLASS,
            Attribute.CLASSID,
            Attribute.CLEAR,
            Attribute.CODE,
            Attribute.CODEBASE,
            Attribute.CODETYPE,
            Attribute.COLOR,
            Attribute.COLS,
            Attribute.COLSPAN,
            Attribute.COMMENT,
            Attribute.COMPACT,
            Attribute.CONTENT,
            Attribute.COORDS,
            Attribute.DATA,
            Attribute.DECLARE,
            Attribute.DIR,
            Attribute.DUMMY,
            Attribute.ENCTYPE,
            Attribute.ENDTAG,
            Attribute.FACE,
            Attribute.FRAMEBORDER,
            Attribute.HALIGN,
            Attribute.HEIGHT,
            Attribute.HREF,
            Attribute.HSPACE,
            Attribute.HTTPEQUIV,
            Attribute.ID,
            Attribute.ISMAP,
            Attribute.LANG,
            Attribute.LANGUAGE,
            Attribute.LINK,
            Attribute.LOWSRC,
            Attribute.MARGINHEIGHT,
            Attribute.MARGINWIDTH,
            Attribute.MAXLENGTH,
            Attribute.METHOD,
            Attribute.MULTIPLE,
            Attribute.N,
            Attribute.NAME,
            Attribute.NOHREF,
            Attribute.NORESIZE,
            Attribute.NOSHADE,
            Attribute.NOWRAP,
            Attribute.PROMPT,
            Attribute.REL,
            Attribute.REV,
            Attribute.ROWS,
            Attribute.ROWSPAN,
            Attribute.SCROLLING,
            Attribute.SELECTED,
            Attribute.SHAPE,
            Attribute.SHAPES,
            Attribute.SIZE,
            Attribute.SRC,
            Attribute.STANDBY,
            Attribute.START,
            Attribute.STYLE,
            Attribute.TARGET,
            Attribute.TEXT,
            Attribute.TITLE,
            Attribute.TYPE,
            Attribute.USEMAP,
            Attribute.VALIGN,
            Attribute.VALUE,
            Attribute.VALUETYPE,
            Attribute.VERSION,
            Attribute.VLINK,
            Attribute.VSPACE,
            Attribute.WIDTH,
        };

        Attribute[] actual = HTML.getAllAttributeKeys();
        assertEquals(80, expected.length);
        assertEquals(isHarmony() ? 84 : 81, actual.length);

        final boolean[] found = new boolean[expected.length];
        for (int i = 0; i < expected.length; i++) {
            for (int j = 0; j < actual.length; j++) {
                if (expected[i] == actual[j]) {
                    found[i] = true;
                    break;
                }
            }
        }

        for (int i = 0; i < found.length; i++) {
            assertTrue("Attribute " + expected[i]
                       + " was not found, index " + i,
                       found[i]);
        }
    }

    public void testGetAttributeKey() {
        assertNull(HTML.getAttributeKey("httpequiv")); // without hyphen
        assertNull(HTML.getAttributeKey("xmlns"));     // XML namespace

        if (!isHarmony()) {
            assertNotNull(HTML.getAttributeKey("media"));
        }

        assertSame(Attribute.ACTION,
                   HTML.getAttributeKey("action"));
        assertSame(Attribute.ALIGN,
                   HTML.getAttributeKey("align"));
        assertSame(Attribute.ALINK,
                   HTML.getAttributeKey("alink"));
        assertSame(Attribute.ALT,
                   HTML.getAttributeKey("alt"));
        assertSame(Attribute.ARCHIVE,
                   HTML.getAttributeKey("archive"));
        assertSame(Attribute.BACKGROUND,
                   HTML.getAttributeKey("background"));
        assertSame(Attribute.BGCOLOR,
                   HTML.getAttributeKey("bgcolor"));
        assertSame(Attribute.BORDER,
                   HTML.getAttributeKey("border"));
        assertSame(Attribute.CELLPADDING,
                   HTML.getAttributeKey("cellpadding"));
        assertSame(Attribute.CELLSPACING,
                   HTML.getAttributeKey("cellspacing"));
        assertSame(Attribute.CHECKED,
                   HTML.getAttributeKey("checked"));
        assertSame(Attribute.CLASS,
                   HTML.getAttributeKey("class"));
        assertSame(Attribute.CLASSID,
                   HTML.getAttributeKey("classid"));
        assertSame(Attribute.CLEAR,
                   HTML.getAttributeKey("clear"));
        assertSame(Attribute.CODE,
                   HTML.getAttributeKey("code"));
        assertSame(Attribute.CODEBASE,
                   HTML.getAttributeKey("codebase"));
        assertSame(Attribute.CODETYPE,
                   HTML.getAttributeKey("codetype"));
        assertSame(Attribute.COLOR,
                   HTML.getAttributeKey("color"));
        assertSame(Attribute.COLS,
                   HTML.getAttributeKey("cols"));
        assertSame(Attribute.COLSPAN,
                   HTML.getAttributeKey("colspan"));
        assertSame(Attribute.COMMENT,
                   HTML.getAttributeKey("comment"));
        assertSame(Attribute.COMPACT,
                   HTML.getAttributeKey("compact"));
        assertSame(Attribute.CONTENT,
                   HTML.getAttributeKey("content"));
        assertSame(Attribute.COORDS,
                   HTML.getAttributeKey("coords"));
        assertSame(Attribute.DATA,
                   HTML.getAttributeKey("data"));
        assertSame(Attribute.DECLARE,
                   HTML.getAttributeKey("declare"));
        assertSame(Attribute.DIR,
                   HTML.getAttributeKey("dir"));
        assertSame(Attribute.DUMMY,
                   HTML.getAttributeKey("dummy"));
        assertSame(Attribute.ENCTYPE,
                   HTML.getAttributeKey("enctype"));
        assertSame(Attribute.ENDTAG,
                   HTML.getAttributeKey("endtag"));
        assertSame(Attribute.FACE,
                   HTML.getAttributeKey("face"));
        assertSame(Attribute.FRAMEBORDER,
                   HTML.getAttributeKey("frameborder"));
        assertSame(Attribute.HALIGN,
                   HTML.getAttributeKey("halign"));
        assertSame(Attribute.HEIGHT,
                   HTML.getAttributeKey("height"));
        assertSame(Attribute.HREF,
                   HTML.getAttributeKey("href"));
        assertSame(Attribute.HSPACE,
                   HTML.getAttributeKey("hspace"));
        assertSame(Attribute.HTTPEQUIV,
                   HTML.getAttributeKey("http-equiv"));
        assertSame(Attribute.ID,
                   HTML.getAttributeKey("id"));
        assertSame(Attribute.ISMAP,
                   HTML.getAttributeKey("ismap"));
        assertSame(Attribute.LANG,
                   HTML.getAttributeKey("lang"));
        assertSame(Attribute.LANGUAGE,
                   HTML.getAttributeKey("language"));
        assertSame(Attribute.LINK,
                   HTML.getAttributeKey("link"));
        assertSame(Attribute.LOWSRC,
                   HTML.getAttributeKey("lowsrc"));
        assertSame(Attribute.MARGINHEIGHT,
                   HTML.getAttributeKey("marginheight"));
        assertSame(Attribute.MARGINWIDTH,
                   HTML.getAttributeKey("marginwidth"));
        assertSame(Attribute.MAXLENGTH,
                   HTML.getAttributeKey("maxlength"));
        assertSame(Attribute.METHOD,
                   HTML.getAttributeKey("method"));
        assertSame(Attribute.MULTIPLE,
                   HTML.getAttributeKey("multiple"));
        assertSame(Attribute.N,
                   HTML.getAttributeKey("n"));
        assertSame(Attribute.NAME,
                   HTML.getAttributeKey("name"));
        assertSame(Attribute.NOHREF,
                   HTML.getAttributeKey("nohref"));
        assertSame(Attribute.NORESIZE,
                   HTML.getAttributeKey("noresize"));
        assertSame(Attribute.NOSHADE,
                   HTML.getAttributeKey("noshade"));
        assertSame(Attribute.NOWRAP,
                   HTML.getAttributeKey("nowrap"));
        assertSame(Attribute.PROMPT,
                   HTML.getAttributeKey("prompt"));
        assertSame(Attribute.REL,
                   HTML.getAttributeKey("rel"));
        assertSame(Attribute.REV,
                   HTML.getAttributeKey("rev"));
        assertSame(Attribute.ROWS,
                   HTML.getAttributeKey("rows"));
        assertSame(Attribute.ROWSPAN,
                   HTML.getAttributeKey("rowspan"));
        assertSame(Attribute.SCROLLING,
                   HTML.getAttributeKey("scrolling"));
        assertSame(Attribute.SELECTED,
                   HTML.getAttributeKey("selected"));
        assertSame(Attribute.SHAPE,
                   HTML.getAttributeKey("shape"));
        assertSame(Attribute.SHAPES,
                   HTML.getAttributeKey("shapes"));
        assertSame(Attribute.SIZE,
                   HTML.getAttributeKey("size"));
        assertSame(Attribute.SRC,
                   HTML.getAttributeKey("src"));
        assertSame(Attribute.STANDBY,
                   HTML.getAttributeKey("standby"));
        assertSame(Attribute.START,
                   HTML.getAttributeKey("start"));
        assertSame(Attribute.STYLE,
                   HTML.getAttributeKey("style"));
        assertSame(Attribute.TARGET,
                   HTML.getAttributeKey("target"));
        assertSame(Attribute.TEXT,
                   HTML.getAttributeKey("text"));
        assertSame(Attribute.TITLE,
                   HTML.getAttributeKey("title"));
        assertSame(Attribute.TYPE,
                   HTML.getAttributeKey("type"));
        assertSame(Attribute.USEMAP,
                   HTML.getAttributeKey("usemap"));
        assertSame(Attribute.VALIGN,
                   HTML.getAttributeKey("valign"));
        assertSame(Attribute.VALUE,
                   HTML.getAttributeKey("value"));
        assertSame(Attribute.VALUETYPE,
                   HTML.getAttributeKey("valuetype"));
        assertSame(Attribute.VERSION,
                   HTML.getAttributeKey("version"));
        assertSame(Attribute.VLINK,
                   HTML.getAttributeKey("vlink"));
        assertSame(Attribute.VSPACE,
                   HTML.getAttributeKey("vspace"));
        assertSame(Attribute.WIDTH,
                   HTML.getAttributeKey("width"));
    }

    public void testGetIntegerAttributeValue() {
        MutableAttributeSet attrs = new SimpleAttributeSet();
        attrs.addAttribute(Attribute.COLSPAN, new String("11"));
        assertEquals(11,
                     HTML.getIntegerAttributeValue(attrs,
                                                   Attribute.COLSPAN, -1));

        attrs = new SimpleAttributeSet();
        attrs.addAttribute(Attribute.HREF, new String("10101"));
        assertEquals(10101,
                     HTML.getIntegerAttributeValue(attrs,
                                                   Attribute.HREF, -1));

        attrs = new SimpleAttributeSet();
        attrs.addAttribute(Attribute.HREF, new String("not a number"));
        assertEquals(-1,
                     HTML.getIntegerAttributeValue(attrs,
                                                   Attribute.HREF, -1));

        attrs = new SimpleAttributeSet();
        assertEquals(-1,
                     HTML.getIntegerAttributeValue(attrs,
                                                   Attribute.HREF, -1));

        final MutableAttributeSet wrongValue = new SimpleAttributeSet();
        wrongValue.addAttribute(Attribute.HREF, new Integer("10101"));
        testExceptionalCase(new ClassCastCase() {
            public void exceptionalAction() throws Exception {
                HTML.getIntegerAttributeValue(wrongValue, Attribute.HREF, -1);
            }
        });
    }

    public void testStaticAttributeKeysOfAttributes() {
        final Attribute[] attrs = HTML.getAllAttributeKeys();
        for (int i = 0; i < attrs.length; i++) {
            Object staticKey = StyleContext.getStaticAttributeKey(attrs[i]);
            assertSame("Static attribute for Attribute" + attrs[i]
                       + ", index " + i,
                       attrs[i],
                       StyleContext.getStaticAttribute(staticKey));
        }
    }

    public void testStaticAttributeKeysOfTags() {
        final Tag[] tags = HTML.getAllTags();
        for (int i = 0; i < tags.length; i++) {
            Object staticKey = StyleContext.getStaticAttributeKey(tags[i]);
            assertSame("Static attribute for Tag " + tags[i] + ", index " + i,
                       tags[i],
                       StyleContext.getStaticAttribute(staticKey));
        }
    }

    public void testResolveURL() throws Exception {
        // Regression for HARMONY-4529
        String base = "jar:file:test.jar!/root/current";
        String relative = "dir/file";
        String absolute = "http://host/file";
        URL baseURL = new URL(base);
        URL absoluteURL = new URL(absolute);
        URL resolvedURL = new URL("jar:file:test.jar!/root/dir/file");

        assertEquals(resolvedURL, HTML.resolveURL(relative, base));
        assertEquals(resolvedURL, HTML.resolveURL(relative, baseURL));

        assertEquals(absoluteURL, HTML.resolveURL(absolute, base));
        assertEquals(absoluteURL, HTML.resolveURL(absolute, baseURL));
        assertEquals(absoluteURL, HTML.resolveURL(absoluteURL, base));
        assertEquals(absoluteURL, HTML.resolveURL(absoluteURL, baseURL));

        assertEquals(absoluteURL, HTML.resolveURL(absolute, (URL) null));
        assertEquals(absoluteURL, HTML.resolveURL(absolute, (String) null));
        assertEquals(absoluteURL, HTML.resolveURL(absoluteURL, (URL) null));
        assertEquals(absoluteURL, HTML.resolveURL(absoluteURL, (String) null));

        assertNull(HTML.resolveURL("", base));
        assertNull(HTML.resolveURL("", baseURL));
        assertNull(HTML.resolveURL((URL) null, base));
        assertNull(HTML.resolveURL((URL) null, baseURL));
        assertNull(HTML.resolveURL((String) null, base));
        assertNull(HTML.resolveURL((String) null, baseURL));

        assertNull(HTML.resolveURL("", (URL) null));
        assertNull(HTML.resolveURL("", (String) null));
        assertNull(HTML.resolveURL((URL) null, (URL) null));
        assertNull(HTML.resolveURL((URL) null, (String) null));
        assertNull(HTML.resolveURL((String) null, (URL) null));
        assertNull(HTML.resolveURL((String) null, (String) null));
    }
}
TOP

Related Classes of javax.swing.text.html.HTMLTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.