001: package org.tigris.scarab.om;
002:
003: /* ================================================================
004: * Copyright (c) 2000-2002 CollabNet. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions are
008: * met:
009: *
010: * 1. Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * 2. Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in the
015: * documentation and/or other materials provided with the distribution.
016: *
017: * 3. The end-user documentation included with the redistribution, if
018: * any, must include the following acknowlegement: "This product includes
019: * software developed by Collab.Net <http://www.Collab.Net/>."
020: * Alternately, this acknowlegement may appear in the software itself, if
021: * and wherever such third-party acknowlegements normally appear.
022: *
023: * 4. The hosted project names must not be used to endorse or promote
024: * products derived from this software without prior written
025: * permission. For written permission, please contact info@collab.net.
026: *
027: * 5. Products derived from this software may not use the "Tigris" or
028: * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
029: * prior written permission of Collab.Net.
030: *
031: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
032: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
033: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
034: * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
035: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
036: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
037: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
038: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
039: * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
040: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
041: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
042: *
043: * ====================================================================
044: *
045: * This software consists of voluntary contributions made by many
046: * individuals on behalf of Collab.Net.
047: */
048:
049: import java.io.File;
050:
051: import org.apache.commons.fileupload.DefaultFileItemFactory;
052: import org.apache.commons.fileupload.FileItem;
053: import org.apache.commons.fileupload.FileItemFactory;
054: import org.apache.torque.om.NumberKey;
055: import org.tigris.scarab.test.BaseScarabTestCase;
056:
057: /**
058: * A Testing Suite for the om.Attachment class.
059: *
060: * @author <a href="mailto:elicia@collab.net">Elicia David</a>
061: * @version $Id: AttachmentTest2.java 9446 2005-03-12 11:59:50Z jorgeuriarte $
062: */
063: public class AttachmentTest2 extends BaseScarabTestCase {
064: private Attachment comment = null;
065: private Attachment fileAttachment = null;
066: private Issue issue = null;
067:
068: public void setUp() throws Exception {
069: super .setUp();
070: comment = AttachmentManager.getInstance();
071: fileAttachment = AttachmentManager.getInstance();
072: issue = IssueManager.getInstance(new NumberKey("1"));
073:
074: }
075:
076: public void saveFile() throws Exception {
077: //FileItem fileItem = new DefaultFileItem(scarab/images/", "logo.gif", "image/jpeg", 6480, 10000);
078: FileItemFactory factory = new DefaultFileItemFactory(6480, null);
079: String textFieldName = "textField";
080:
081: FileItem fileItem = factory.createItem(textFieldName,
082: "image/jpeg", true, "logo.gif");
083: fileAttachment.setFile(fileItem);
084: fileAttachment.setName(fileItem.getName());
085: fileAttachment.setMimeType("image/jpeg");
086: fileAttachment.setCreatedBy(getUser1().getUserId());
087: issue.addFile(fileAttachment, getUser1());
088: issue.save();
089: // need to save the attachments AFTER the issue has been created
090: issue.doSaveFileAttachments(getUser1());
091: System.out.println("filename=" + fileAttachment.getFileName());
092: }
093:
094: public void testGetRepositoryDirectory() throws Exception {
095:
096: //Configuration c = new BaseConfiguration();
097: //c.addProperty("scarab.attachments.repository","WEB-INF/attachements");
098: //Attachment.setConfiguration(c);
099: String control = new String("WEB-INF" + File.separator
100: + "attachments");
101: File testPath = new File(Attachment.getRepositoryDirectory());
102: assertTrue("testpath was:" + testPath.getPath(), testPath
103: .getPath().endsWith(control));
104: }
105:
106: public void OFFtestGetRelativePath() throws Exception {
107: saveFile();
108: File control = new File("mod" + issue.getModuleId().toString()
109: + "/" + issue.getIdCount() / 1000 + "/"
110: + issue.getUniqueId() + "_"
111: + fileAttachment.getQueryKey() + "_"
112: + fileAttachment.getFileName());
113: File testPath = new File(fileAttachment.getRelativePath());
114: assertEquals(control.getPath(), testPath.getPath());
115: }
116:
117: public void OFFtestGetFullPath() throws Exception {
118: saveFile();
119: File control = new File(fileAttachment.getFullPath());
120: File testPath = new File(Attachment.getRepositoryDirectory(),
121: fileAttachment.getRelativePath());
122: assertEquals(control.getPath(), testPath.getPath());
123: }
124: }
|