aboutsummaryrefslogtreecommitdiffstats
path: root/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java
diff options
context:
space:
mode:
authorGreg Woolsey <gwoolsey@apache.org>2019-03-30 20:13:24 +0000
committerGreg Woolsey <gwoolsey@apache.org>2019-03-30 20:13:24 +0000
commit67aad697571fe945e1100cd0a1ba148e9479bee4 (patch)
tree77bcdf3a781765d2979cf157295d7bbc302ecd45 /src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java
parent0d22749477125691ea5c7ca8de620aa5dbdef852 (diff)
downloadpoi-67aad697571fe945e1100cd0a1ba148e9479bee4.tar.gz
poi-67aad697571fe945e1100cd0a1ba148e9479bee4.zip
#63292 1904 date windowing flag not used for some format cases
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1856648 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java')
-rw-r--r--src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java b/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java
index 014139d88f..d07f8b144d 100644
--- a/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java
+++ b/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java
@@ -936,6 +936,37 @@ public class TestDataFormatter {
String value = df.formatCellValue(cell, wb.getCreationHelper().createFormulaEvaluator());
assertEquals("-130", value);
}
+
+ /**
+ * Bug #63292
+ */
+ @Test
+ public void test1904With4PartFormat() {
+ Date date = new Date();
+ int formatIndex = 105;
+ String formatString1 = "[$-F400]m/d/yy h:mm:ss\\ AM/PM";
+ String formatString4 = "[$-F400]m/d/yy h:mm:ss\\ AM/PM;[$-F400]m/d/yy h:mm:ss\\ AM/PM;_-* \"\"??_-;_-@_-";
+
+ String s1900, s1904;
+
+ // These two format calls return the same thing, as expected:
+ // The assertEquals() passes with 1-part format
+ s1900 = format(date, formatIndex, formatString1, false);
+ s1904 = format(date, formatIndex, formatString1, true);
+ assertEquals(s1900, s1904); // WORKS
+
+ // These two format calls should return the same thing but don't:
+ // It fails with 4-part format because the call to CellFormat ignores 'use1904Windowing'
+ s1900 = format(date, formatIndex, formatString4, false);
+ s1904 = format(date, formatIndex, formatString4, true);
+ assertEquals(s1900, s1904); // FAILS before fix for #63292
+ }
+
+ private String format(Date date, int formatIndex, String formatString, boolean use1904Windowing) {
+ DataFormatter formatter = new DataFormatter();
+ double n = DateUtil.getExcelDate(date, use1904Windowing);
+ return formatter.formatRawCellContents(n, formatIndex, formatString, use1904Windowing);
+ }
@Test
public void testConcurrentCellFormat() throws Exception {