/** Test creation of media file. */ public void testCreateMediaFile() throws Exception { User testUser = null; Weblog testWeblog = null; testUser = TestUtils.setupUser("mediaFileTestUser3"); testWeblog = TestUtils.setupWeblog("mediaFileTestWeblog3", 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("test.jpg"); 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("image/jpeg"); rootDirectory.getMediaFiles().add(mediaFile); MediaFileTag tag1 = new MediaFileTag("work", mediaFile); MediaFileTag tag2 = new MediaFileTag("home", mediaFile); Set<MediaFileTag> tags = new HashSet<MediaFileTag>(); tags.add(tag1); tags.add(tag2); mediaFile.setTags(tags); mfMgr.createMediaFile(testWeblog, mediaFile, new RollerMessages()); TestUtils.endSession(true); assertNotNull(mediaFile.getId()); assertNotNull(mediaFile.getId().length() > 0); testWeblog = TestUtils.getManagedWebsite(testWeblog); MediaFile mediaFile1 = mfMgr.getMediaFile(mediaFile.getId()); assertEquals("test.jpg", mediaFile1.getName()); assertEquals("This is a test image", mediaFile1.getDescription()); assertEquals("test copyright text", mediaFile1.getCopyrightText()); assertTrue(mediaFile1.isSharedForGallery()); assertEquals(2000, mediaFile1.getLength()); TestUtils.endSession(true); TestUtils.teardownWeblog(testWeblog.getId()); TestUtils.teardownUser(testUser.getUserName()); }
/** * Fetches and displays list of media file for the given directory. The directory could be chosen * by ID or path. * * @return String The result of the action. */ @SkipValidation public String execute() { MediaFileManager manager = WebloggerFactory.getWeblogger().getMediaFileManager(); try { MediaFileDirectory directory; if (StringUtils.isNotEmpty(this.directoryId)) { directory = manager.getMediaFileDirectory(this.directoryId); } else if (StringUtils.isNotEmpty(this.directoryPath)) { directory = manager.getMediaFileDirectoryByPath(getActionWeblog(), this.directoryPath); } else { directory = manager.getMediaFileRootDirectory(getActionWeblog()); } this.directoryId = directory.getId(); this.directoryPath = directory.getPath(); this.childDirectories = new ArrayList<MediaFileDirectory>(); this.childDirectories.addAll(directory.getChildDirectories()); this.childFiles = new ArrayList<MediaFile>(); this.childFiles.addAll(directory.getMediaFiles()); if ("type".equals(sortBy)) { Collections.sort(this.childFiles, new MediaFileComparator(MediaFileComparatorType.TYPE)); } else if ("date_uploaded".equals(sortBy)) { Collections.sort( this.childFiles, new MediaFileComparator(MediaFileComparatorType.DATE_UPLOADED)); } else { // default to sort by name sortBy = "name"; Collections.sort( this.childDirectories, new MediaFileDirectoryComparator(DirectoryComparatorType.NAME)); Collections.sort(this.childFiles, new MediaFileComparator(MediaFileComparatorType.NAME)); } this.currentDirectory = directory; return SUCCESS; } catch (FileIOException ex) { log.error("Error viewing media file directory ", ex); addError("MediaFile.error.view"); } catch (Exception e) { log.error("Error viewing media file directory ", e); addError("MediaFile.error.view"); } return SUCCESS; }
/** 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 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()); } }