You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by pa...@apache.org on 2019/01/17 13:19:53 UTC
svn commit: r1851528 - in /turbine/fulcrum/trunk/parser/src:
java/org/apache/fulcrum/parser/DefaultCookieParser.java
test/org/apache/fulcrum/parser/CookieParserTest.java
Author: painter
Date: Thu Jan 17 13:19:52 2019
New Revision: 1851528
URL: http://svn.apache.org/viewvc?rev=1851528&view=rev
Log:
Add unit tests for CookieParser
Added:
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/CookieParserTest.java
Modified:
turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java
Modified: turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java?rev=1851528&r1=1851527&r2=1851528&view=diff
==============================================================================
--- turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java (original)
+++ turbine/fulcrum/trunk/parser/src/java/org/apache/fulcrum/parser/DefaultCookieParser.java Thu Jan 17 13:19:52 2019
@@ -107,14 +107,17 @@ public class DefaultCookieParser
setCharacterEncoding(enc != null ? enc : "US-ASCII");
Cookie[] cookies = request.getCookies();
- getLogger().debug ("Number of Cookies "+cookies.length);
-
- for (Cookie cookie : cookies)
+ if ( cookies != null )
{
- String name = convert(cookie.getName());
- String value = cookie.getValue();
- getLogger().debug ("Adding " + name + "=" + value);
- add(name, value);
+ getLogger().debug ("Number of Cookies "+cookies.length);
+
+ for (Cookie cookie : cookies)
+ {
+ String name = convert(cookie.getName());
+ String value = cookie.getValue();
+ getLogger().debug ("Adding " + name + "=" + value);
+ add(name, value);
+ }
}
this.request = request;
@@ -127,14 +130,16 @@ public class DefaultCookieParser
*/
public void set (String name, String value)
{
- set (name, value, AGE_SESSION);
+ set(name, value, AGE_SESSION);
}
- /**
- * Set a persisten cookie on the client that will expire
+ /* (non-Javadoc)
+ * @see org.apache.fulcrum.parser.CookieParser#set(java.lang.String, java.lang.String, int)
+ *
+ * Set a persistent cookie on the client that will expire
* after a maximum age (given in seconds).
*/
- public void set (String name, String value, int seconds_age)
+ public void set(String name, String value, int seconds_age)
{
if (response == null)
{
@@ -146,18 +151,29 @@ public class DefaultCookieParser
cookie.setPath(request.getServletPath());
response.addCookie(cookie);
}
+
- /**
+ /* (non-Javadoc)
+ * @see org.apache.fulcrum.parser.CookieParser#unset(java.lang.String)
+ *
* Remove a previously set cookie from the client machine.
+ *
*/
- public void unset (String name)
+ public void unset(String name)
{
- set (name, " ", AGE_DELETE);
+ set(name, " ", AGE_DELETE);
}
+ /* (non-Javadoc)
+ * @see org.apache.fulcrum.parser.BaseValueParser#isValid()
+ */
public boolean isValid()
{
- return true;
+ if ( this.request == null )
+ {
+ return true;
+ }
+ return false;
}
}
Added: turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/CookieParserTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/CookieParserTest.java?rev=1851528&view=auto
==============================================================================
--- turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/CookieParserTest.java (added)
+++ turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/CookieParserTest.java Thu Jan 17 13:19:52 2019
@@ -0,0 +1,107 @@
+package org.apache.fulcrum.parser;
+
+/*
+ * 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.
+ */
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.Mockito.mock;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.avalon.framework.component.ComponentException;
+import org.apache.fulcrum.testcontainer.BaseUnit5Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+
+
+/**
+ * Test the DefaultCookieParser class. Since CookieParser
+ * extends ValueParser, we only need to add test cases to insure
+ * that the CookieParser can be loaded and test setting and un-setting cookies
+ *
+ * @author <a href="mailto:painter@apache.org">Jeffery Painter</a>
+ * @version $Id: CookieParserTest.java 222043 2019-01-17 08:17:33Z painter $
+ */
+public class CookieParserTest extends BaseUnit5Test
+{
+
+ private DefaultCookieParser parser;
+ private ParserService parserService;
+
+ /**
+ * Performs any initialization that must happen before each test is run.
+ * @throws Exception if parser service not found
+ */
+ @BeforeEach
+ public void setUp() throws Exception
+ {
+ try
+ {
+ parserService = (ParserService) this.lookup(ParserService.ROLE);
+ parser = parserService.getParser(DefaultCookieParser.class);
+
+ // Populate parser with mock servlet data
+ HttpServletRequest request = getMockRequest();
+ HttpServletResponse response = mock(HttpServletResponse.class);
+ parser.setData(request, response);
+ }
+ catch (ComponentException e)
+ {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ }
+
+ /**
+ * Clean up after each test is run.
+ */
+ @AfterEach
+ public void tearDown()
+ {
+ parserService.putParser(parser);
+ this.release(parserService);
+ }
+
+ /**
+ * The API allows us to add a cookie to the response
+ * but we cannot read it back unless the request is dispatched
+ *
+ * Test set and unset of cookie
+ */
+ @Test
+ public void testCookieOperations()
+ {
+ try
+ {
+ // set a cookie
+ parser.set("cookie1", "test");
+
+ // unset a cookie
+ parser.unset("cookie1");
+
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ }
+
+}