/** Test utility to determine whether the list of files contains a file with given name. */ private boolean containsFileWithName(Collection<MediaFile> files, String name) { for (MediaFile file : files) { if (name.equals(file.getName())) { return true; } } return false; }
/** Test moving files across directories. */ public void testMoveDirectoryContents() throws Exception { User testUser = null; Weblog testWeblog = null; testUser = TestUtils.setupUser("mediaFileTestUser11"); testWeblog = TestUtils.setupWeblog("mediaFileTestUser11", testUser); MediaFileManager mfMgr = WebloggerFactory.getWeblogger().getMediaFileManager(); // no need to create root directory, that is done automatically now MediaFileDirectory rootDirectory = mfMgr.getMediaFileRootDirectory(testWeblog); try { // MediaFileDirectory rootDirectory = new MediaFileDirectory(null, "root", "root d", // testWeblog); mfMgr.createMediaFileDirectory(rootDirectory); MediaFileDirectory directory1 = new MediaFileDirectory(rootDirectory, "dir1", "directory 1", testWeblog); mfMgr.createMediaFileDirectory(directory1); rootDirectory.getChildDirectories().add(directory1); String dir1Id = directory1.getId(); MediaFileDirectory directory2 = new MediaFileDirectory(rootDirectory, "dir2", "directory 2", testWeblog); mfMgr.createMediaFileDirectory(directory2); rootDirectory.getChildDirectories().add(directory2); MediaFileDirectory directory3 = new MediaFileDirectory(rootDirectory, "dir3", "directory 3", testWeblog); mfMgr.createMediaFileDirectory(directory3); rootDirectory.getChildDirectories().add(directory3); MediaFile mediaFile = new MediaFile(); mediaFile.setDirectory(rootDirectory); rootDirectory.getMediaFiles().add(mediaFile); mediaFile.setWeblog(testWeblog); mediaFile.setName("test7_1.jpg"); mediaFile.setDescription("This is a test image 7.1"); mediaFile.setCopyrightText("test 7.1 copyright text"); mediaFile.setSharedForGallery(false); mediaFile.setLength(4000); mediaFile.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mediaFile.setContentType("image/jpeg"); mfMgr.createMediaFile(testWeblog, mediaFile, new RollerMessages()); MediaFile mediaFile2 = new MediaFile(); mediaFile2.setDirectory(rootDirectory); rootDirectory.getMediaFiles().add(mediaFile2); mediaFile2.setWeblog(testWeblog); mediaFile2.setName("test7_2.jpg"); mediaFile2.setDescription("This is a test image 7.2"); mediaFile2.setCopyrightText("test 7.2 copyright text"); mediaFile2.setSharedForGallery(true); mediaFile2.setLength(4000); mediaFile2.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mediaFile2.setContentType("image/jpeg"); mfMgr.createMediaFile(testWeblog, mediaFile2, new RollerMessages()); TestUtils.endSession(true); testWeblog = TestUtils.getManagedWebsite(testWeblog); rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); Set<MediaFile> mediaFiles = rootDirectory.getMediaFiles(); assertEquals(2, mediaFiles.size()); assertTrue(containsFileWithName(mediaFiles, "test7_1.jpg")); assertTrue(containsFileWithName(mediaFiles, "test7_2.jpg")); MediaFileDirectory targetDirectory = mfMgr.getMediaFileDirectory(dir1Id); mfMgr.moveMediaFiles(mediaFiles, targetDirectory); TestUtils.endSession(true); rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); targetDirectory = mfMgr.getMediaFileDirectory(dir1Id); mediaFiles = targetDirectory.getMediaFiles(); assertEquals(2, mediaFiles.size()); assertTrue(containsFileWithName(mediaFiles, "test7_1.jpg")); assertTrue(containsFileWithName(mediaFiles, "test7_2.jpg")); mediaFiles = rootDirectory.getMediaFiles(); assertEquals(0, mediaFiles.size()); } finally { TestUtils.endSession(true); TestUtils.teardownWeblog(testWeblog.getId()); TestUtils.teardownUser(testUser.getUserName()); } }
/** Test media file update */ public void testUpdateMediaFile() throws Exception { User testUser = null; Weblog testWeblog = null; testUser = TestUtils.setupUser("mediaFileTestUser5"); testWeblog = TestUtils.setupWeblog("mediaFileTestWeblog5", testUser); MediaFileManager mfMgr = WebloggerFactory.getWeblogger().getMediaFileManager(); // no need to create root directory, that is done automatically now MediaFileDirectory rootDirectory = mfMgr.getMediaFileRootDirectory(testWeblog); // MediaFileDirectory rootDirectory = new MediaFileDirectory(null, "root", "root d", // testWeblog); // mfMgr.createMediaFileDirectory(rootDirectory); TestUtils.endSession(true); testWeblog = TestUtils.getManagedWebsite(testWeblog); rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); MediaFile mediaFile = new MediaFile(); mediaFile.setName("test5.jpg"); mediaFile.setDescription("This is a test image 5"); mediaFile.setCopyrightText("test 5 copyright text"); mediaFile.setSharedForGallery(false); mediaFile.setLength(3000); mediaFile.setDirectory(rootDirectory); mediaFile.setWeblog(testWeblog); mediaFile.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mediaFile.setContentType("image/jpeg"); rootDirectory.getMediaFiles().add(mediaFile); MediaFileTag tag1 = new MediaFileTag("tst5work", mediaFile); MediaFileTag tag2 = new MediaFileTag("tst5home", mediaFile); Set<MediaFileTag> tags = new HashSet<MediaFileTag>(); tags.add(tag1); tags.add(tag2); mediaFile.setTags(tags); mfMgr.createMediaFile(testWeblog, mediaFile, new RollerMessages()); String id = mediaFile.getId(); TestUtils.endSession(true); assertNotNull(id); assertNotNull(id.length() > 0); testWeblog = TestUtils.getManagedWebsite(testWeblog); MediaFile mediaFile1 = mfMgr.getMediaFile(id); mediaFile1.setWeblog(testWeblog); mediaFile1.setName("updated.gif"); mediaFile1.setDescription("updated desc"); mediaFile1.setCopyrightText("updated copyright"); mediaFile1.setContentType("image/gif"); mediaFile1.setSharedForGallery(true); mfMgr.updateMediaFile(testWeblog, mediaFile1); TestUtils.endSession(true); MediaFile mediaFile2 = mfMgr.getMediaFile(id); assertEquals("updated.gif", mediaFile2.getName()); assertEquals("updated desc", mediaFile2.getDescription()); assertEquals("updated copyright", mediaFile2.getCopyrightText()); assertEquals("image/gif", mediaFile2.getContentType()); assertTrue(mediaFile2.isSharedForGallery()); assertNotNull(mediaFile2.getTags()); assertEquals(2, mediaFile2.getTags().size()); TestUtils.endSession(true); TestUtils.teardownWeblog(testWeblog.getId()); TestUtils.teardownUser(testUser.getUserName()); }
/** Test searching media file with paging logic. */ public void testSearchMediaFileOrderBy() throws Exception { User testUser = null; Weblog testWeblog = null; testUser = TestUtils.setupUser("mediaFileTestUser10"); testWeblog = TestUtils.setupWeblog("mediaFileTestWeblog10", testUser); MediaFileManager mfMgr = WebloggerFactory.getWeblogger().getMediaFileManager(); // no need to create root directory, that is done automatically now MediaFileDirectory rootDirectory = mfMgr.getMediaFileRootDirectory(testWeblog); // MediaFileDirectory rootDirectory = new MediaFileDirectory(null, "root", "root d", // testWeblog); // mfMgr.createMediaFileDirectory(rootDirectory); TestUtils.endSession(true); testWeblog = TestUtils.getManagedWebsite(testWeblog); rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); String[] contentTypes = {"image/gif", "image/jpeg", "image/bmp"}; for (int i = 0; i < 3; i++) { MediaFile mediaFile = new MediaFile(); mediaFile.setName("test_file<index>.jpg".replace("<index>", i + "")); mediaFile.setDescription("This is a test image"); mediaFile.setCopyrightText("test copyright text"); mediaFile.setSharedForGallery(true); mediaFile.setLength(2000); mediaFile.setDirectory(rootDirectory); mediaFile.setWeblog(testWeblog); mediaFile.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mediaFile.setContentType(contentTypes[i]); rootDirectory.getMediaFiles().add(mediaFile); mfMgr.createMediaFile(testWeblog, mediaFile, new RollerMessages()); assertNotNull(mediaFile.getId()); assertNotNull(mediaFile.getId().length() > 0); } TestUtils.endSession(true); testWeblog = TestUtils.getManagedWebsite(testWeblog); MediaFileFilter filter1 = new MediaFileFilter(); filter1.setSize(1000); filter1.setSizeFilterType(SizeFilterType.GT); filter1.setOrder(MediaFileOrder.NAME); List<MediaFile> searchResults1 = mfMgr.searchMediaFiles(testWeblog, filter1); assertFalse(searchResults1.isEmpty()); assertEquals(3, searchResults1.size()); assertEquals("test_file0.jpg", searchResults1.get(0).getName()); assertEquals("test_file1.jpg", searchResults1.get(1).getName()); assertEquals("test_file2.jpg", searchResults1.get(2).getName()); MediaFileFilter filter2 = new MediaFileFilter(); filter2.setSize(1000); filter2.setSizeFilterType(SizeFilterType.GT); filter2.setOrder(MediaFileOrder.TYPE); List<MediaFile> searchResults2 = mfMgr.searchMediaFiles(testWeblog, filter2); assertFalse(searchResults2.isEmpty()); assertEquals(3, searchResults2.size()); assertEquals("test_file2.jpg", searchResults2.get(0).getName()); assertEquals("test_file0.jpg", searchResults2.get(1).getName()); assertEquals("test_file1.jpg", searchResults2.get(2).getName()); MediaFileFilter filter3 = new MediaFileFilter(); filter3.setSize(1000); filter3.setSizeFilterType(SizeFilterType.GT); filter3.setOrder(MediaFileOrder.DATE_UPLOADED); List<MediaFile> searchResults3 = mfMgr.searchMediaFiles(testWeblog, filter3); assertFalse(searchResults3.isEmpty()); assertEquals(3, searchResults3.size()); assertEquals("test_file0.jpg", searchResults3.get(0).getName()); assertEquals("test_file1.jpg", searchResults3.get(1).getName()); assertEquals("test_file2.jpg", searchResults3.get(2).getName()); TestUtils.endSession(true); TestUtils.teardownWeblog(testWeblog.getId()); TestUtils.teardownUser(testUser.getUserName()); }
/** Test searching media file with paging logic. */ public void testSearchMediaFilePaging() throws Exception { User testUser = null; Weblog testWeblog = null; testUser = TestUtils.setupUser("mediaFileTestUser9"); testWeblog = TestUtils.setupWeblog("mediaFileTestWeblog9", testUser); try { MediaFileManager mfMgr = WebloggerFactory.getWeblogger().getMediaFileManager(); // no need to create root directory, that is done automatically now MediaFileDirectory rootDirectory = mfMgr.getMediaFileRootDirectory(testWeblog); // MediaFileDirectory rootDirectory = new MediaFileDirectory(null, "root", "root d", // testWeblog); // mfMgr.createMediaFileDirectory(rootDirectory); // TestUtils.endSession(true); for (int i = 0; i < 15; i++) { rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); testWeblog = TestUtils.getManagedWebsite(testWeblog); MediaFile mediaFile = new MediaFile(); mediaFile.setName("test_file<index>.jpg".replace("<index>", i + "")); mediaFile.setDescription("This is a test image"); mediaFile.setCopyrightText("test copyright text"); mediaFile.setSharedForGallery(true); mediaFile.setLength(2000); mediaFile.setWeblog(testWeblog); mediaFile.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mediaFile.setContentType("image/jpeg"); mfMgr.createMediaFile(testWeblog, mediaFile, new RollerMessages()); rootDirectory.getMediaFiles().add(mediaFile); mediaFile.setDirectory(rootDirectory); assertNotNull(mediaFile.getId()); assertNotNull(mediaFile.getId().length() > 0); TestUtils.endSession(true); } testWeblog = TestUtils.getManagedWebsite(testWeblog); MediaFileFilter filter1 = new MediaFileFilter(); filter1.setSize(1000); filter1.setSizeFilterType(SizeFilterType.GT); List<MediaFile> searchResults1 = mfMgr.searchMediaFiles(testWeblog, filter1); assertFalse(searchResults1.isEmpty()); assertEquals(15, searchResults1.size()); MediaFileFilter filter2 = new MediaFileFilter(); filter2.setSize(1000); filter2.setSizeFilterType(SizeFilterType.GT); filter2.setStartIndex(5); filter2.setLength(3); List<MediaFile> searchResults2 = mfMgr.searchMediaFiles(testWeblog, filter2); assertFalse(searchResults2.isEmpty()); assertEquals(3, searchResults2.size()); assertEquals("test_file13.jpg", searchResults2.get(0).getName()); MediaFileFilter filter3 = new MediaFileFilter(); filter3.setSize(1000); filter3.setSizeFilterType(SizeFilterType.GT); filter3.setStartIndex(13); filter3.setLength(6); List<MediaFile> searchResults3 = mfMgr.searchMediaFiles(testWeblog, filter3); assertFalse(searchResults3.isEmpty()); assertEquals(2, searchResults3.size()); assertEquals("test_file8.jpg", searchResults3.get(0).getName()); MediaFileFilter filter4 = new MediaFileFilter(); filter4.setSize(1000); filter4.setSizeFilterType(SizeFilterType.GT); filter4.setStartIndex(14); filter4.setLength(1); List<MediaFile> searchResults4 = mfMgr.searchMediaFiles(testWeblog, filter4); assertFalse(searchResults4.isEmpty()); assertEquals(1, searchResults4.size()); assertEquals("test_file9.jpg", searchResults4.get(0).getName()); TestUtils.endSession(true); } finally { TestUtils.teardownWeblog(testWeblog.getId()); TestUtils.teardownUser(testUser.getUserName()); } }
/** Test searching media file. */ public void testSearchMediaFile() throws Exception { User testUser = null; Weblog testWeblog = null; testUser = TestUtils.setupUser("mediaFileTestUser7"); testWeblog = TestUtils.setupWeblog("mediaFileTestWeblog7", testUser); MediaFileManager mfMgr = WebloggerFactory.getWeblogger().getMediaFileManager(); testWeblog = TestUtils.getManagedWebsite(testWeblog); MediaFileDirectory rootDirectory = mfMgr.getMediaFileRootDirectory(testWeblog); try { String id1 = null; { MediaFile mf = new MediaFile(); mf.setName("test_work.jpg"); mf.setDescription("This is a test image"); mf.setCopyrightText("test copyright text"); mf.setSharedForGallery(true); mf.setLength(2000); mf.setDirectory(rootDirectory); mf.setWeblog(testWeblog); mf.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mf.setContentType("image/jpeg"); rootDirectory.getMediaFiles().add(mf); mfMgr.createMediaFile(testWeblog, mf, new RollerMessages()); MediaFileTag tag = new MediaFileTag("work", mf); Set<MediaFileTag> tags = new HashSet<MediaFileTag>(); tags.add(tag); mf.setTags(tags); mfMgr.updateMediaFile(testWeblog, mf); mfMgr.createMediaFile(testWeblog, mf, new RollerMessages()); TestUtils.endSession(true); id1 = mf.getId(); assertNotNull(mf.getId()); assertNotNull(mf.getId().length() > 0); } String id2 = null; { testWeblog = TestUtils.getManagedWebsite(testWeblog); rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); MediaFile mf = new MediaFile(); mf = new MediaFile(); mf.setName("test_home.jpg"); mf.setDescription("This is a test image"); mf.setCopyrightText("test copyright text"); mf.setSharedForGallery(true); mf.setLength(3000); mf.setDirectory(rootDirectory); mf.setWeblog(testWeblog); mf.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mf.setContentType("image/jpeg"); rootDirectory.getMediaFiles().add(mf); mfMgr.createMediaFile(testWeblog, mf, new RollerMessages()); MediaFileTag tag = new MediaFileTag("home", mf); Set<MediaFileTag> tags = new HashSet<MediaFileTag>(); tags.add(tag); mf.setTags(tags); mfMgr.updateMediaFile(testWeblog, mf); TestUtils.endSession(true); id2 = mf.getId(); assertNotNull(mf.getId()); assertNotNull(mf.getId().length() > 0); } String id3 = null; { testWeblog = TestUtils.getManagedWebsite(testWeblog); rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); MediaFile mf = new MediaFile(); mf = new MediaFile(); mf.setName("test_pers.jpg"); mf.setDescription("This is a personal test image"); mf.setCopyrightText("test pers copyright text"); mf.setSharedForGallery(true); mf.setLength(4000); mf.setWeblog(testWeblog); mf.setDirectory(rootDirectory); mf.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); mf.setContentType("image/jpeg"); rootDirectory.getMediaFiles().add(mf); mfMgr.createMediaFile(testWeblog, mf, new RollerMessages()); MediaFileTag tag = new MediaFileTag("home", mf); Set<MediaFileTag> tags = new HashSet<MediaFileTag>(); tags.add(tag); mf.setTags(tags); mfMgr.updateMediaFile(testWeblog, mf); TestUtils.endSession(true); id3 = mf.getId(); assertNotNull(mf.getId()); assertNotNull(mf.getId().length() > 0); } testWeblog = TestUtils.getManagedWebsite(testWeblog); List<MediaFile> searchResults; // search by name MediaFileFilter filter1 = new MediaFileFilter(); filter1.setName("mytest.jpg"); searchResults = mfMgr.searchMediaFiles(testWeblog, filter1); assertTrue(searchResults.isEmpty()); MediaFileFilter filter2 = new MediaFileFilter(); filter2.setName("test_home.jpg"); searchResults = mfMgr.searchMediaFiles(testWeblog, filter2); assertFalse(searchResults.isEmpty()); assertEquals(id2, ((MediaFile) searchResults.get(0)).getId()); assertNotNull(((MediaFile) searchResults.get(0)).getDirectory()); assertEquals("/", ((MediaFile) searchResults.get(0)).getDirectory().getPath()); MediaFileFilter filter3 = new MediaFileFilter(); filter3.setName("test_work.jpg"); searchResults = mfMgr.searchMediaFiles(testWeblog, filter3); assertFalse(searchResults.isEmpty()); assertEquals(id1, ((MediaFile) searchResults.get(0)).getId()); // search by tag // must be tickling an OpenJPA bug. this tag query works the // first time and then fails the second time it is run // MediaFileFilter filter5 = new MediaFileFilter(); // filter5.setTags(Arrays.asList("home")); // searchResults = mfMgr.searchMediaFiles(testWeblog, filter5); // assertFalse(searchResults.isEmpty()); // assertEquals(2, searchResults.size()); // // MediaFileFilter filter51 = new MediaFileFilter(); // filter51.setTags(Arrays.asList("home")); // searchResults = mfMgr.searchMediaFiles(testWeblog, filter51); // assertFalse(searchResults.isEmpty()); // assertEquals(2, searchResults.size()); MediaFileFilter filter4 = new MediaFileFilter(); filter4.setTags(Arrays.asList("work")); searchResults = mfMgr.searchMediaFiles(testWeblog, filter4); assertFalse(searchResults.isEmpty()); assertEquals(1, searchResults.size()); assertEquals("test_work.jpg", ((MediaFile) searchResults.get(0)).getName()); // search by size MediaFileFilter filter6 = new MediaFileFilter(); filter6.setSize(3000); filter6.setSizeFilterType(MediaFileFilter.SizeFilterType.LT); searchResults = mfMgr.searchMediaFiles(testWeblog, filter6); assertFalse(searchResults.isEmpty()); assertEquals(1, searchResults.size()); assertEquals("test_work.jpg", ((MediaFile) searchResults.get(0)).getName()); MediaFileFilter filter7 = new MediaFileFilter(); filter7.setSize(3000); filter7.setSizeFilterType(MediaFileFilter.SizeFilterType.EQ); searchResults = mfMgr.searchMediaFiles(testWeblog, filter7); assertFalse(searchResults.isEmpty()); assertEquals(1, searchResults.size()); assertEquals("test_home.jpg", ((MediaFile) searchResults.get(0)).getName()); MediaFileFilter filter8 = new MediaFileFilter(); filter8.setSize(3000); filter8.setSizeFilterType(MediaFileFilter.SizeFilterType.GT); searchResults = mfMgr.searchMediaFiles(testWeblog, filter8); assertFalse(searchResults.isEmpty()); assertEquals(1, searchResults.size()); assertEquals("test_pers.jpg", ((MediaFile) searchResults.get(0)).getName()); MediaFileFilter filter9 = new MediaFileFilter(); filter9.setSize(3000); filter9.setSizeFilterType(MediaFileFilter.SizeFilterType.LTE); searchResults = mfMgr.searchMediaFiles(testWeblog, filter9); assertFalse(searchResults.isEmpty()); assertEquals(2, searchResults.size()); MediaFileFilter filter10 = new MediaFileFilter(); filter10.setSize(3000); filter10.setSizeFilterType(MediaFileFilter.SizeFilterType.GTE); searchResults = mfMgr.searchMediaFiles(testWeblog, filter10); assertFalse(searchResults.isEmpty()); assertEquals(2, searchResults.size()); // search by type MediaFileFilter filter11 = new MediaFileFilter(); filter11.setType(MediaFileType.IMAGE); searchResults = mfMgr.searchMediaFiles(testWeblog, filter11); assertFalse(searchResults.isEmpty()); assertEquals(3, searchResults.size()); MediaFileFilter filter12 = new MediaFileFilter(); filter12.setType(MediaFileType.IMAGE); filter12.setTags(Arrays.asList("home")); searchResults = mfMgr.searchMediaFiles(testWeblog, filter12); assertFalse(searchResults.isEmpty()); assertEquals(2, searchResults.size()); } finally { TestUtils.endSession(true); TestUtils.teardownWeblog(testWeblog.getId()); TestUtils.teardownUser(testUser.getUserName()); } }
/** Test deletion of media file */ public void testDeleteMediaFile() throws Exception { User testUser = null; Weblog testWeblog = null; testUser = TestUtils.setupUser("mediaFileTestUser4"); testWeblog = TestUtils.setupWeblog("mediaFileTestWeblog4", testUser); MediaFileManager mfMgr = WebloggerFactory.getWeblogger().getMediaFileManager(); // no need to create root directory, that is done automatically now MediaFileDirectory rootDirectory = mfMgr.getMediaFileRootDirectory(testWeblog); // MediaFileDirectory rootDirectory = new MediaFileDirectory(null, "root", "root d", // testWeblog); // mfMgr.createMediaFileDirectory(rootDirectory); TestUtils.endSession(true); testWeblog = TestUtils.getManagedWebsite(testWeblog); rootDirectory = mfMgr.getMediaFileDirectory(rootDirectory.getId()); MediaFile mediaFile = new MediaFile(); mediaFile.setName("test4.jpg"); mediaFile.setDescription("This is a test image 4"); mediaFile.setCopyrightText("test 4 copyright text"); mediaFile.setSharedForGallery(false); mediaFile.setLength(3000); mediaFile.setDirectory(rootDirectory); mediaFile.setWeblog(testWeblog); mediaFile.setContentType("image/jpeg"); mediaFile.setInputStream(getClass().getResourceAsStream(TEST_IMAGE)); MediaFileTag tag1 = new MediaFileTag("tst4work", mediaFile); MediaFileTag tag2 = new MediaFileTag("tst4home", mediaFile); Set<MediaFileTag> tags = new HashSet<MediaFileTag>(); tags.add(tag1); tags.add(tag2); mediaFile.setTags(tags); mfMgr.createMediaFile(testWeblog, mediaFile, new RollerMessages()); String id = mediaFile.getId(); TestUtils.endSession(true); assertNotNull(id); assertNotNull(id.length() > 0); testWeblog = TestUtils.getManagedWebsite(testWeblog); MediaFile mediaFile1 = mfMgr.getMediaFile(id); assertEquals("test4.jpg", mediaFile1.getName()); assertNotNull(mediaFile1.getTags()); assertEquals(2, mediaFile1.getTags().size()); try { mfMgr.removeMediaFile(testWeblog, mediaFile1); } catch (Exception ignorable) { log.debug("ERROR removing media file", ignorable); } TestUtils.endSession(true); MediaFile mediaFile2 = mfMgr.getMediaFile(id); assertNull(mediaFile2); TestUtils.endSession(true); TestUtils.teardownWeblog(testWeblog.getId()); TestUtils.teardownUser(testUser.getUserName()); String uploadsDirName = WebloggerConfig.getProperty("uploads.dir"); File flag = new File(uploadsDirName + File.separator + "migration-status.properties"); flag.delete(); }
/** Handles requests for user uploaded resources. */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Weblog weblog; // String ctx = request.getContextPath(); // String servlet = request.getServletPath(); // String reqURI = request.getRequestURI(); WeblogResourceRequest resourceRequest; try { // parse the incoming request and extract the relevant data resourceRequest = new WeblogResourceRequest(request); weblog = resourceRequest.getWeblog(); if (weblog == null) { throw new WebloggerException( "unable to lookup weblog: " + resourceRequest.getWeblogHandle()); } } catch (Exception e) { // invalid resource request or weblog doesn't exist if (!response.isCommitted()) { response.reset(); } log.debug("error creating weblog resource request", e); response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } log.debug("Resource requested [" + resourceRequest.getResourcePath() + "]"); long resourceLastMod = 0; InputStream resourceStream = null; // first see if resource comes from weblog's shared theme try { WeblogTheme weblogTheme = weblog.getTheme(); if (weblogTheme != null) { ThemeResource resource = weblogTheme.getResource(resourceRequest.getResourcePath()); if (resource != null) { resourceLastMod = resource.getLastModified(); resourceStream = resource.getInputStream(); } } } catch (Exception ex) { // hmmm, some kind of error getting theme. that's an error. if (!response.isCommitted()) { response.reset(); } response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } // if not from theme then see if resource is in weblog's upload dir if (resourceStream == null) { try { MediaFileManager mmgr = WebloggerFactory.getWeblogger().getMediaFileManager(); MediaFile mf = mmgr.getMediaFileByOriginalPath(weblog, resourceRequest.getResourcePath()); resourceLastMod = mf.getLastModified(); resourceStream = mf.getInputStream(); } catch (Exception ex) { // still not found? then we don't have it, 404. if (!response.isCommitted()) { response.reset(); } log.debug("Unable to get resource", ex); response.sendError(HttpServletResponse.SC_NOT_FOUND); return; } } // Respond with 304 Not Modified if it is not modified. if (ModDateHeaderUtil.respondIfNotModified( request, response, resourceLastMod, resourceRequest.getDeviceType())) { return; } else { // set last-modified date ModDateHeaderUtil.setLastModifiedHeader( response, resourceLastMod, resourceRequest.getDeviceType()); } // set the content type based on whatever is in our web.xml mime defs response.setContentType(this.context.getMimeType(resourceRequest.getResourcePath())); OutputStream out; try { // ok, lets serve up the file byte[] buf = new byte[RollerConstants.EIGHT_KB_IN_BYTES]; int length; out = response.getOutputStream(); while ((length = resourceStream.read(buf)) > 0) { out.write(buf, 0, length); } // close output stream out.close(); } catch (Exception ex) { if (!response.isCommitted()) { response.reset(); } response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } finally { // make sure stream to resource file is closed resourceStream.close(); } }