package com.limegroup.gnutella.metadata; import java.io.File; import junit.framework.Test; import com.limegroup.gnutella.xml.LimeXMLDocument; import com.limegroup.gnutella.util.BaseTestCase; import com.limegroup.gnutella.util.CommonUtils; import com.limegroup.gnutella.util.PrivilegedAccessor; public class OGGWritingTest extends BaseTestCase { private static String TEST_NAME = "testfile12341234.ogg"; private static File TEST_FILE; public OGGWritingTest(String name) { super(name); } public static Test suite() { return buildTestSuite(OGGWritingTest.class); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } //////////// public void setUp() { String dir = "com/limegroup/gnutella/metadata/"; File f = CommonUtils.getResourceFile(dir + "oggAll.ogg"); assertTrue(f.exists()); TEST_FILE = new File(TEST_NAME); TEST_FILE.delete(); CommonUtils.copy(f, TEST_FILE); assertTrue(TEST_FILE.exists()); TEST_FILE.deleteOnExit(); } public static void globalTearDown() { TEST_FILE.delete(); } ////////// /** * Tests that the ID3v2 tags are read correctly */ public void testOGGTagsWriting() throws Exception { AudioMetaData data = null; data = (AudioMetaData)MetaData.parse(TEST_FILE); assertEquals("Incorrect album","allAlbum", data.getAlbum()); assertEquals("Incorrect year", "1234",data.getYear()); assertEquals("Incorrect track", 3, data.getTrack()); assertEquals("Incorrect comment", "allComment",data.getComment()); // Read existing stuff in file. LimeXMLDocument doc = MetaDataReader.readDocument(TEST_FILE); //2. Write data into the file MetaDataEditor editor = MetaDataEditor.getEditorForFile(TEST_FILE.getPath()); editor.populate(doc); PrivilegedAccessor.setValue(editor, "title_", "New Title"); PrivilegedAccessor.setValue(editor, "artist_", "new Artist"); PrivilegedAccessor.setValue(editor, "genre_", "Classic Rock"); PrivilegedAccessor.setValue(editor, "license_", "some license"); int retVal = editor.commitMetaData(TEST_FILE.getAbsolutePath()); assertEquals(0,retVal); //3. Test if the data was written correctly data = (AudioMetaData)MetaData.parse(TEST_FILE); assertEquals("Title not written", "New Title", data.getTitle()); assertEquals("Artist not written", "new Artist", data.getArtist()); assertEquals("Genre not written", "Classic Rock", data.getGenre()); assertEquals("Incorrect album","allAlbum", data.getAlbum()); assertEquals("Incorrect year", "1234",data.getYear()); assertEquals("Incorrect track", 3, data.getTrack()); assertEquals("Incorrect comment", "allComment",data.getComment()); assertEquals("License not written", "some license", data.getLicense()); } }