Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Auge2015-02-23 19:50:27 +0000
committerRaymond Auge2015-02-23 19:50:27 +0000
commitbead2a16a46b91c7efddba38441c2adbcdce928d (patch)
tree6da6bc4511d6488f10b2a256d4387c189af4785f /bundles/org.eclipse.equinox.http.servlet.tests
parentabef82989ca120e4a81a44e59edf068ff3890ba2 (diff)
downloadrt.equinox.bundles-bead2a16a46b91c7efddba38441c2adbcdce928d.tar.gz
rt.equinox.bundles-bead2a16a46b91c7efddba38441c2adbcdce928d.tar.xz
rt.equinox.bundles-bead2a16a46b91c7efddba38441c2adbcdce928d.zip
Bug 454186 - tests
Diffstat (limited to 'bundles/org.eclipse.equinox.http.servlet.tests')
-rw-r--r--bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/OSGI-INF/testFilter18_component.xml6
-rw-r--r--bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/org/eclipse/equinox/http/servlet/tests/tb1/TestFilter18.java103
-rw-r--r--bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java26
3 files changed, 135 insertions, 0 deletions
diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/OSGI-INF/testFilter18_component.xml b/bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/OSGI-INF/testFilter18_component.xml
new file mode 100644
index 000000000..160e4b194
--- /dev/null
+++ b/bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/OSGI-INF/testFilter18_component.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true">
+ <implementation class="org.eclipse.equinox.http.servlet.tests.tb1.TestFilter18"/>
+ <reference interface="org.osgi.service.http.HttpService"
+ bind="setHttpService"/>
+</scr:component>
diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/org/eclipse/equinox/http/servlet/tests/tb1/TestFilter18.java b/bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/org/eclipse/equinox/http/servlet/tests/tb1/TestFilter18.java
new file mode 100644
index 000000000..21c02482f
--- /dev/null
+++ b/bundles/org.eclipse.equinox.http.servlet.tests/bundles_src/tb1/org/eclipse/equinox/http/servlet/tests/tb1/TestFilter18.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Raymond Augé and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Raymond Augé <raymond.auge@liferay.com> - Bug 436698
+ ******************************************************************************/
+
+package org.eclipse.equinox.http.servlet.tests.tb1;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+import org.eclipse.equinox.http.servlet.tests.tb.AbstractTestServlet;
+import org.eclipse.equinox.http.servlet.tests.util.BaseFilter;
+import org.osgi.framework.Constants;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.http.NamespaceException;
+import org.osgi.service.http.whiteboard.HttpWhiteboardConstants;
+
+/*
+ * This servlet is registered with the HttpService via the immediate DS
+ * component OSGI-INF/testServlet1_component.xml.
+ */
+public class TestFilter18 extends AbstractTestServlet {
+ private static final long serialVersionUID = 1L;
+ private final Collection<ServiceRegistration<?>> registrations = new ArrayList<ServiceRegistration<?>>();
+
+ @Override
+ public void activate(ComponentContext componentContext) throws ServletException, NamespaceException {
+
+ Dictionary<String, String> servletProps = new Hashtable<String, String>();
+ servletProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_NAME, "TestFilter18");
+ servletProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN, "/TestFilter18/foo/bar/baz/*");
+ registrations.add(componentContext.getBundleContext().registerService(Servlet.class, this, servletProps));
+
+ // Should order like: dbcacbd
+
+ // b
+ Dictionary<String, Object> filterProps = new Hashtable<String, Object>();
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_NAME, "F1");
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_PATTERN, "/TestFilter18/foo/bar/*");
+ registrations.add(componentContext.getBundleContext().registerService(Filter.class, f1, filterProps));
+
+ // c
+ filterProps = new Hashtable<String, Object>();
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_NAME, "F2");
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_REGEX, "^/TestFilter18/.*$");
+ registrations.add(componentContext.getBundleContext().registerService(Filter.class, f2, filterProps));
+
+ // d
+ filterProps = new Hashtable<String, Object>();
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_NAME, "F3");
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_REGEX, ".*18/foo/.*");
+ filterProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+ registrations.add(componentContext.getBundleContext().registerService(Filter.class, f3, filterProps));
+
+ // e - should fail to register
+ filterProps = new Hashtable<String, Object>();
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_NAME, "F4");
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_REGEX, "*");
+ filterProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+ registrations.add(componentContext.getBundleContext().registerService(Filter.class, f4, filterProps));
+
+ // f
+ filterProps = new Hashtable<String, Object>();
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_NAME, "F5");
+ filterProps.put(HttpWhiteboardConstants.HTTP_WHITEBOARD_FILTER_REGEX, ".*/baz/with/.*");
+ filterProps.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE);
+ registrations.add(componentContext.getBundleContext().registerService(Filter.class, f5, filterProps));
+ }
+
+ @Override
+ public void deactivate() {
+ for (ServiceRegistration<?> registration : registrations) {
+ registration.unregister();
+ }
+ }
+
+ @Override
+ protected void handleDoGet(HttpServletRequest request, PrintWriter writer) throws ServletException, IOException {
+ writer.print('a');
+ }
+
+ Filter f1 = new BaseFilter('b');
+ Filter f2 = new BaseFilter('c');
+ Filter f3 = new BaseFilter('d');
+ Filter f4 = new BaseFilter('e');
+ Filter f5 = new BaseFilter('f');
+}
diff --git a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java
index 7c2b10d9a..7405947d9 100644
--- a/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java
+++ b/bundles/org.eclipse.equinox.http.servlet.tests/src/org/eclipse/equinox/http/servlet/tests/ServletTest.java
@@ -375,6 +375,32 @@ public class ServletTest extends TestCase {
Assert.assertEquals(expected, actual);
}
+ public void test_Filter18() throws Exception {
+ String expected = "dbcacbd";
+ String actual;
+ Bundle bundle = installBundle(ServletTest.TEST_BUNDLE_1);
+ try {
+ bundle.start();
+ actual = requestAdvisor.request("TestFilter18/foo/bar/baz");
+ } finally {
+ uninstallBundle(bundle);
+ }
+ Assert.assertEquals(expected, actual);
+ }
+
+ public void test_Filter19() throws Exception {
+ String expected = "dfbcacbfd";
+ String actual;
+ Bundle bundle = installBundle(ServletTest.TEST_BUNDLE_1);
+ try {
+ bundle.start();
+ actual = requestAdvisor.request("TestFilter18/foo/bar/baz/with/path/info");
+ } finally {
+ uninstallBundle(bundle);
+ }
+ Assert.assertEquals(expected, actual);
+ }
+
public void test_Registration1() throws Exception {
String expected = "Alias cannot be null";
try {

Back to the top