]> source.dussan.org Git - poi.git/commitdiff
Start checking the CF colours in the unit tests
authorNick Burch <nick@apache.org>
Tue, 14 Jul 2015 21:45:23 +0000 (21:45 +0000)
committerNick Burch <nick@apache.org>
Tue, 14 Jul 2015 21:45:23 +0000 (21:45 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1691092 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFColor.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestConditionalFormatting.java

index d2dc28dda7dd81f6b34b6724d36cdb457c492e20..19fd5a5b48ae3944cbc11e0de7f10218853ee678 100644 (file)
@@ -170,10 +170,7 @@ public class XSSFColor implements Color {
           return null;
        }
        for(byte c : rgb) {
-          int i = (int)c;
-          if(i < 0) {
-             i += 256;
-          }
+          int i = c & 0xff;
           String cs = Integer.toHexString(i);
           if(cs.length() == 1) {
              sb.append('0');
index c6823c972191249fe8c136998796d3ab18ceaaab..81220355d8085f830b78bf013402a2858342afd7 100644 (file)
@@ -19,6 +19,7 @@
 package org.apache.poi.xssf.usermodel;\r
 \r
 import org.apache.poi.ss.usermodel.BaseTestConditionalFormatting;\r
+import org.apache.poi.ss.usermodel.Color;\r
 import org.apache.poi.xssf.XSSFITestDataProvider;\r
 \r
 /**\r
@@ -29,6 +30,16 @@ public class TestXSSFConditionalFormatting extends BaseTestConditionalFormatting
         super(XSSFITestDataProvider.instance);\r
     }\r
 \r
+    protected void assertColour(String hexExpected, Color actual) {\r
+        assertNotNull("Colour must be given", actual);\r
+        XSSFColor colour = (XSSFColor)actual;\r
+        if (hexExpected.length() == 8) {\r
+            assertEquals(hexExpected, colour.getARGBHex());\r
+        } else {\r
+            assertEquals(hexExpected, colour.getARGBHex().substring(2));\r
+        }\r
+    }\r
+\r
     public void testRead(){\r
         testRead("WithConditionalFormatting.xlsx");\r
     }\r
index 69c61a701abbaec8076660bdebe82d1905577032..697f350c7e17beea1d7173bdc2b94e1de47e3473 100644 (file)
@@ -22,7 +22,9 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 
 import org.apache.poi.hssf.HSSFITestDataProvider;
+import org.apache.poi.hssf.util.HSSFColor;
 import org.apache.poi.ss.usermodel.BaseTestConditionalFormatting;
+import org.apache.poi.ss.usermodel.Color;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.SheetConditionalFormatting;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -34,6 +36,11 @@ public final class TestHSSFConditionalFormatting extends BaseTestConditionalForm
     public TestHSSFConditionalFormatting(){
         super(HSSFITestDataProvider.instance);
     }
+    protected void assertColour(String hexExpected, Color actual) {
+        assertNotNull("Colour must be given", actual);
+        HSSFColor colour = (HSSFColor)actual;
+        assertEquals(hexExpected, colour.getHexString());
+    }
 
     public void testRead() {
         testRead("WithConditionalFormatting.xls");
index 6dde39730f1c2fbb4ab8cb2bc2dbe0c09de2670a..5ee58d4b48f2e0678417a6258abe4baa48be2248 100644 (file)
@@ -35,6 +35,8 @@ public abstract class BaseTestConditionalFormatting extends TestCase {
     public BaseTestConditionalFormatting(ITestDataProvider testDataProvider){\r
         _testDataProvider = testDataProvider;\r
     }\r
+    \r
+    protected abstract void assertColour(String hexExpected, Color actual);\r
 \r
     public void testBasic() {\r
         Workbook wb = _testDataProvider.createWorkbook();\r
@@ -592,8 +594,12 @@ public abstract class BaseTestConditionalFormatting extends TestCase {
         assertEquals(ComparisonOperator.GT, cr.getComparisonOperation());\r
         assertEquals("0", cr.getFormula1());\r
         assertEquals(null, cr.getFormula2());\r
-//        assertColourGreen(cr);\r
-        // TODO Colour checking\r
+        // TODO Should the colours be slightly different like this?\r
+        if (cr instanceof HSSFConditionalFormattingRule) {\r
+            assertColour("CCCC:FFFF:CCCC", cr.getPatternFormatting().getFillBackgroundColorColor());\r
+        } else {\r
+            assertColour("C6EFCE", cr.getPatternFormatting().getFillBackgroundColorColor());\r
+        }\r
         \r
         \r
         // Highlight 10-30 - Column D\r