From 078d5f55db46a0b4151f877708e21a2c2a0402e5 Mon Sep 17 00:00:00 2001 From: Keiichi Watanabe Date: Mon, 21 Dec 2015 17:25:24 +0900 Subject: [PATCH 1/3] modify helper tests --- .../fess/helper/DuplicateHostHelper.java | 2 +- .../fess/helper/DuplicateHostHelperTest.java | 20 ++-- .../helper/impl/RoleQueryHelperImplTest.java | 96 +++++++++---------- 3 files changed, 58 insertions(+), 60 deletions(-) diff --git a/src/main/java/org/codelibs/fess/helper/DuplicateHostHelper.java b/src/main/java/org/codelibs/fess/helper/DuplicateHostHelper.java index a351e88234..1bd6399ecb 100644 --- a/src/main/java/org/codelibs/fess/helper/DuplicateHostHelper.java +++ b/src/main/java/org/codelibs/fess/helper/DuplicateHostHelper.java @@ -29,7 +29,7 @@ public class DuplicateHostHelper implements Serializable { private static final long serialVersionUID = 1L; - private List duplicateHostList; + protected List duplicateHostList; @PostConstruct public void init() { diff --git a/src/test/java/org/codelibs/fess/helper/DuplicateHostHelperTest.java b/src/test/java/org/codelibs/fess/helper/DuplicateHostHelperTest.java index 311469927b..9623139b64 100644 --- a/src/test/java/org/codelibs/fess/helper/DuplicateHostHelperTest.java +++ b/src/test/java/org/codelibs/fess/helper/DuplicateHostHelperTest.java @@ -15,6 +15,9 @@ */ package org.codelibs.fess.helper; +import java.util.ArrayList; + +import org.codelibs.fess.es.config.exentity.DuplicateHost; import org.codelibs.fess.unit.UnitFessTestCase; public class DuplicateHostHelperTest extends UnitFessTestCase { @@ -24,13 +27,18 @@ public class DuplicateHostHelperTest extends UnitFessTestCase { public void setUp() throws Exception { super.setUp(); duplicateHostHelper = new DuplicateHostHelper(); - // duplicateHostHelper.init(); // TODO cause error - } - - public void test_dummy() { + duplicateHostHelper.duplicateHostList = new ArrayList(); + + DuplicateHost foo = new DuplicateHost(); + foo.setRegularName("www.foo.com"); + foo.setDuplicateHostName("foo.com"); + duplicateHostHelper.duplicateHostList.add(foo); + DuplicateHost bar = new DuplicateHost(); + bar.setRegularName("www.bar.com"); + bar.setDuplicateHostName("mail.bar.com"); + duplicateHostHelper.duplicateHostList.add(bar); } - /* public void test_convert() { String url; String result; @@ -77,5 +85,5 @@ public void test_convert_skip() { result = "http://www.bar.com:8080/"; assertEquals(result, duplicateHostHelper.convert(url)); } - */ + } diff --git a/src/test/java/org/codelibs/fess/helper/impl/RoleQueryHelperImplTest.java b/src/test/java/org/codelibs/fess/helper/impl/RoleQueryHelperImplTest.java index da208815b6..712cabebb6 100644 --- a/src/test/java/org/codelibs/fess/helper/impl/RoleQueryHelperImplTest.java +++ b/src/test/java/org/codelibs/fess/helper/impl/RoleQueryHelperImplTest.java @@ -15,11 +15,13 @@ */ package org.codelibs.fess.helper.impl; +import java.util.Set; + +import javax.servlet.http.Cookie; + import org.codelibs.core.crypto.CachedCipher; -import org.codelibs.fess.helper.SystemHelper; -import org.codelibs.fess.mylasta.direction.FessConfig; +import org.codelibs.core.exception.IllegalBlockSizeRuntimeException; import org.codelibs.fess.unit.UnitFessTestCase; -import org.codelibs.fess.util.ComponentUtil; public class RoleQueryHelperImplTest extends UnitFessTestCase { public RoleQueryHelperImpl roleQueryHelperImpl; @@ -30,35 +32,26 @@ public void setUp() throws Exception { super.setUp(); roleQueryHelperImpl = new RoleQueryHelperImpl(); cipher = new CachedCipher(); - final FessConfig fessConfig = ComponentUtil.getFessConfig(); - registerMockInstance(fessConfig); - registerMockInstance(new SystemHelper()); - inject(roleQueryHelperImpl); - } - - public void test_dummy() { - // TODO + cipher.setKey("1234567890123456"); } - /* - * public void test_buildByParameter() { final RoleQueryHelperImpl roleQueryHelperImpl = new RoleQueryHelperImpl(); Set roleSet; - roleSet = roleQueryHelperImpl.buildByParameter(getRequest()); + roleSet = roleQueryHelperImpl.buildByParameter(getMockRequest()); assertEquals(0, roleSet.size()); roleQueryHelperImpl.parameterKey = "fess1"; - getRequest().setParameter("aaa", "bbb"); - roleSet = roleQueryHelperImpl.buildByParameter(getRequest()); + getMockRequest().setParameter("aaa", "bbb"); + roleSet = roleQueryHelperImpl.buildByParameter(getMockRequest()); assertEquals(0, roleSet.size()); roleQueryHelperImpl.encryptedParameterValue = false; - getRequest().setParameter("fess1", "xxx\nrole1,role2,role3"); - roleSet = roleQueryHelperImpl.buildByParameter(getRequest()); + getMockRequest().setParameter("fess1", "xxx\nrole1,role2,role3"); + roleSet = roleQueryHelperImpl.buildByParameter(getMockRequest()); assertEquals(3, roleSet.size()); assertTrue(roleSet.contains("role1")); assertTrue(roleSet.contains("role2")); @@ -68,17 +61,16 @@ public void test_buildByParameter() { roleQueryHelperImpl.cipher = cipher; roleQueryHelperImpl.encryptedParameterValue = true; - getRequest().setParameter("fess2", - cipher.encryptoText("xxx\nrole1,role2,role3")); - roleSet = roleQueryHelperImpl.buildByParameter(getRequest()); + getMockRequest().setParameter("fess2", cipher.encryptoText("xxx\nrole1,role2,role3")); + roleSet = roleQueryHelperImpl.buildByParameter(getMockRequest()); assertEquals(3, roleSet.size()); assertTrue(roleSet.contains("role1")); assertTrue(roleSet.contains("role2")); assertTrue(roleSet.contains("role3")); - getRequest().setParameter("fess2", "fail"); + getMockRequest().setParameter("fess2", "fail"); try { - roleSet = roleQueryHelperImpl.buildByParameter(getRequest()); + roleSet = roleQueryHelperImpl.buildByParameter(getMockRequest()); fail(); } catch (final IllegalBlockSizeRuntimeException e) { // ok @@ -87,14 +79,14 @@ public void test_buildByParameter() { roleQueryHelperImpl.parameterKey = "fess3"; roleQueryHelperImpl.encryptedParameterValue = false; - roleSet = roleQueryHelperImpl.buildByParameter(getRequest()); + roleSet = roleQueryHelperImpl.buildByParameter(getMockRequest()); assertEquals(0, roleSet.size()); roleQueryHelperImpl.parameterKey = "fess4"; roleQueryHelperImpl.cipher = cipher; roleQueryHelperImpl.encryptedParameterValue = true; - roleSet = roleQueryHelperImpl.buildByParameter(getRequest()); + roleSet = roleQueryHelperImpl.buildByParameter(getMockRequest()); assertEquals(0, roleSet.size()); } @@ -105,7 +97,7 @@ public void test_buildByHeader() { Set roleSet; try { - roleSet = roleQueryHelperImpl.buildByHeader(getRequest()); + roleSet = roleQueryHelperImpl.buildByHeader(getMockRequest()); fail(); } catch (final NullPointerException e) { //ok @@ -113,13 +105,13 @@ public void test_buildByHeader() { roleQueryHelperImpl.headerKey = "fess1"; - getRequest().addHeader("aaa", "bbb"); - roleSet = roleQueryHelperImpl.buildByHeader(getRequest()); + getMockRequest().addHeader("aaa", "bbb"); + roleSet = roleQueryHelperImpl.buildByHeader(getMockRequest()); assertEquals(0, roleSet.size()); roleQueryHelperImpl.encryptedHeaderValue = false; - getRequest().addHeader("fess1", "xxx\nrole1,role2,role3"); - roleSet = roleQueryHelperImpl.buildByHeader(getRequest()); + getMockRequest().addHeader("fess1", "xxx\nrole1,role2,role3"); + roleSet = roleQueryHelperImpl.buildByHeader(getMockRequest()); assertEquals(3, roleSet.size()); assertTrue(roleSet.contains("role1")); assertTrue(roleSet.contains("role2")); @@ -129,18 +121,17 @@ public void test_buildByHeader() { roleQueryHelperImpl.cipher = cipher; roleQueryHelperImpl.encryptedHeaderValue = true; - getRequest().addHeader("fess2", - cipher.encryptoText("xxx\nrole1,role2,role3")); - roleSet = roleQueryHelperImpl.buildByHeader(getRequest()); + getMockRequest().addHeader("fess2", cipher.encryptoText("xxx\nrole1,role2,role3")); + roleSet = roleQueryHelperImpl.buildByHeader(getMockRequest()); assertEquals(3, roleSet.size()); assertTrue(roleSet.contains("role1")); assertTrue(roleSet.contains("role2")); assertTrue(roleSet.contains("role3")); roleQueryHelperImpl.headerKey = "fess2x"; - getRequest().addHeader("fess2x", "fail"); + getMockRequest().addHeader("fess2x", "fail"); try { - roleSet = roleQueryHelperImpl.buildByHeader(getRequest()); + roleSet = roleQueryHelperImpl.buildByHeader(getMockRequest()); fail(); } catch (final IllegalBlockSizeRuntimeException e) { // ok @@ -149,14 +140,14 @@ public void test_buildByHeader() { roleQueryHelperImpl.headerKey = "fess3"; roleQueryHelperImpl.encryptedHeaderValue = false; - roleSet = roleQueryHelperImpl.buildByHeader(getRequest()); + roleSet = roleQueryHelperImpl.buildByHeader(getMockRequest()); assertEquals(0, roleSet.size()); roleQueryHelperImpl.headerKey = "fess4"; roleQueryHelperImpl.cipher = cipher; roleQueryHelperImpl.encryptedHeaderValue = true; - roleSet = roleQueryHelperImpl.buildByHeader(getRequest()); + roleSet = roleQueryHelperImpl.buildByHeader(getMockRequest()); assertEquals(0, roleSet.size()); } @@ -166,13 +157,13 @@ public void test_buildByCookie() { Set roleSet; Cookie cookie; - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); assertEquals(0, roleSet.size()); cookie = new Cookie("aaa", "bbb"); - getRequest().addCookie(cookie); + getMockRequest().addCookie(cookie); try { - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); fail(); } catch (final NullPointerException e) { // ok @@ -180,13 +171,13 @@ public void test_buildByCookie() { roleQueryHelperImpl.cookieKey = "fess1"; - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); assertEquals(0, roleSet.size()); roleQueryHelperImpl.encryptedCookieValue = false; cookie = new Cookie("fess1", "xxx\nrole1,role2,role3"); - getRequest().addCookie(cookie); - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + getMockRequest().addCookie(cookie); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); assertEquals(3, roleSet.size()); assertTrue(roleSet.contains("role1")); assertTrue(roleSet.contains("role2")); @@ -196,10 +187,9 @@ public void test_buildByCookie() { roleQueryHelperImpl.cipher = cipher; roleQueryHelperImpl.encryptedCookieValue = true; - cookie = new Cookie("fess2", - cipher.encryptoText("xxx\nrole1,role2,role3")); - getRequest().addCookie(cookie); - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + cookie = new Cookie("fess2", cipher.encryptoText("xxx\nrole1,role2,role3")); + getMockRequest().addCookie(cookie); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); assertEquals(3, roleSet.size()); assertTrue(roleSet.contains("role1")); assertTrue(roleSet.contains("role2")); @@ -210,9 +200,9 @@ public void test_buildByCookie() { roleQueryHelperImpl.cipher = cipher; roleQueryHelperImpl.encryptedCookieValue = true; cookie = new Cookie("fess2x", "fail"); - getRequest().addCookie(cookie); + getMockRequest().addCookie(cookie); try { - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); fail(); } catch (final Exception e) { // ok @@ -221,14 +211,14 @@ public void test_buildByCookie() { roleQueryHelperImpl.cookieKey = "fess3"; roleQueryHelperImpl.encryptedCookieValue = false; - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); assertEquals(0, roleSet.size()); roleQueryHelperImpl.cookieKey = "fess4"; roleQueryHelperImpl.cipher = cipher; roleQueryHelperImpl.encryptedCookieValue = true; - roleSet = roleQueryHelperImpl.buildByCookie(getRequest()); + roleSet = roleQueryHelperImpl.buildByCookie(getMockRequest()); assertEquals(0, roleSet.size()); } @@ -361,6 +351,6 @@ public void test_decodedRoleList_withCipher() { assertTrue(roleSet.contains("role1")); assertTrue(roleSet.contains("role2")); assertTrue(roleSet.contains("role3")); - } - */ + } + } From 68d6264ba99c98699ba68ddecb30dfa3dbcc82e6 Mon Sep 17 00:00:00 2001 From: Keiichi Watanabe Date: Mon, 21 Dec 2015 17:26:31 +0900 Subject: [PATCH 2/3] import unit tests from 9.4.x --- .../transformer/FessFileTransformerTest.java | 217 +++++++++++++ .../transformer/FessXpathTransformerTest.java | 298 ++++++++++++++++++ .../ds/impl/DatabaseDataStoreImplTest.java | 60 ++++ .../org/codelibs/fess/entity/GeoInfoTest.java | 134 ++++++++ .../fess/filter/EncodingFilterTest.java | 92 ++++++ .../fess/indexer/DocBoostMatcherTest.java | 92 ++++++ .../codelibs/fess/util/ParameterUtilTest.java | 166 ++++++++++ .../fess/util/QueryResponseListTest.java | 222 +++++++++++++ .../codelibs/fess/util/ResourceUtilTest.java | 83 +++++ .../fess/validator/UriTypeChecksTest.java | 83 +++++ 10 files changed, 1447 insertions(+) create mode 100644 src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java create mode 100644 src/test/java/org/codelibs/fess/crawler/transformer/FessXpathTransformerTest.java create mode 100644 src/test/java/org/codelibs/fess/ds/impl/DatabaseDataStoreImplTest.java create mode 100644 src/test/java/org/codelibs/fess/entity/GeoInfoTest.java create mode 100644 src/test/java/org/codelibs/fess/filter/EncodingFilterTest.java create mode 100644 src/test/java/org/codelibs/fess/indexer/DocBoostMatcherTest.java create mode 100644 src/test/java/org/codelibs/fess/util/ParameterUtilTest.java create mode 100644 src/test/java/org/codelibs/fess/util/QueryResponseListTest.java create mode 100644 src/test/java/org/codelibs/fess/util/ResourceUtilTest.java create mode 100644 src/test/java/org/codelibs/fess/validator/UriTypeChecksTest.java diff --git a/src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java b/src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java new file mode 100644 index 0000000000..9c1ab33d47 --- /dev/null +++ b/src/test/java/org/codelibs/fess/crawler/transformer/FessFileTransformerTest.java @@ -0,0 +1,217 @@ +/* + * Copyright 2012-2015 CodeLibs Project and the Others. + * + * Licensed 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. + */ +package org.codelibs.fess.crawler.transformer; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +import org.codelibs.fess.Constants; +import org.codelibs.fess.exception.FessSystemException; +import org.codelibs.fess.unit.UnitFessTestCase; + +public class FessFileTransformerTest extends UnitFessTestCase { + + private String encodeUrl(final String url) { + try { + return URLEncoder.encode(url, Constants.UTF_8); + } catch (final UnsupportedEncodingException e) { + throw new FessSystemException("Unsupported encoding.", e); + } + } + + public void test_decodeUrl_ok() throws Exception { + String url, exp; + final FessFileTransformer transformer = new FessFileTransformer(); + + url = ""; + exp = ""; + assertEquals(exp, transformer.decodeUrlAsName(url, true)); + + url = "http://example.com/"; + exp = "http://example.com/"; + assertEquals(exp, transformer.decodeUrlAsName(url, false)); + + url = "http://example.com/index.html"; + exp = "http://example.com/index.html"; + assertEquals(exp, transformer.decodeUrlAsName(url, false)); + + url = "http://example.com/" + encodeUrl("テスト ") + ".html"; + exp = "http://example.com/テスト .html"; + assertEquals(exp, transformer.decodeUrlAsName(url, false)); + + url = "file://C++.doc"; + exp = "file://C++.doc"; + assertEquals(exp, transformer.decodeUrlAsName(url, true)); + + url = "file://C .doc"; + exp = "file://C .doc"; + assertEquals(exp, transformer.decodeUrlAsName(url, true)); + } + + public void test_decodeUrl_null() throws Exception { + final FessFileTransformer transformer = new FessFileTransformer(); + assertNull(transformer.decodeUrlAsName(null, true)); + } + + public void test_getHost_ok() { + String url, exp; + final FessFileTransformer transformer = new FessFileTransformer(); + + url = ""; + exp = ""; + assertEquals(exp, transformer.getHost(url)); + + url = "http://server/home/user"; + exp = "server"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:/home/user"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:/c:/home/user"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:////server/home/user"; + exp = "server"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:/" + encodeUrl("ホーム") + "/user"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:/c:/" + encodeUrl("ホーム") + "/user"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:////" + encodeUrl("サーバー") + "/home/user"; + exp = "サーバー"; + assertEquals(exp, transformer.getHost(url)); + + } + + public void test_getHost_unexpected() { + String url, exp; + final FessFileTransformer transformer = new FessFileTransformer(); + + url = null; + exp = ""; + assertEquals(exp, transformer.getHost(url)); + + url = "example:"; + exp = "unknown"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file://"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:///"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file://///"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file://///example"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + url = "file:/c:"; + exp = "localhost"; + assertEquals(exp, transformer.getHost(url)); + + } + + public void test_getSite_ok() { + String url, exp; + final FessFileTransformer transformer = new FessFileTransformer(); + + url = ""; + exp = ""; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "http://example.com/"; + exp = "example.com/"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "http://example.com/index.html"; + exp = "example.com/index.html"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file:/home/user"; + exp = "/home/user"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file:/c:/home/user"; + exp = "c:\\home\\user"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file:/c:/"; + exp = "c:\\"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file:////server/user"; + exp = "\\\\server\\user"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + transformer.maxSiteLength = 10; + + url = "file:/home/user/foo"; + exp = "/home/u..."; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + } + + public void test_getSite_unexpected() { + String url, exp; + final FessFileTransformer transformer = new FessFileTransformer(); + + url = "file:"; + exp = ""; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file"; + exp = "file"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file:/"; + exp = "/"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file:/c:"; + exp = "c:"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file://"; + exp = "//"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file:///"; + exp = "///"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + + url = "file://///"; + exp = "\\\\\\"; + assertEquals(exp, transformer.getSite(url, "UTF-8")); + } +} diff --git a/src/test/java/org/codelibs/fess/crawler/transformer/FessXpathTransformerTest.java b/src/test/java/org/codelibs/fess/crawler/transformer/FessXpathTransformerTest.java new file mode 100644 index 0000000000..24b8cecd24 --- /dev/null +++ b/src/test/java/org/codelibs/fess/crawler/transformer/FessXpathTransformerTest.java @@ -0,0 +1,298 @@ +/* + * Copyright 2012-2015 CodeLibs Project and the Others. + * + * Licensed 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. + */ +package org.codelibs.fess.crawler.transformer; + +import java.io.ByteArrayInputStream; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.xml.transform.OutputKeys; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.codelibs.fess.crawler.builder.RequestDataBuilder; +import org.codelibs.fess.crawler.entity.RequestData; +import org.codelibs.fess.crawler.entity.ResponseData; +import org.codelibs.fess.crawler.exception.ChildUrlsException; +import org.codelibs.fess.unit.UnitFessTestCase; +import org.cyberneko.html.parsers.DOMParser; +import org.lastaflute.di.core.exception.ComponentNotFoundException; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.xml.sax.InputSource; + +public class FessXpathTransformerTest extends UnitFessTestCase { + public FessXpathTransformer fessXpathTransformer; + + @Override + public void setUp() throws Exception { + super.setUp(); + fessXpathTransformer = new FessXpathTransformer(); + fessXpathTransformer.convertUrlMap.put("feed:", "http:"); + } + + public void test_pruneNode() throws Exception { + final String data = "
"; + final Document document = getDocument(data); + + final FessXpathTransformer transformer = new FessXpathTransformer(); + + final Node pruneNode = transformer.pruneNode(document.cloneNode(true)); + assertEquals(getXmlString(document), getXmlString(pruneNode)); + } + + public void test_pruneNode_removeNoScript() throws Exception { + final String data = "
"; + final Document document = getDocument(data); + + final FessXpathTransformer transformer = new FessXpathTransformer(); + transformer.prunedTagList.add("noscript"); + + final Node pruneNode = transformer.pruneNode(document.cloneNode(true)); + final String docString = getXmlString(document); + final String pnString = getXmlString(pruneNode); + assertTrue(docString.contains(""; + final Document document = getDocument(data); + + final FessXpathTransformer transformer = new FessXpathTransformer(); + transformer.prunedTagList.add("script"); + transformer.prunedTagList.add("noscript"); + + final Node pruneNode = transformer.pruneNode(document.cloneNode(true)); + final String docString = getXmlString(document); + final String pnString = getXmlString(pruneNode); + assertTrue(docString.contains("