This is an automated email from the ASF dual-hosted git repository. olli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-html.git
commit 5e389f9e466f319f90f1b0618fea0efdab35d286 Author: Oliver Lietz <[email protected]> AuthorDate: Wed Mar 28 21:58:44 2018 +0200 SLING-7557 Add initial integration tests --- pom.xml | 120 ++++++++++++++++++++- .../sling/commons/html/it/HtmlTestSupport.java | 46 ++++++++ .../sling/commons/html/it/TagsoupParserIT.java | 72 +++++++++++++ 3 files changed, 234 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 9a49e19..8b34cf5 100644 --- a/pom.xml +++ b/pom.xml @@ -35,6 +35,10 @@ The Sling Commons HTML bundle provides utility classes for parsing and creating HTML. </description> + <properties> + <org.ops4j.pax.exam.version>4.11.0</org.ops4j.pax.exam.version> + </properties> + <scm> <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-html.git</connection> <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-commons-html.git</developerConnection> @@ -51,8 +55,34 @@ <groupId>biz.aQute.bnd</groupId> <artifactId>bnd-baseline-maven-plugin</artifactId> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + </execution> + </executions> + <configuration> + <redirectTestOutputToFile>true</redirectTestOutputToFile> + <systemProperties> + <property> + <name>bundle.filename</name> + <value>${basedir}/target/${project.build.finalName}.jar</value> + </property> + </systemProperties> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.servicemix.tooling</groupId> + <artifactId>depends-maven-plugin</artifactId> + </plugin> </plugins> </build> + <reporting> <plugins> <plugin> @@ -68,6 +98,12 @@ </reporting> <dependencies> + <!-- javax --> + <dependency> + <groupId>javax.inject</groupId> + <artifactId>javax.inject</artifactId> + <scope>test</scope> + </dependency> <!-- OSGi --> <dependency> <groupId>org.osgi</groupId> @@ -76,6 +112,11 @@ </dependency> <dependency> <groupId>org.osgi</groupId> + <artifactId>osgi.cmpn</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> <artifactId>org.osgi.service.component.annotations</artifactId> <scope>provided</scope> </dependency> @@ -89,12 +130,83 @@ <groupId>org.ccil.cowan.tagsoup</groupId> <artifactId>tagsoup</artifactId> <version>1.2.1</version> + <scope>compile</scope> + </dependency> + <!-- Apache Commons --> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.7</version> + <scope>test</scope> + </dependency> + <!-- Apache Felix --> + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.framework</artifactId> + <version>5.6.10</version> + <scope>test</scope> + </dependency> + <!-- Apache Sling --> + <dependency> + <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.commons.osgi</artifactId> + <version>2.2.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.testing.paxexam</artifactId> + <version>2.0.0</version> + <scope>provided</scope> + </dependency> + <!-- logging --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <scope>provided</scope> + </dependency> + <!-- testing --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.servicemix.bundles</groupId> + <artifactId>org.apache.servicemix.bundles.hamcrest</artifactId> + <version>1.3_1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-cm</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> </dependency> <dependency> - <groupId>org.apache.sling</groupId> - <artifactId>org.apache.sling.commons.osgi</artifactId> - <version>2.2.0</version> - <scope>provided</scope> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-container-forked</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-junit4</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-link-mvn</artifactId> + <version>${org.ops4j.pax.exam.version}</version> + <scope>test</scope> </dependency> </dependencies> + </project> diff --git a/src/test/java/org/apache/sling/commons/html/it/HtmlTestSupport.java b/src/test/java/org/apache/sling/commons/html/it/HtmlTestSupport.java new file mode 100644 index 0000000..767848f --- /dev/null +++ b/src/test/java/org/apache/sling/commons/html/it/HtmlTestSupport.java @@ -0,0 +1,46 @@ +/* + * 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. + */ +package org.apache.sling.commons.html.it; + +import org.apache.sling.testing.paxexam.TestSupport; +import org.ops4j.pax.exam.Option; + +import static org.apache.sling.testing.paxexam.SlingOptions.scr; +import static org.apache.sling.testing.paxexam.SlingVersionResolver.SLING_GROUP_ID; +import static org.ops4j.pax.exam.CoreOptions.composite; +import static org.ops4j.pax.exam.CoreOptions.junitBundles; +import static org.ops4j.pax.exam.CoreOptions.mavenBundle; + +public abstract class HtmlTestSupport extends TestSupport { + + public Option baseConfiguration() { + return composite( + super.baseConfiguration(), + // Sling Commons HTML + testBundle("bundle.filename"), + mavenBundle().groupId(SLING_GROUP_ID).artifactId("org.apache.sling.commons.osgi").versionAsInProject(), + scr(), + // testing + mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.hamcrest").versionAsInProject(), + mavenBundle().groupId("org.apache.commons").artifactId("commons-lang3").versionAsInProject(), + junitBundles() + ); + } + +} diff --git a/src/test/java/org/apache/sling/commons/html/it/TagsoupParserIT.java b/src/test/java/org/apache/sling/commons/html/it/TagsoupParserIT.java new file mode 100644 index 0000000..954e4c6 --- /dev/null +++ b/src/test/java/org/apache/sling/commons/html/it/TagsoupParserIT.java @@ -0,0 +1,72 @@ +/* + * 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. + */ +package org.apache.sling.commons.html.it; + +import java.util.Map; + +import javax.inject.Inject; + +import org.apache.commons.lang3.reflect.FieldUtils; +import org.apache.sling.commons.html.HtmlParser; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.ops4j.pax.exam.Configuration; +import org.ops4j.pax.exam.Option; +import org.ops4j.pax.exam.junit.PaxExam; +import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy; +import org.ops4j.pax.exam.spi.reactors.PerClass; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration; + +@RunWith(PaxExam.class) +@ExamReactorStrategy(PerClass.class) +public class TagsoupParserIT extends HtmlTestSupport { + + @Inject + private HtmlParser htmlParser; + + @Configuration + public Option[] configuration() { + return new Option[]{ + this.baseConfiguration(), + newConfiguration("org.apache.sling.commons.html.impl.HtmlParserImpl") + .put("properties", "foo=true") + .asOption(), + }; + } + + @Test + @Ignore + public void testHtmlParser() { + assertNotNull(htmlParser); + } + + @Test + @Ignore + public void testConfiguration() throws IllegalAccessException { + @SuppressWarnings("unchecked") final Map<String, Boolean> features = (Map<String, Boolean>) FieldUtils.readDeclaredField(htmlParser, "features", true); + assertNotNull(features); + final Boolean foo = features.get("foo"); + assertTrue(foo); + } + +} -- To stop receiving notification emails like this one, please contact [email protected].
