Skip to content

Commit a9f75d4

Browse files
authored
Merge pull request #858 from knowm/testAddFileExtension-fix-uppercase
Fixing BitmapEncoder.addFileExtension handling of uppercase extensions
2 parents 6766f1a + 89ba686 commit a9f75d4

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

xchart/src/main/java/org/knowm/xchart/BitmapEncoder.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,16 @@ private BitmapEncoder() {}
3939
*/
4040
public static String addFileExtension(String fileName, BitmapFormat bitmapFormat) {
4141

42-
String fileNameWithFileExtension = fileName;
4342
final String newFileExtension = "." + bitmapFormat.toString().toLowerCase();
44-
if (fileName.length() <= newFileExtension.length()
43+
final String fileNameWithFileExtension;
44+
if (fileName.length() < newFileExtension.length()
4545
|| !fileName
46-
.substring(fileName.length() - newFileExtension.length(), fileName.length())
46+
.substring(fileName.length() - newFileExtension.length())
4747
.equalsIgnoreCase(newFileExtension)) {
4848
fileNameWithFileExtension = fileName + newFileExtension;
49+
} else {
50+
// This is to ensure the lower-case for the extension
51+
fileNameWithFileExtension = fileName.substring(0, fileName.length() - newFileExtension.length()) + newFileExtension;
4952
}
5053
return fileNameWithFileExtension;
5154
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package org.knowm.xchart;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import java.util.Arrays;
6+
7+
import static org.junit.jupiter.api.Assertions.assertEquals;
8+
9+
10+
public class BitmapEncoderTest {
11+
12+
@Test
13+
public void testAddFileExtension() {
14+
String fileName1 = "image";
15+
String fileName2 = "image.png";
16+
String fileName3 = "image.PNG";
17+
18+
for (String s : Arrays.asList(fileName1, fileName2, fileName3)) {
19+
assertEquals("image.png", BitmapEncoder.addFileExtension(s, BitmapEncoder.BitmapFormat.PNG));
20+
}
21+
assertEquals("z.bmp", BitmapEncoder.addFileExtension("z", BitmapEncoder.BitmapFormat.BMP));
22+
assertEquals("asdf.bmp", BitmapEncoder.addFileExtension("asdf", BitmapEncoder.BitmapFormat.BMP));
23+
assertEquals(".bmp", BitmapEncoder.addFileExtension(".bmp", BitmapEncoder.BitmapFormat.BMP));
24+
assertEquals(".bmp", BitmapEncoder.addFileExtension(".BmP", BitmapEncoder.BitmapFormat.BMP));
25+
}
26+
}

0 commit comments

Comments
 (0)