You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shiro.apache.org by fp...@apache.org on 2020/10/20 19:16:39 UTC
[shiro] 03/03: Test cases with EasyMock
This is an automated email from the ASF dual-hosted git repository.
fpapon pushed a commit to branch 1.7.x
in repository https://gitbox.apache.org/repos/asf/shiro.git
commit 42f303f2eca6f75dcb00ef7170c9ea25e979dddd
Author: Björn Raupach <ra...@e2n.de>
AuthorDate: Sun Jan 15 14:15:26 2017 +0100
Test cases with EasyMock
---
.../apache/shiro/web/filter/authz/SslFilter.java | 9 +--
.../shiro/web/filter/authz/SslFilterTest.java | 82 ++++++++++++++++------
2 files changed, 64 insertions(+), 27 deletions(-)
diff --git a/web/src/main/java/org/apache/shiro/web/filter/authz/SslFilter.java b/web/src/main/java/org/apache/shiro/web/filter/authz/SslFilter.java
index a5e9dde..73048b0 100644
--- a/web/src/main/java/org/apache/shiro/web/filter/authz/SslFilter.java
+++ b/web/src/main/java/org/apache/shiro/web/filter/authz/SslFilter.java
@@ -112,11 +112,11 @@ public class SslFilter extends PortFilter {
*/
@Override
protected void postHandle(ServletRequest request, ServletResponse response) {
- if (hsts.enabled) {
+ if (hsts.isEnabled()) {
StringBuilder directives = new StringBuilder(64)
.append("max-age=").append(hsts.getMaxAge());
- if (hsts.includeSubDomains) {
+ if (hsts.isIncludeSubDomains()) {
directives.append("; includeSubDomains");
}
@@ -130,17 +130,18 @@ public class SslFilter extends PortFilter {
*/
public class HSTS {
+ public static final String HTTP_HEADER = "Strict-Transport-Security";
+
public static final boolean DEFAULT_ENABLED = false;
public static final int DEFAULT_MAX_AGE = 31536000; // approx. one year in seconds
public static final boolean DEFAULT_INCLUDE_SUB_DOMAINS = false;
- public static final String HTTP_HEADER = "Strict-Transport-Security";
-
private boolean enabled;
private int maxAge;
private boolean includeSubDomains;
public HSTS() {
+ this.enabled = DEFAULT_ENABLED;
this.maxAge = DEFAULT_MAX_AGE;
this.includeSubDomains = DEFAULT_INCLUDE_SUB_DOMAINS;
}
diff --git a/web/src/test/java/org/apache/shiro/web/filter/authz/SslFilterTest.java b/web/src/test/java/org/apache/shiro/web/filter/authz/SslFilterTest.java
index 4136329..2e1fe2f 100644
--- a/web/src/test/java/org/apache/shiro/web/filter/authz/SslFilterTest.java
+++ b/web/src/test/java/org/apache/shiro/web/filter/authz/SslFilterTest.java
@@ -18,49 +18,85 @@
*/
package org.apache.shiro.web.filter.authz;
+import java.util.HashMap;
+import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
import static org.apache.shiro.web.filter.authz.SslFilter.HSTS.*;
+import org.easymock.Capture;
+import org.easymock.CaptureType;
import static org.easymock.EasyMock.*;
+import org.easymock.IAnswer;
import static org.junit.Assert.*;
+import org.junit.Before;
public class SslFilterTest {
+
+ private HttpServletRequest request;
+ private HttpServletResponse response;
+ private SslFilter sslFilter;
+
+ @Before
+ public void before() {
+ request = createNiceMock(HttpServletRequest.class);
+ response = createNiceMock(HttpServletResponse.class);
+ sslFilter = new SslFilter();
+
+ final Map<String,String> headers = new HashMap<String,String>();
+
+ final Capture<String> capturedName = newCapture();
+ final Capture<String> capturedValue = newCapture();
+
+ // mock HttpServletResponse.getHeader
+ expect(response.getHeader(capture(capturedName))).andAnswer(new IAnswer<String>() {
+ @Override
+ public String answer() throws Throwable {
+ String name = capturedName.getValue();
+ return headers.get(name);
+ }
+
+ });
+
+ // mock HttpServletResponse.addHeader
+ response.addHeader(capture(capturedName), capture(capturedValue));
+ expectLastCall().andAnswer(new IAnswer<Void>() {
+ @Override
+ public Void answer() throws Throwable {
+ String name = capturedName.getValue();
+ String value = capturedValue.getValue();
+ headers.put(name, value);
+ return (null);
+ }
+ });
+
+ replay(response);
+ }
@Test
public void testDisabledByDefault() {
- HttpServletRequest request = createNiceMock(HttpServletRequest.class);
- HttpServletResponse response = createNiceMock(HttpServletResponse.class);
-
- SslFilter sslFilter = new SslFilter();
-
sslFilter.postHandle(request, response);
assertNull(response.getHeader(HTTP_HEADER));
}
@Test
public void testDefaultValues() {
- HttpServletRequest request = createNiceMock(HttpServletRequest.class);
- HttpServletResponse response = createNiceMock(HttpServletResponse.class);
-
-// String expected = new StringBuilder()
-// .append(HTTP_HEADER)
-// .append(": ")
-// .append("max-age=")
-// .append(DEFAULT_MAX_AGE)
-// .toString();
-// expect(response.addHeader(expected, expected))
-// .andReturn(expected)
-// .anyTimes();
- replay(response);
-//
- SslFilter sslFilter = new SslFilter();
sslFilter.getHsts().setEnabled(true);
-
sslFilter.postHandle(request, response);
-
- //assertEquals(expected, response.getHeader(HTTP_HEADER));
+ assertEquals("max-age=" + DEFAULT_MAX_AGE, response.getHeader(HTTP_HEADER));
}
+
+ @Test
+ public void testSetProperties() {
+ sslFilter.getHsts().setEnabled(true);
+ sslFilter.getHsts().setMaxAge(7776000);
+ sslFilter.getHsts().setIncludeSubDomains(true);
+ sslFilter.postHandle(request, response);
+
+ String expected = "max-age=" + 7776000 + "; includeSubDomains";
+ assertEquals(expected, response.getHeader(HTTP_HEADER));
+ }
+
}