~ubuntu-branches/ubuntu/utopic/libjaudiotagger-java/utopic

« back to all changes in this revision

Viewing changes to srctest/org/jaudiotagger/tag/id3/ID3v22TagTest.java

  • Committer: Bazaar Package Importer
  • Author(s): Varun Hiremath, Damien Raude-Morvan, Varun Hiremath
  • Date: 2009-04-01 19:17:56 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20090401191756-bygniim270guy7o1
Tags: 1.0.9-1
[ Damien Raude-Morvan ]
* New upstream release
* debian/watch: Use java.net repository (which contains new releases!)
* debian/control:
  - Build-Depends on default-jdk-builddep
  - Bump Standards-Version to 3.8.1 (no changes needed)
  - Change section to "java"
* debian/rules: use default-java as JAVA_HOME
* debina/orig-tar.{sh|excludes}: strip audio and others binary files from ZIP
* debian/build.xml:
  - compile with "nowarn" to keep build log readable
  - exclude LogFormatter from build (use com.sun classes)
* debian/ant.properties: new source directory is "src" in orig.tar.gz
* Add myself as Uploaders

[ Varun Hiremath ]
* Accept changes made by Damien Raude-Morvan (Closes: #522130)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.jaudiotagger.tag.id3;
 
2
 
 
3
import junit.framework.Test;
 
4
import junit.framework.TestCase;
 
5
import junit.framework.TestSuite;
 
6
import org.jaudiotagger.AbstractTestCase;
 
7
import org.jaudiotagger.audio.AudioFile;
 
8
import org.jaudiotagger.audio.AudioFileIO;
 
9
import org.jaudiotagger.audio.mp3.MP3File;
 
10
import org.jaudiotagger.tag.TagFieldKey;
 
11
import org.jaudiotagger.tag.TagOptionSingleton;
 
12
import org.jaudiotagger.tag.id3.framebody.*;
 
13
 
 
14
import java.io.File;
 
15
 
 
16
/**
 
17
 *
 
18
 */
 
19
public class ID3v22TagTest extends TestCase
 
20
{
 
21
    /**
 
22
     * Constructor
 
23
     *
 
24
     * @param arg0
 
25
     */
 
26
    public ID3v22TagTest(String arg0)
 
27
    {
 
28
        super(arg0);
 
29
    }
 
30
 
 
31
    /**
 
32
     * Command line entrance.
 
33
     *
 
34
     * @param args
 
35
     */
 
36
    public static void main(String[] args)
 
37
    {
 
38
        junit.textui.TestRunner.run(ID3v22TagTest.suite());
 
39
    }
 
40
 
 
41
    /////////////////////////////////////////////////////////////////////////
 
42
    // TestCase classes to override
 
43
    /////////////////////////////////////////////////////////////////////////
 
44
 
 
45
    /**
 
46
        *
 
47
        */
 
48
       protected void setUp()
 
49
       {
 
50
           TagOptionSingleton.getInstance().setToDefault();
 
51
       }
 
52
 
 
53
       /**
 
54
        *
 
55
        */
 
56
       protected void tearDown()
 
57
       {
 
58
       }
 
59
 
 
60
 
 
61
    /**
 
62
     *
 
63
     */
 
64
//    protected void runTest()
 
65
//    {
 
66
//    }
 
67
 
 
68
    /**
 
69
     * Builds the Test Suite.
 
70
     *
 
71
     * @return the Test Suite.
 
72
     */
 
73
    public static Test suite()
 
74
    {
 
75
        return new TestSuite(ID3v22TagTest.class);
 
76
    }
 
77
 
 
78
    /////////////////////////////////////////////////////////////////////////
 
79
    // Tests
 
80
    /////////////////////////////////////////////////////////////////////////
 
81
 
 
82
 
 
83
    public void testCreateIDv22Tag()
 
84
    {
 
85
        ID3v22Tag v2Tag = new ID3v22Tag();
 
86
        assertEquals((byte) 2, v2Tag.getRelease());
 
87
        assertEquals((byte) 2, v2Tag.getMajorVersion());
 
88
        assertEquals((byte) 0, v2Tag.getRevision());
 
89
    }
 
90
 
 
91
    public void testCreateID3v22FromID3v11()
 
92
    {
 
93
        ID3v11Tag v11Tag = ID3v11TagTest.getInitialisedTag();
 
94
        ID3v22Tag v2Tag = new ID3v22Tag(v11Tag);
 
95
        assertNotNull(v11Tag);
 
96
        assertNotNull(v2Tag);
 
97
        assertEquals(ID3v11TagTest.ARTIST, ((FrameBodyTPE1) ((ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_ARTIST)).getBody()).getText());
 
98
        assertEquals(ID3v11TagTest.ALBUM, ((FrameBodyTALB) ((ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_ALBUM)).getBody()).getText());
 
99
        assertEquals(ID3v11TagTest.COMMENT, ((FrameBodyCOMM) ((ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_COMMENT)).getBody()).getText());
 
100
        assertEquals(ID3v11TagTest.TITLE, ((FrameBodyTIT2) ((ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_TITLE)).getBody()).getText());
 
101
        assertEquals(ID3v11TagTest.TRACK_VALUE, ((FrameBodyTRCK) ((ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_TRACK)).getBody()).getText());
 
102
        assertTrue(((FrameBodyTCON) ((ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_GENRE)).getBody()).getText().endsWith(ID3v11TagTest.GENRE_VAL));
 
103
 
 
104
        //TODO:Note confusingly V22 YEAR Frame shave v2 identifier but use TDRC behind the scenes, is confusing
 
105
        assertEquals(ID3v11TagTest.YEAR, ((FrameBodyTDRC) ((ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_TYER)).getBody()).getText());
 
106
 
 
107
        assertEquals((byte) 2, v2Tag.getRelease());
 
108
        assertEquals((byte) 2, v2Tag.getMajorVersion());
 
109
        assertEquals((byte) 0, v2Tag.getRevision());
 
110
    }
 
111
 
 
112
    public void testCreateIDv22TagAndSave()
 
113
    {
 
114
        Exception exception = null;
 
115
        try
 
116
        {
 
117
            File testFile = AbstractTestCase.copyAudioToTmp("testV1.mp3");
 
118
            MP3File mp3File = new MP3File(testFile);
 
119
            ID3v22Tag v2Tag = new ID3v22Tag();
 
120
            v2Tag.setTitle("fred");
 
121
            v2Tag.setArtist("artist");
 
122
            v2Tag.setAlbum("album");
 
123
 
 
124
            assertEquals((byte) 2, v2Tag.getRelease());
 
125
            assertEquals((byte) 2, v2Tag.getMajorVersion());
 
126
            assertEquals((byte) 0, v2Tag.getRevision());
 
127
            mp3File.setID3v2Tag(v2Tag);
 
128
            mp3File.save();
 
129
 
 
130
            //Read using new Interface
 
131
            AudioFile v22File = AudioFileIO.read(testFile);
 
132
            assertEquals("fred", v22File.getTag().getFirstTitle());
 
133
            assertEquals("artist", v22File.getTag().getFirstArtist());
 
134
            assertEquals("album", v22File.getTag().getFirstAlbum());
 
135
 
 
136
            //Read using old Interface
 
137
            mp3File = new MP3File(testFile);
 
138
            v2Tag = (ID3v22Tag) mp3File.getID3v2Tag();
 
139
            ID3v22Frame frame = (ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_TITLE);
 
140
            assertEquals("fred", ((AbstractFrameBodyTextInfo) frame.getBody()).getText());
 
141
 
 
142
        }
 
143
        catch (Exception e)
 
144
        {
 
145
            exception = e;
 
146
        }
 
147
        assertNull(exception);
 
148
    }
 
149
 
 
150
    public void testv22TagWithUnnneccessaryTrailingNulls()
 
151
    {
 
152
        File orig = new File("testdata", "test24.mp3");
 
153
        if (!orig.isFile())
 
154
        {
 
155
            return;
 
156
        }
 
157
 
 
158
        Exception exception = null;
 
159
        try
 
160
        {
 
161
            File testFile = AbstractTestCase.copyAudioToTmp("test24.mp3");
 
162
            AudioFile af = AudioFileIO.read(testFile);
 
163
            MP3File m = (MP3File) af;
 
164
 
 
165
            //Read using new Interface getFirst method with key
 
166
            assertEquals("Listen to images:", af.getTag().getFirst(TagFieldKey.TITLE) + ":");
 
167
            assertEquals("Clean:", af.getTag().getFirst(TagFieldKey.ALBUM) + ":");
 
168
            assertEquals("Cosmo Vitelli:", af.getTag().getFirst(TagFieldKey.ARTIST) + ":");
 
169
            assertEquals("Electronica/Dance:", af.getTag().getFirst(TagFieldKey.GENRE) + ":");
 
170
            assertEquals("2003:", af.getTag().getFirst(TagFieldKey.YEAR) + ":");
 
171
            assertEquals("1/11:", af.getTag().getFirst(TagFieldKey.TRACK) + ":");
 
172
 
 
173
            //Read using new Interface getFirst method with String
 
174
            assertEquals("Listen to images:", af.getTag().getFirst(ID3v22Frames.FRAME_ID_V2_TITLE) + ":");
 
175
            assertEquals("Clean:", af.getTag().getFirst(ID3v22Frames.FRAME_ID_V2_ALBUM) + ":");
 
176
            assertEquals("Cosmo Vitelli:", af.getTag().getFirst(ID3v22Frames.FRAME_ID_V2_ARTIST) + ":");
 
177
            assertEquals("Electronica/Dance:", af.getTag().getFirst(ID3v22Frames.FRAME_ID_V2_GENRE) + ":");
 
178
            assertEquals("2003:", af.getTag().getFirst(ID3v22Frames.FRAME_ID_V2_TYER) + ":");
 
179
            assertEquals("1/11:", af.getTag().getFirst(ID3v22Frames.FRAME_ID_V2_TRACK) + ":");
 
180
 
 
181
            //Read using new Interface getFirst methods for common fields
 
182
            assertEquals("Listen to images:", af.getTag().getFirstTitle() + ":");
 
183
            assertEquals("Cosmo Vitelli:", af.getTag().getFirstArtist() + ":");
 
184
            assertEquals("Clean:", af.getTag().getFirstAlbum() + ":");
 
185
            assertEquals("Electronica/Dance:", af.getTag().getFirstGenre() + ":");
 
186
            assertEquals("2003:", af.getTag().getFirstYear() + ":");
 
187
            assertEquals("1/11:", af.getTag().getFirstTrack() + ":");
 
188
 
 
189
            //Read using old Interface
 
190
            ID3v22Tag v2Tag = (ID3v22Tag) m.getID3v2Tag();
 
191
            ID3v22Frame frame = (ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_TITLE);
 
192
            assertEquals("Listen to images\0:", ((AbstractFrameBodyTextInfo) frame.getBody()).getText() + ":");
 
193
            frame = (ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_ARTIST);
 
194
            assertEquals("Cosmo Vitelli\0:", ((AbstractFrameBodyTextInfo) frame.getBody()).getText() + ":");
 
195
            frame = (ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_ALBUM);
 
196
            assertEquals("Clean\0:", ((AbstractFrameBodyTextInfo) frame.getBody()).getText() + ":");
 
197
            frame = (ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_GENRE);
 
198
            assertEquals("Electronica/Dance\0:", ((AbstractFrameBodyTextInfo) frame.getBody()).getText() + ":");
 
199
            frame = (ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_TYER);
 
200
            assertEquals("2003\0:", ((AbstractFrameBodyTextInfo) frame.getBody()).getText() + ":");
 
201
            frame = (ID3v22Frame) v2Tag.getFrame(ID3v22Frames.FRAME_ID_V2_TRACK);
 
202
            assertEquals("1/11\0:", ((AbstractFrameBodyTextInfo) frame.getBody()).getText() + ":");
 
203
 
 
204
        }
 
205
        catch (Exception e)
 
206
        {
 
207
            exception = e;
 
208
        }
 
209
        assertNull(exception);
 
210
    }
 
211
}