Package org.clapper.util.html

Source Code of org.clapper.util.html.HTMLEntitiesTest$TestData

package org.clapper.util.html;

import org.junit.*;
import static org.junit.Assert.*;

import org.clapper.util.text.XStringBuilder;
import org.clapper.util.text.Unicode;

public class HTMLEntitiesTest
{
    class TestData
    {
        String before;
        String after;

        TestData(String before, String after)
        {
            this.before = before;
            this.after = after;
        }
    }

    public HTMLEntitiesTest()
    {
    }

    @Test public void convertHTMLEntities()
    {
        TestData[] testData = new TestData[]
        {
            new TestData("™", "\u2122"),
            new TestData("&#8482", "&#8482"),
            new TestData("™", "\u2122"),
            new TestData("&#x2122", "&#x2122"),
            new TestData("", "\u007f"),
            new TestData("&foobar baz", "&foobar\u00a0baz"),
            new TestData("&foobar; baz", "&foobar;\u00a0baz"),
            new TestData("&foobar;&nbsp baz", "&foobar;&nbsp baz")
        };

        XStringBuilder bufAfter = new XStringBuilder();
        XStringBuilder bufExpected = new XStringBuilder();
        for (int i = 0; i < testData.length; i++)
        {
            String after = HTMLUtil.convertCharacterEntities(testData[i].before);
            bufAfter.reset(after);
            bufAfter.encodeMetacharacters();
            bufExpected.reset(testData[i].after);
            bufExpected.encodeMetacharacters();
            assertEquals(testData[i].before + " converts to \"" +
                         bufAfter.toString() +
                         "\", instead of the expected value of \"" +
                         bufExpected.toString() + "\"",
                         testData[i].after, after);
        }
    }

    @Test public void textFromHTML()
    {
        TestData[] testData = new TestData[]
        {
            new TestData("&foobar&nbsp;baz", "&foobar baz"),
            new TestData("&foobar;&nbsp;baz", "&foobar; baz"),
            new TestData("&foobar;&nbsp baz", "&foobar;&nbsp baz"),
            new TestData("foo" + Unicode.EN_SPACE + "bar", "foo bar"),
            new TestData("foo" + Unicode.EM_SPACE + "bar", "foo bar"),
            new TestData("foo" + Unicode.EM_DASH + "bar", "foo--bar"),
            new TestData("foo" + Unicode.EN_DASH + "bar", "foo-bar"),
            new TestData("foo" + Unicode.NON_BREAKING_HYPHEN + "bar", "foo-bar"),
            new TestData("foo-bar", "foo-bar"),
            new TestData("foo" + Unicode.ZERO_WIDTH_NON_JOINER + "bar", "foobar"),
            new TestData("foo" + Unicode.ZERO_WIDTH_JOINER + "bar", "foobar")
        };

        XStringBuilder bufBefore = new XStringBuilder();
        XStringBuilder bufExpected = new XStringBuilder();
        XStringBuilder bufActual = new XStringBuilder();
        for (TestData data : testData)
        {
            String after = HTMLUtil.textFromHTML(data.before);
            bufActual.reset(after);
            bufActual.encodeMetacharacters();
            bufExpected.reset(data.after);
            bufExpected.encodeMetacharacters();
            bufBefore.reset(data.before);
            bufBefore.encodeMetacharacters();
            assertEquals(bufBefore.toString() + " converts to \"" +
                         bufActual.toString() +
                         "\", instead of the expected value of \"" +
                         bufExpected.toString() + "\"",
                         data.after, after);
        }
    }

    @Test public void makeCharacterEntities()
    {
        TestData[] testData = new TestData[]
        {
            new TestData(Unicode.NBSP + "", "&nbsp;"),
            new TestData("\u00b9", "&sup1;"),
            new TestData("\u00cb", "&Euml;"),
            new TestData("\u2288", "&#8840;"),
            new TestData("\u00c8", "&Egrave;"),
            new TestData("\u2264", "&le;")
        };

        XStringBuilder bufBefore = new XStringBuilder();
        XStringBuilder bufExpected = new XStringBuilder();
        XStringBuilder bufActual = new XStringBuilder();
        for (int i = 0; i < testData.length; i++)
        {
            String after = HTMLUtil.makeCharacterEntities(testData[i].before);
            bufActual.reset(after);
            bufActual.encodeMetacharacters();
            bufExpected.reset(testData[i].after);
            bufExpected.encodeMetacharacters();
            bufBefore.reset(testData[i].before);
            bufBefore.encodeMetacharacters();
            assertEquals(bufBefore.toString() + " converts to \"" +
                         bufActual.toString() +
                         "\", instead of the expected value of \"" +
                         bufExpected.toString() + "\"",
                         testData[i].after, after);
        }
    }
}
TOP

Related Classes of org.clapper.util.html.HTMLEntitiesTest$TestData

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.