package no.dusken.aranea.control; import no.dusken.common.exception.PageNotFoundException; import org.junit.Before; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.web.servlet.ModelAndView; import java.io.File; import java.io.IOException; import static junit.framework.Assert.assertTrue; /** * @author Marvin B. Lillehaug <lillehau@underdusken.no> */ public class TestFileController { private FileController fileController; private String resourceDir = "src/test/resources/images/"; @Before public void setUp() throws IOException { fileController = new FileController(); fileController.setResourceDir(new File(resourceDir)); } @Test public void getExistingFileInResourceDir() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); request.addParameter("path", "testImage.jpg"); assertTrue("testImage.jpg has been removed", (new File(resourceDir, "testImage.jpg")).exists()); ModelAndView mav = fileController.handleRequestInternal(request, response); assertTrue(((File)mav.getModel().get("file")).exists()); } @Test(expected = PageNotFoundException.class) public void getGetNonExistingFileInResourceDir() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); request.addParameter("path", "testImageNotThere.jpg"); assertTrue("a file that should not exists, exists", !(new File(resourceDir, "testImageNotThere.jpg")).exists()); ModelAndView mav = fileController.handleRequestInternal(request, response); assertTrue(!((File)mav.getModel().get("file")).exists()); } @Test(expected = PageNotFoundException.class) public void getExistingFileOutsideResourceDir() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); request.addParameter("path", ".." + File.separator + "testFile"); assertTrue("testFile has been deleted", (new File("src/test/resources/", "testFile")).exists()); ModelAndView mav = fileController.handleRequestInternal(request, response); assertTrue(((File)mav.getModel().get("file")).exists()); } @Test(expected = PageNotFoundException.class) public void getDirectory() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); request.addParameter("path", "."); assertTrue("The resourcedir does not exist", (new File(resourceDir)).exists()); ModelAndView mav = fileController.handleRequestInternal(request, response); assertTrue(((File)mav.getModel().get("file")).exists()); } @Test public void testFileCompareTo(){ File file = new File(resourceDir); File middlefile = new File(file, "middleFile"); File lastFile = new File(middlefile, "lastFile"); assertTrue("file is not lower than middlefile", file.compareTo(middlefile) < 0); assertTrue("middle is not middlefile", middlefile.compareTo(middlefile) == 0); assertTrue("file is not lower than lastfile", file.compareTo(lastFile) < 0); assertTrue("lastfile is not higher than file", lastFile.compareTo(file) > 0); } }