1 package org.apache.maven.it;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.it.util.ResourceExtractor;
23 import org.apache.maven.shared.utils.io.FileUtils;
24
25 import java.io.File;
26
27
28
29
30
31
32 public class MavenITmng2362DeployedPomEncodingTest
33 extends AbstractMavenIntegrationTestCase
34 {
35
36 public MavenITmng2362DeployedPomEncodingTest()
37 {
38 super( "[2.0.5,)" );
39 }
40
41
42
43
44
45
46
47 public void testit()
48 throws Exception
49 {
50 File testDir = ResourceExtractor.simpleExtractResources( getClass(), "/mng-2362" );
51
52 Verifier verifier = newVerifier( testDir.getAbsolutePath() );
53 verifier.setAutoclean( false );
54 verifier.deleteDirectory( "utf-8/target" );
55 verifier.deleteDirectory( "latin-1/target" );
56 verifier.deleteArtifacts( "org.apache.maven.its.mng2362" );
57 verifier.executeGoal( "validate" );
58 verifier.verifyErrorFreeLog();
59 verifier.resetStreams();
60
61 File pomFile;
62
63 pomFile = new File( verifier.getArtifactPath( "org.apache.maven.its.mng2362", "utf-8", "0.1", "pom" ) );
64 assertPomUtf8( pomFile );
65
66 pomFile = new File( testDir, "utf-8/target/repo/org/apache/maven/its/mng2362/utf-8/0.1/utf-8-0.1.pom" );
67 assertPomUtf8( pomFile );
68
69 pomFile = new File( verifier.getArtifactPath( "org.apache.maven.its.mng2362", "latin-1", "0.1", "pom" ) );
70 assertPomLatin1( pomFile );
71
72 pomFile = new File( testDir, "latin-1/target/repo/org/apache/maven/its/mng2362/latin-1/0.1/latin-1-0.1.pom" );
73 assertPomLatin1( pomFile );
74 }
75
76 private void assertPomUtf8( File pomFile )
77 throws Exception
78 {
79 String pom = FileUtils.fileRead( pomFile, "UTF-8" );
80 String chars = "\u00DF\u0131\u03A3\u042F\u05D0\u20AC";
81 assertPom( pomFile, pom, chars );
82 }
83
84 private void assertPomLatin1( File pomFile )
85 throws Exception
86 {
87 String pom = FileUtils.fileRead( pomFile, "ISO-8859-1" );
88 String chars = "\u00C4\u00D6\u00DC\u00E4\u00F6\u00FC\u00DF";
89 assertPom( pomFile, pom, chars );
90 }
91
92 private void assertPom( File pomFile, String pom, String chars )
93 throws Exception
94 {
95 String prefix = "TEST-CHARS: ";
96 int pos = pom.indexOf( prefix );
97 assertTrue( "Corrupt data " + pom.substring( pos, pos + prefix.length() + chars.length() ) + " in " + pomFile,
98 pom.contains( prefix + chars ) );
99 }
100
101 }