~hjd/ubuntu/wily/xmlgraphics-commons/debian-merged

« back to all changes in this revision

Viewing changes to test/java/org/apache/xmlgraphics/xmp/XMPPropertyTest.java

  • Committer: Hans Joachim Desserud
  • Date: 2015-11-11 18:22:53 UTC
  • mfrom: (9.1.5 sid)
  • Revision ID: hans_joachim_desserud-20151111182253-zwi0frfm97j0wddn
  * Merge from Debian unstable.  Remaining changes:
    - d/control: Drop dependencies required for unit testing as they
      include libmockito-java which would pull maven into main, disable unit
      test execution.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 
 * contributor license agreements.  See the NOTICE file distributed with
4
 
 * this work for additional information regarding copyright ownership.
5
 
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 
 * (the "License"); you may not use this file except in compliance with
7
 
 * the License.  You may obtain a copy of the License at
8
 
 *
9
 
 *      http://www.apache.org/licenses/LICENSE-2.0
10
 
 *
11
 
 * Unless required by applicable law or agreed to in writing, software
12
 
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 
 * See the License for the specific language governing permissions and
15
 
 * limitations under the License.
16
 
 */
17
 
 
18
 
/* $Id: XMPPropertyTest.java 1051421 2010-12-21 08:54:25Z jeremias $ */
19
 
 
20
 
package org.apache.xmlgraphics.xmp;
21
 
 
22
 
import java.io.StringWriter;
23
 
import java.util.Arrays;
24
 
import java.util.Calendar;
25
 
import java.util.Date;
26
 
import java.util.Locale;
27
 
import java.util.Set;
28
 
import java.util.TimeZone;
29
 
 
30
 
import javax.xml.transform.stream.StreamResult;
31
 
import javax.xml.transform.stream.StreamSource;
32
 
 
33
 
import junit.framework.TestCase;
34
 
 
35
 
import org.apache.xmlgraphics.util.QName;
36
 
import org.apache.xmlgraphics.xmp.schemas.DublinCoreAdapter;
37
 
import org.apache.xmlgraphics.xmp.schemas.DublinCoreSchema;
38
 
import org.apache.xmlgraphics.xmp.schemas.XMPBasicAdapter;
39
 
import org.apache.xmlgraphics.xmp.schemas.XMPBasicSchema;
40
 
 
41
 
/**
42
 
 * Tests property access methods.
43
 
 */
44
 
public class XMPPropertyTest extends TestCase {
45
 
 
46
 
    public void testPropertyAccess() throws Exception {
47
 
        Metadata xmp = new Metadata();
48
 
        DublinCoreAdapter dc = DublinCoreSchema.getAdapter(xmp);
49
 
        assertNull(dc.getContributors());
50
 
 
51
 
        dc.addContributor("Contributor1");
52
 
        assertEquals(1, dc.getContributors().length);
53
 
        assertEquals("Contributor1", dc.getContributors()[0]);
54
 
        dc.removeContributor("Contributor1");
55
 
        assertNull(dc.getContributors());
56
 
 
57
 
        dc.addContributor("Contributor1");
58
 
        assertEquals(1, dc.getContributors().length);
59
 
        dc.addContributor("Contributor2");
60
 
        assertEquals(2, dc.getContributors().length);
61
 
        assertFalse(dc.removeContributor("DoesNotExist"));
62
 
        assertTrue(dc.removeContributor("Contributor1"));
63
 
        assertEquals(1, dc.getContributors().length);
64
 
        assertTrue(dc.removeContributor("Contributor2"));
65
 
        assertFalse(dc.removeContributor("Contributor2"));
66
 
        assertNull(dc.getContributors());
67
 
    }
68
 
 
69
 
    public void testPropertyRemovalLangAlt() throws Exception {
70
 
        Metadata xmp = new Metadata();
71
 
        DublinCoreAdapter dc = DublinCoreSchema.getAdapter(xmp);
72
 
 
73
 
        //dc:title is a "Lang Alt"
74
 
        dc.setTitle("en", "The title");
75
 
        String title = dc.removeTitle("en");
76
 
        assertEquals("The title", title);
77
 
        dc.setTitle("en", "The title");
78
 
        dc.setTitle("de", "Der Titel");
79
 
        title = dc.removeTitle("en");
80
 
        assertEquals("The title", title);
81
 
        title = dc.removeTitle("en");
82
 
        assertNull(title);
83
 
 
84
 
        title = dc.removeTitle("de");
85
 
        assertEquals("Der Titel", title);
86
 
        title = dc.removeTitle("de");
87
 
        assertNull(title);
88
 
    }
89
 
 
90
 
    public void testReplaceLangAlt() throws Exception {
91
 
        Metadata xmp = new Metadata();
92
 
        DublinCoreAdapter dc = DublinCoreSchema.getAdapter(xmp);
93
 
        dc.setTitle("Default title");
94
 
        StringWriter writer = new StringWriter();
95
 
        XMPSerializer.writeXML(xmp, new StreamResult(writer));
96
 
        String xmpString = writer.toString();
97
 
        xmp = XMPParser.parseXMP(new StreamSource(new java.io.StringReader(xmpString)));
98
 
        dc = DublinCoreSchema.getAdapter(xmp);
99
 
        assertEquals("Default title", dc.getTitle());
100
 
        dc.setTitle("Updated title");
101
 
        XMPProperty prop = xmp.getProperty(new QName(DublinCoreSchema.NAMESPACE, "title"));
102
 
        XMPArray array = prop.getArrayValue();
103
 
        assertNotNull(array);
104
 
        //Check that only one title is present. There used to be a bug that didn't set the
105
 
        //non-qualified value equal to the value qualified with "x-default".
106
 
        assertEquals(1, array.getSize());
107
 
        assertEquals("Updated title", array.getValue(0));
108
 
    }
109
 
 
110
 
    public void testPropertyValues() throws Exception {
111
 
        Metadata xmp = new Metadata();
112
 
        DublinCoreAdapter dc = DublinCoreSchema.getAdapter(xmp);
113
 
 
114
 
        String format = dc.getFormat();
115
 
        assertNull(format);
116
 
 
117
 
        dc.setFormat("application/pdf");
118
 
        format = dc.getFormat();
119
 
        assertEquals("application/pdf", format);
120
 
 
121
 
        dc.setFormat("image/jpeg");
122
 
        format = dc.getFormat();
123
 
        assertEquals("image/jpeg", format);
124
 
 
125
 
        dc.setFormat(null);
126
 
        format = dc.getFormat();
127
 
        assertNull(format);
128
 
 
129
 
        dc.setFormat(""); //Empty string same as null value
130
 
        format = dc.getFormat();
131
 
        assertNull(format);
132
 
 
133
 
        dc.setTitle("title");
134
 
        String title = dc.getTitle();
135
 
        assertEquals("title", title);
136
 
 
137
 
        dc.setTitle("Titel");
138
 
        title = dc.getTitle();
139
 
        assertEquals("Titel", title);
140
 
 
141
 
        dc.setTitle(null);
142
 
        title = dc.getTitle();
143
 
        assertNull(title);
144
 
 
145
 
        dc.setTitle("");
146
 
        title = dc.getTitle();
147
 
        assertNull(title);
148
 
    }
149
 
 
150
 
    public void testDates() throws Exception {
151
 
        Metadata xmp = new Metadata();
152
 
        XMPBasicAdapter basic = XMPBasicSchema.getAdapter(xmp);
153
 
 
154
 
        Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT"), Locale.ENGLISH);
155
 
        cal.set(2008, Calendar.FEBRUARY, 07, 15, 11, 07);
156
 
        cal.set(Calendar.MILLISECOND, 0);
157
 
        Date dt = cal.getTime();
158
 
 
159
 
        assertNull(basic.getCreateDate());
160
 
        basic.setCreateDate(dt);
161
 
        Date dt2 = basic.getCreateDate();
162
 
        assertEquals(dt2, dt);
163
 
    }
164
 
 
165
 
    public void testQualifiers() throws Exception {
166
 
        Metadata xmp = new Metadata();
167
 
        XMPBasicAdapter basic = XMPBasicSchema.getAdapter(xmp);
168
 
 
169
 
        basic.addIdentifier("x123");
170
 
        basic.setIdentifier("id1", "system1");
171
 
        basic.setIdentifier("12345", "system2");
172
 
 
173
 
        String[] ids = basic.getIdentifiers();
174
 
        assertEquals(3, ids.length);
175
 
        Set set = new java.util.HashSet(Arrays.asList(ids));
176
 
        assertTrue(set.contains("x123"));
177
 
        assertTrue(set.contains("id1"));
178
 
        assertTrue(set.contains("12345"));
179
 
 
180
 
        assertEquals("id1", basic.getIdentifier("system1"));
181
 
        basic.setIdentifier("id2", "system1");
182
 
        assertEquals("id2", basic.getIdentifier("system1"));
183
 
        assertEquals(3, basic.getIdentifiers().length);
184
 
    }
185
 
 
186
 
}