View Javadoc

1   package com.atlassian.plugins.rest.common.multipart.fileupload;
2   
3   import com.atlassian.plugins.rest.common.multipart.UnsupportedFileNameEncodingException;
4   
5   import org.apache.commons.fileupload.FileItem;
6   import org.junit.Before;
7   import org.junit.Test;
8   
9   import static org.junit.Assert.assertEquals;
10  import static org.junit.Assert.assertNull;
11  import static org.mockito.Mockito.mock;
12  import static org.mockito.Mockito.when;
13  
14  public class CommonsFileUploadFilePartTest
15  {
16      private FileItem fileItem;
17  
18      @Before
19      public void setUp() 
20      {
21          fileItem = mock(FileItem.class);        
22      }
23      
24      @Test
25      public void fileItemWithNullFileNameShouldSimplyReturnNull() 
26      {
27          CommonsFileUploadFilePart filePart = new CommonsFileUploadFilePart(fileItem);
28          assertNull(filePart.getName());
29      }
30      
31      @Test
32      public void fileItemWithASCIIFileNameShouldReturnASCIIValue() 
33      {
34          when(fileItem.getName()).thenReturn("normalchars");
35          CommonsFileUploadFilePart filePart = new CommonsFileUploadFilePart(fileItem);
36          assertEquals("normalchars", filePart.getName());
37      }
38      
39      @Test
40      public void fileItemWithEncodedUTF8FileNameShouldReturnUTF8Value() 
41      {
42          when(fileItem.getName()).thenReturn("=?utf-8?B?0YLQtdGB0YI=?=");
43          CommonsFileUploadFilePart filePart = new CommonsFileUploadFilePart(fileItem);
44          assertEquals("тест", filePart.getName());
45      }
46      
47      @Test
48      public void fileItemWithUnencodedUTF8FileNameShouldReturnUTF8Value() 
49      {
50          when(fileItem.getName()).thenReturn("тест");
51          CommonsFileUploadFilePart filePart = new CommonsFileUploadFilePart(fileItem);
52          assertEquals("тест", filePart.getName());
53      }
54      
55      @Test(expected = UnsupportedFileNameEncodingException.class)
56      public void fileItemNamedWithUnsupportedCharacterEncodingShouldThrowException() 
57      {
58          when(fileItem.getName()).thenReturn("=?utf-unknown?B?unknown?=");
59          new CommonsFileUploadFilePart(fileItem);
60      }
61  }