You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by gk...@apache.org on 2018/05/08 07:41:09 UTC
svn commit: r1831151 - in /turbine/fulcrum/trunk: factory/ json/jackson2/
parser/ parser/src/test/org/apache/fulcrum/parser/ testcontainer/
testcontainer/src/java/org/apache/fulcrum/testcontainer/ upload/
upload/src/test/org/apache/fulcrum/upload/
Author: gk
Date: Tue May 8 07:41:08 2018
New Revision: 1831151
URL: http://svn.apache.org/viewvc?rev=1831151&view=rev
Log:
- Fulcrum factory fix parent pom version
- Fulcrum json jackson2 commons-lang align
- Fulcrum parser and upload JUnit 4
- Fulcrum Testcontainer endow with Mockito (default request mock copied from Turbine test)
- Fulcrum uplad with duplicate mock until not upgraded to testcontainer 1.0.8
Modified:
turbine/fulcrum/trunk/factory/pom.xml
turbine/fulcrum/trunk/json/jackson2/pom.xml
turbine/fulcrum/trunk/parser/pom.xml
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java
turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java
turbine/fulcrum/trunk/testcontainer/pom.xml
turbine/fulcrum/trunk/testcontainer/src/java/org/apache/fulcrum/testcontainer/BaseUnit4Test.java
turbine/fulcrum/trunk/upload/pom.xml
turbine/fulcrum/trunk/upload/src/test/org/apache/fulcrum/upload/UploadServiceTest.java
Modified: turbine/fulcrum/trunk/factory/pom.xml
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/factory/pom.xml?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/factory/pom.xml (original)
+++ turbine/fulcrum/trunk/factory/pom.xml Tue May 8 07:41:08 2018
@@ -19,7 +19,8 @@
<parent>
<artifactId>turbine-parent</artifactId>
<groupId>org.apache.turbine</groupId>
- <version>4-SNAPSHOT</version>
+ <version>4</version>
+ <relativePath></relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
Modified: turbine/fulcrum/trunk/json/jackson2/pom.xml
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/json/jackson2/pom.xml?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/json/jackson2/pom.xml (original)
+++ turbine/fulcrum/trunk/json/jackson2/pom.xml Tue May 8 07:41:08 2018
@@ -63,7 +63,7 @@
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
- <version>2.5</version>
+ <version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.avalon.framework</groupId>
Modified: turbine/fulcrum/trunk/parser/pom.xml
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/pom.xml?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/parser/pom.xml (original)
+++ turbine/fulcrum/trunk/parser/pom.xml Tue May 8 07:41:08 2018
@@ -112,7 +112,7 @@
<dependency>
<groupId>org.apache.fulcrum</groupId>
<artifactId>fulcrum-testcontainer</artifactId>
- <version>1.0.6</version>
+ <version>1.0.7</version>
<scope>test</scope>
</dependency>
<dependency>
Modified: turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java (original)
+++ turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/BaseValueParserTest.java Tue May 8 07:41:08 2018
@@ -1,6 +1,13 @@
package org.apache.fulcrum.parser;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -26,7 +33,10 @@ import java.util.Calendar;
import java.util.Locale;
import org.apache.avalon.framework.component.ComponentException;
-import org.apache.fulcrum.testcontainer.BaseUnitTest;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* Testing of the BaseValueParser class
@@ -34,12 +44,8 @@ import org.apache.fulcrum.testcontainer.
* @author <a href="mailto:quintonm@bellsouth.net">Quinton McCombs</a>
* @version $Id: BaseValueParserTest.java 222043 2004-12-06 17:47:33Z painter $
*/
-public class BaseValueParserTest extends BaseUnitTest
+public class BaseValueParserTest extends BaseUnit4Test
{
- public BaseValueParserTest(String name)
- {
- super(name);
- }
private BaseValueParser parser;
@@ -49,9 +55,9 @@ public class BaseValueParserTest extends
* Performs any initialization that must happen before each test is run.
* @throws Exception
*/
- protected void setUp() throws Exception
+ @Before
+ public void setUp() throws Exception
{
- super.setUp();
try
{
parserService = (ParserService)this.lookup(ParserService.ROLE);
@@ -67,12 +73,13 @@ public class BaseValueParserTest extends
/**
* Clean up after each test is run.
*/
- protected void tearDown()
+ @After
+ public void tearDown()
{
parserService.putParser(parser);
this.release(parserService);
}
-
+ @Test
public void testDate()
{
parser.clear();
@@ -99,7 +106,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong Date value (German)", cal.getTime(), parser.getDate("foo"));
}
-
+ @Test
public void testGetByte()
{
// no param
@@ -120,7 +127,7 @@ public class BaseValueParserTest extends
result = parser.getByte("unparsable");
assertEquals(result, 0);
}
-
+ @Test
public void testGetByteObject()
{
// no param
@@ -141,7 +148,7 @@ public class BaseValueParserTest extends
result = parser.getByteObject("unparsable");
assertNull(result);
}
-
+ @Test
public void testGetInt()
{
// no param
@@ -186,7 +193,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i] );
}
}
-
+ @Test
public void testGetIntObject()
{
// no param
@@ -231,7 +238,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i] );
}
}
-
+ @Test
public void testGetFloat()
{
// no param
@@ -276,7 +283,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i], 0);
}
}
-
+ @Test
public void testGetFloatObject()
{
// no param
@@ -321,7 +328,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i] );
}
}
-
+ @Test
public void testGetDouble()
{
// no param
@@ -366,7 +373,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i], 0);
}
}
-
+ @Test
public void testGetDoubleObject()
{
// no param
@@ -411,7 +418,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i] );
}
}
-
+ @Test
public void testGetLong()
{
// no param
@@ -456,7 +463,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i]);
}
}
-
+ @Test
public void testGetLongObject()
{
// no param
@@ -501,7 +508,7 @@ public class BaseValueParserTest extends
assertEquals(compare2[i], arrayResult2[i] );
}
}
-
+ @Test
public void testGetBoolean()
{
// no param
@@ -532,7 +539,7 @@ public class BaseValueParserTest extends
assertEquals(result, false);
}
-
+ @Test
public void testGetBooleanObject()
{
// no param
@@ -577,12 +584,12 @@ public class BaseValueParserTest extends
result = parser.getBooleanObject("unparsable");
assertNull(result);
}
-
- public void OFFtestGetBigDecimal()
+ @Test
+ public void testGetBigDecimal()
{
// no param
BigDecimal result = parser.getBigDecimal("invalid");
- assertEquals(new BigDecimal(0), result);
+ assertNull(result); // object returns NOT new BigDecimal(0)
// default
result = parser.getBigDecimal("default", new BigDecimal(3));
@@ -596,7 +603,7 @@ public class BaseValueParserTest extends
// unparsable value
parser.add("unparsable", "a");
result = parser.getBigDecimal("unparsable");
- assertEquals(new BigDecimal(0), result);
+ assertNull(result); //assertEquals(new BigDecimal(0), result);
// array
parser.add("array", "1");
@@ -624,7 +631,7 @@ public class BaseValueParserTest extends
}
}
-
+ @Test
public void testGetString()
{
// no param
@@ -657,14 +664,14 @@ public class BaseValueParserTest extends
}
}
-
+ @Test
public void testRecycling() throws Exception {
parser.setCharacterEncoding("fake");
parser.recycle();
assertEquals("US-ASCII",parser.getCharacterEncoding());
}
-
+ @Test
public void testSetup()
{
try
@@ -698,7 +705,7 @@ public class BaseValueParserTest extends
//
// assertEquals("Wrong Character Encoding", encoding, vp.getCharacterEncoding());
// }
-
+ @Test
public void testClear()
{
parser.clear();
@@ -714,6 +721,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong number of keys", 0, parser.keySet().size());
}
+ @Test
public void testDispose()
{
parser.clear();
@@ -730,7 +738,7 @@ public class BaseValueParserTest extends
assertTrue(parser.isDisposed());
}
-
+ @Test
public void testKeyArray()
{
parser.clear();
@@ -784,7 +792,7 @@ public class BaseValueParserTest extends
Double result = parser.getDoubleObject("unparsable2");
assertNull("Double object should be null", result);
}
-
+ @Test
public void testIntAdd()
{
parser.clear();
@@ -811,7 +819,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong Int array value", testValue, intObjs[0].intValue());
}
-
+ @Test
public void testIntegerAdd()
{
parser.clear();
@@ -838,7 +846,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong Int array value", testValue.intValue(), intObjs[0].intValue());
}
-
+ @Test
public void testLongAdd()
{
parser.clear();
@@ -865,7 +873,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong Long array value", testValue, longObjs[0].longValue());
}
-
+ @Test
public void testLongToInt()
{
parser.clear();
@@ -919,7 +927,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong Long array value", testValue, longObjs[0].longValue());
}
-
+ @Test
public void testIntToDouble()
{
parser.clear();
@@ -946,7 +954,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong Double array value", testValue, doubleObjs[0].doubleValue(), 0.001);
}
-
+ @Test
public void testLongToDouble()
{
parser.clear();
@@ -1049,7 +1057,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong Long array value", Long.valueOf(testValue).longValue(), longObjs[0].longValue());
}
-
+ @Test
public void testStringArray()
{
parser.clear();
@@ -1091,7 +1099,7 @@ public class BaseValueParserTest extends
// should append at the end.
assertEquals("Wrong element returned", testValue[0], parser.getString("foo"));
}
-
+ @Test
public void testRemove()
{
parser.clear();
@@ -1118,7 +1126,7 @@ public class BaseValueParserTest extends
// Test removing null value
assertNull(parser.remove(null));
}
-
+ @Test
public void testRemoveArray()
{
parser.clear();
@@ -1152,7 +1160,7 @@ public class BaseValueParserTest extends
assertNull(parser.getString("foo"));
}
-
+ @Test
public void testContainsKey()
{
parser.clear();
@@ -1164,7 +1172,7 @@ public class BaseValueParserTest extends
assertTrue(parser.containsKey("bar"));
assertFalse(parser.containsKey("baz"));
}
-
+ @Test
public void testBooleanObject()
{
parser.clear();
@@ -1205,7 +1213,7 @@ public class BaseValueParserTest extends
assertNull(parser.getBooleanObject("does-not-exist"));
}
-
+ @Test
public void testBoolDefault()
{
parser.clear();
@@ -1224,7 +1232,7 @@ public class BaseValueParserTest extends
assertFalse(parser.getBoolean("does not exist", false));
assertTrue(parser.getBoolean("does not exist", true));
}
-
+ @Test
public void testBooleanDefault()
{
parser.clear();
@@ -1244,7 +1252,7 @@ public class BaseValueParserTest extends
assertNull(parser.getBooleanObject("does not exist", null));
}
-
+ @Test
public void testDoubleArray()
{
parser.clear();
@@ -1312,7 +1320,7 @@ public class BaseValueParserTest extends
// should append at the end.
assertEquals("Wrong element returned", testValue[0], parser.getDouble("foo"), 0.001);
}
-
+ @Test
public void testFloatArray()
{
parser.clear();
@@ -1380,7 +1388,7 @@ public class BaseValueParserTest extends
// should append at the end.
assertEquals("Wrong element returned", testValue[0], parser.getFloat("foo"), 0.001f);
}
-
+ @Test
public void testBigDecimalArray()
{
parser.clear();
@@ -1428,7 +1436,7 @@ public class BaseValueParserTest extends
// should append at the end.
assertEquals("Wrong element returned", testValue[0], parser.getBigDecimal("foo").longValue());
}
-
+ @Test
public void testIntegerArray()
{
parser.clear();
@@ -1496,7 +1504,7 @@ public class BaseValueParserTest extends
// should append at the end.
assertEquals("Wrong element returned", testValue[0], parser.getInt("foo"));
}
-
+ @Test
public void testLongArray()
{
parser.clear();
@@ -1564,7 +1572,7 @@ public class BaseValueParserTest extends
// should append at the end.
assertEquals("Wrong element returned", testValue[0], parser.getLong("foo"));
}
-
+ @Test
public void testByteArray()
throws Exception
{
@@ -1589,7 +1597,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong value", res[i], testByte[0]);
}
}
-
+ @Test
public void testByte()
{
parser.clear();
@@ -1624,7 +1632,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong value", new Byte((byte) 100), parser.getByteObject("foo5"));
}
-
+ @Test
public void testStringDefault()
{
parser.clear();
@@ -1639,7 +1647,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong value found", "baz", parser.getString("does-not-exist", "baz"));
assertNull(parser.getString("does-not-exist", null));
}
-
+ @Test
public void testSetString()
{
parser.clear();
@@ -1671,7 +1679,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong number of values", 1, res.length);
assertEquals("Wrong value found", "xxx", res[0]);
}
-
+ @Test
public void testSetStrings()
{
parser.clear();
@@ -1709,7 +1717,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong value found", newValues[i], res[i]);
}
}
-
+ @Test
public void testSetProperties()
throws Exception
{
@@ -1753,7 +1761,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong number of keys", 1, parser.keySet().size());
}
-
+ @Test
public void testAddNullArrays()
{
String [] res = null;
@@ -1797,7 +1805,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong number of keys", 1, parser.keySet().size());
assertEquals("Wrong number of values", 4, res.length);
}
-
+ @Test
public void testNonExistingResults()
{
parser.clear();
@@ -1846,6 +1854,7 @@ public class BaseValueParserTest extends
assertEquals("Wrong number of keys", 0, parser.keySet().size());
}
+ @Test
public void testBooleanArray() {
String[] booleanString = {"on", "off", "false", "true", " ", "justaword"};
parser.add("foo", booleanString);
@@ -1861,7 +1870,7 @@ public class BaseValueParserTest extends
assertNull(parser.getBooleans("keydontexist"));
}
-
+ @Test
public void testBooleanObjectArray() {
String[] booleanString = {"on", "off", "false", "true", " ", "justaword"};
parser.add("foo", booleanString);
@@ -1877,7 +1886,7 @@ public class BaseValueParserTest extends
assertNull(parser.getBooleanObjects("keydontexist"));
}
-
+ @Test
public void testGet() {
// no param
Modified: turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java (original)
+++ turbine/fulcrum/trunk/parser/src/test/org/apache/fulcrum/parser/ParameterParserTest.java Tue May 8 07:41:08 2018
@@ -1,5 +1,11 @@
package org.apache.fulcrum.parser;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -27,32 +33,24 @@ import org.apache.commons.fileupload.Fil
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.fulcrum.parser.ValueParser.URLCaseFolding;
-import org.apache.fulcrum.testcontainer.BaseUnitTest;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.junit.Before;
+import org.junit.Test;
/**
* Basic test that ParameterParser instantiates.
*
* @author <a href="epugh@opensourceconnections.com">Eric Pugh</a>
* @version $Id$
*/
-public class ParameterParserTest extends BaseUnitTest
+public class ParameterParserTest extends BaseUnit4Test
{
private ParameterParser parameterParser = null;
private ParserService parserService;
- /**
- * Defines the testcase name for JUnit.
- *
- * @param name the testcase's name.
- */
- public ParameterParserTest(String name)
+ @Before
+ public void setUpBefore() throws Exception
{
- super(name);
- }
-
- protected void setUp() throws Exception
- {
- super.setUp();
try
{
parserService = (ParserService)this.lookup(ParserService.ROLE);
@@ -64,25 +62,27 @@ public class ParameterParserTest extends
fail(e.getMessage());
}
}
-
+
+ @Test
public void testConfiguredUrlCaseFolding() throws Exception
{
assertTrue(parameterParser.getUrlFolding() == URLCaseFolding.NONE);
}
-
+ @Test
public void testConfiguredAutomaticUpload() throws Exception {
assertTrue(parserService.getAutomaticUpload());
}
-
+ @Test
public void testConfiguredParameterEncoding() throws Exception {
assertEquals("utf-8", parserService.getParameterEncoding());
}
-
+
/**
* Simple test to verify that URL Case Folding works properly
*
* @throws Exception
*/
+ @Test
public void testRepositoryExists() throws Exception
{
assertEquals("TRIMMED_and_Not_Modified",parameterParser.convertAndTrim(" TRIMMED_and_Not_Modified ", URLCaseFolding.NONE));
@@ -97,6 +97,7 @@ public class ParameterParserTest extends
*
* @throws Exception
*/
+ @Test
public void testAddPathInfo() throws Exception
{
FileItemFactory factory = new DiskFileItemFactory(10240, null);
Modified: turbine/fulcrum/trunk/testcontainer/pom.xml
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/testcontainer/pom.xml?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/testcontainer/pom.xml (original)
+++ turbine/fulcrum/trunk/testcontainer/pom.xml Tue May 8 07:41:08 2018
@@ -70,6 +70,18 @@
<version>1.0.6</version>
<optional>true</optional>
</dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.5</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>2.18.3</version>
+ <scope>test</scope>
+ </dependency>
<!-- Needed if testing with ECM -->
<dependency>
<groupId>org.apache.excalibur.component</groupId>
Modified: turbine/fulcrum/trunk/testcontainer/src/java/org/apache/fulcrum/testcontainer/BaseUnit4Test.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/testcontainer/src/java/org/apache/fulcrum/testcontainer/BaseUnit4Test.java?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/testcontainer/src/java/org/apache/fulcrum/testcontainer/BaseUnit4Test.java (original)
+++ turbine/fulcrum/trunk/testcontainer/src/java/org/apache/fulcrum/testcontainer/BaseUnit4Test.java Tue May 8 07:41:08 2018
@@ -1,5 +1,20 @@
package org.apache.fulcrum.testcontainer;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -21,6 +36,8 @@ package org.apache.fulcrum.testcontainer
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.logger.ConsoleLogger;
import org.junit.After;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
/**
* Alternative Base class to {@link BaseUnitTest} for component tests.
@@ -174,4 +191,79 @@ public class BaseUnit4Test
container.release(component);
}
}
+
+ public Map<String,Object> attributes = new HashMap<String,Object>();
+ public int maxInactiveInterval = 0;
+
+ protected HttpServletRequest getMockRequest()
+ {
+ HttpServletRequest request = mock(HttpServletRequest.class);
+ HttpSession session = mock(HttpSession.class);
+
+ doAnswer(new Answer<Object>()
+ {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable
+ {
+ String key = (String) invocation.getArguments()[0];
+ return attributes.get(key);
+ }
+ }).when(session).getAttribute(anyString());
+
+ doAnswer(new Answer<Object>()
+ {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable
+ {
+ String key = (String) invocation.getArguments()[0];
+ Object value = invocation.getArguments()[1];
+ attributes.put(key, value);
+ return null;
+ }
+ }).when(session).setAttribute(anyString(), any());
+
+ when(session.getMaxInactiveInterval()).thenReturn(maxInactiveInterval);
+
+ doAnswer(new Answer<Integer>()
+ {
+ @Override
+ public Integer answer(InvocationOnMock invocation) throws Throwable
+ {
+ return Integer.valueOf(maxInactiveInterval);
+ }
+ }).when(session).getMaxInactiveInterval();
+
+ doAnswer(new Answer<Object>()
+ {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable
+ {
+ Integer value = (Integer) invocation.getArguments()[0];
+ maxInactiveInterval = value.intValue();
+ return null;
+ }
+ }).when(session).setMaxInactiveInterval(anyInt());
+
+ when(session.isNew()).thenReturn(true);
+ when(request.getSession()).thenReturn(session);
+
+ when(request.getServerName()).thenReturn("bob");
+ when(request.getProtocol()).thenReturn("http");
+ when(request.getScheme()).thenReturn("scheme");
+ when(request.getPathInfo()).thenReturn("damn");
+ when(request.getServletPath()).thenReturn("damn2");
+ when(request.getContextPath()).thenReturn("wow");
+ when(request.getContentType()).thenReturn("html/text");
+
+ when(request.getCharacterEncoding()).thenReturn("US-ASCII");
+ when(request.getServerPort()).thenReturn(8080);
+ when(request.getLocale()).thenReturn(Locale.US);
+
+ when(request.getHeader("Content-type")).thenReturn("html/text");
+ when(request.getHeader("Accept-Language")).thenReturn("en-US");
+
+ Vector<String> v = new Vector<String>();
+ when(request.getParameterNames()).thenReturn(v.elements());
+ return request;
+ }
}
Modified: turbine/fulcrum/trunk/upload/pom.xml
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/upload/pom.xml?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/upload/pom.xml (original)
+++ turbine/fulcrum/trunk/upload/pom.xml Tue May 8 07:41:08 2018
@@ -110,15 +110,32 @@
<version>1.0.7</version>
<scope>test</scope>
</dependency>
+ <!-- remove mockito, if testcontainer upgrading to v1.0.8 -->
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>2.18.3</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
<sourceDirectory>${basedir}/src/java</sourceDirectory>
<testSourceDirectory>${basedir}/src/test</testSourceDirectory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <argLine>-Dfile.encoding=UTF-8</argLine>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
<properties>
<turbine.site.path>fulcrum/fulcrum-upload</turbine.site.path>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
\ No newline at end of file
Modified: turbine/fulcrum/trunk/upload/src/test/org/apache/fulcrum/upload/UploadServiceTest.java
URL: http://svn.apache.org/viewvc/turbine/fulcrum/trunk/upload/src/test/org/apache/fulcrum/upload/UploadServiceTest.java?rev=1831151&r1=1831150&r2=1831151&view=diff
==============================================================================
--- turbine/fulcrum/trunk/upload/src/test/org/apache/fulcrum/upload/UploadServiceTest.java (original)
+++ turbine/fulcrum/trunk/upload/src/test/org/apache/fulcrum/upload/UploadServiceTest.java Tue May 8 07:41:08 2018
@@ -1,5 +1,18 @@
package org.apache.fulcrum.upload;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.ByteArrayInputStream;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -21,32 +34,39 @@ package org.apache.fulcrum.upload;
import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
import org.apache.avalon.framework.component.ComponentException;
-import org.apache.fulcrum.testcontainer.BaseUnitTest;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemIterator;
+import org.apache.fulcrum.testcontainer.BaseUnit4Test;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
/**
* UploadServiceTest
*
* @author <a href="epugh@upstate.com">Eric Pugh</a>
* @version $Id$
*/
-public class UploadServiceTest extends BaseUnitTest
+public class UploadServiceTest extends BaseUnit4Test
{
private UploadService uploadService = null;
- /**
- * Defines the testcase name for JUnit.
- *
- * @param name the testcase's name.
- */
- public UploadServiceTest(String name)
- {
- super(name);
- }
- protected void setUp() throws Exception
+ @Before
+ public void setUp() throws Exception
{
- super.setUp();
try
{
uploadService = (UploadService) this.lookup(UploadService.ROLE);
@@ -61,10 +81,132 @@ public class UploadServiceTest extends B
* Simple test that verify an object can be created and deleted.
* @throws Exception
*/
+ @Test
public void testRepositoryExists() throws Exception
{
File f = new File(uploadService.getRepository());
assertTrue(f.exists());
+ }
+
+ // This is Apache Commons, but we want to make be really sure it runs clean in Fulcrum
+ @Test
+ public void testUploadEncoding() throws Exception {
+ HttpServletRequest request = getMockRequest();
+ when(request.getContentType()).thenReturn("multipart/form-data; boundary=boundary");
+ when(request.getContentLength()).thenReturn(-1);// -1
+ when(request.getMethod()).thenReturn("post");
+ String testData= "Ãberfülle=\r\nf";
+ //override default settings
+ requestFormData( request, testData );
+ assertTrue(uploadService.isMultipart( request ));
+ List<FileItem> fil = uploadService.parseRequest( request );
+ assertNotNull(fil);
+ assertTrue( fil.size() >0);
+ FileItem fi = fil.get( 0 );
+ System.out.println( fi.getString() );
+ assertEquals(15,fi.getSize());
+ // default is ISO-8859-1
+ assertTrue("data string:'" +fi.getString("UTF-8") +"' not as expected", fi.getString("UTF-8").startsWith( "Ãberfülle" ));
+
+ //reset inputstream
+ requestFormData( request, testData);
+ FileItemIterator fii = uploadService.getItemIterator( request );
+ assertNotNull(fii);
+ assertTrue( fii.hasNext());
+ assertNotNull(fii.next());
+ }
+
+ private void requestFormData( HttpServletRequest request, String data)
+ throws IOException
+ {
+ String example ="--boundary\r\n"
+ + "Content-Disposition: form-data; name=\"uploadedfile\"; filename=\"12345678.txt\"\r\n"
+ + "Content-Type: text/plain\r\n"
+// + "Content-Transfer-Encoding: UTF-8\r\n"
+ + "\r\n"
+ + data
+ + "\r\n--boundary--\r\n";
+ final ByteArrayInputStream is = new ByteArrayInputStream (example.getBytes());// "UTF-8"
+ when(request.getInputStream()).thenReturn(new ServletInputStream() {
+ @Override
+ public int read() throws IOException {
+ return is.read();
+ }
+ });
+ }
+
+ protected Map<String,Object> attributes = new HashMap<String,Object>();
+ protected int maxInactiveInterval = 0;
+ // from Turbine org.apache.turbine.test.BaseTestCase, should be later in Fulcrum Testcontainer BaseUnit4Test
+ protected HttpServletRequest getMockRequest()
+ {
+ HttpServletRequest request = mock(HttpServletRequest.class);
+ HttpSession session = mock(HttpSession.class);
+
+ doAnswer(new Answer<Object>()
+ {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable
+ {
+ String key = (String) invocation.getArguments()[0];
+ return attributes.get(key);
+ }
+ }).when(session).getAttribute(anyString());
+
+ doAnswer(new Answer<Object>()
+ {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable
+ {
+ String key = (String) invocation.getArguments()[0];
+ Object value = invocation.getArguments()[1];
+ attributes.put(key, value);
+ return null;
+ }
+ }).when(session).setAttribute(anyString(), any());
+
+ when(session.getMaxInactiveInterval()).thenReturn(maxInactiveInterval);
+ doAnswer(new Answer<Integer>()
+ {
+ @Override
+ public Integer answer(InvocationOnMock invocation) throws Throwable
+ {
+ return Integer.valueOf(maxInactiveInterval);
+ }
+ }).when(session).getMaxInactiveInterval();
+
+ doAnswer(new Answer<Object>()
+ {
+ @Override
+ public Object answer(InvocationOnMock invocation) throws Throwable
+ {
+ Integer value = (Integer) invocation.getArguments()[0];
+ maxInactiveInterval = value.intValue();
+ return null;
+ }
+ }).when(session).setMaxInactiveInterval(anyInt());
+
+ when(session.isNew()).thenReturn(true);
+ when(request.getSession()).thenReturn(session);
+
+ when(request.getServerName()).thenReturn("bob");
+ when(request.getProtocol()).thenReturn("http");
+ when(request.getScheme()).thenReturn("scheme");
+ when(request.getPathInfo()).thenReturn("damn");
+ when(request.getServletPath()).thenReturn("damn2");
+ when(request.getContextPath()).thenReturn("wow");
+ when(request.getContentType()).thenReturn("html/text");
+
+ when(request.getCharacterEncoding()).thenReturn("US-ASCII");
+ when(request.getServerPort()).thenReturn(8080);
+ when(request.getLocale()).thenReturn(Locale.US);
+
+ when(request.getHeader("Content-type")).thenReturn("html/text");
+ when(request.getHeader("Accept-Language")).thenReturn("en-US");
+
+ Vector<String> v = new Vector<String>();
+ when(request.getParameterNames()).thenReturn(v.elements());
+ return request;
}
}