Author: fanningpj
Date: Wed Mar  9 20:56:02 2022
New Revision: 1898805

URL: http://svn.apache.org/viewvc?rev=1898805&view=rev
Log:
[bug-65946] remove duplicate Category property from extracted properties

Added:
    poi/trunk/test-data/slideshow/rain.pptx   (with props)
Modified:
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ooxml/TestXMLPropertiesTextExtractor.java

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ooxml/TestXMLPropertiesTextExtractor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ooxml/TestXMLPropertiesTextExtractor.java?rev=1898805&r1=1898804&r2=1898805&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ooxml/TestXMLPropertiesTextExtractor.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ooxml/TestXMLPropertiesTextExtractor.java
 Wed Mar  9 20:56:02 2022
@@ -16,11 +16,6 @@
 ==================================================================== */
 package org.apache.poi.ooxml;
 
-import static org.apache.poi.POITestCase.assertContains;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.ooxml.extractor.POIXMLPropertiesTextExtractor;
 import org.apache.poi.ooxml.util.PackageHelper;
@@ -30,6 +25,13 @@ import org.apache.poi.xssf.extractor.XSS
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.junit.jupiter.api.Test;
 
+import static org.apache.poi.POITestCase.assertContains;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 public final class TestXMLPropertiesTextExtractor {
     private static final POIDataSamples _ssSamples = 
POIDataSamples.getSpreadSheetInstance();
     private static final POIDataSamples _slSamples = 
POIDataSamples.getSlideShowInstance();
@@ -102,43 +104,62 @@ public final class TestXMLPropertiesText
 
     @Test
     void testCustom() throws Exception {
-      OPCPackage pkg = OPCPackage.open(
+        OPCPackage pkg = OPCPackage.open(
                 _ssSamples.openResourceAsStream("ExcelWithAttachments.xlsm")
-      );
-      XSSFWorkbook wb = new XSSFWorkbook(pkg);
+        );
+        XSSFWorkbook wb = new XSSFWorkbook(pkg);
 
-      POIXMLPropertiesTextExtractor ext = new 
POIXMLPropertiesTextExtractor(wb);
-      ext.getText();
+        POIXMLPropertiesTextExtractor ext = new 
POIXMLPropertiesTextExtractor(wb);
+        ext.getText();
 
-      // Now check
-      String text = ext.getText();
-      String cText = ext.getCustomPropertiesText();
+        // Now check
+        String text = ext.getText();
+        String cText = ext.getCustomPropertiesText();
 
-      assertContains(text, "description = another value");
-      assertContains(cText, "description = another value");
+        assertContains(text, "description = another value");
+        assertContains(cText, "description = another value");
 
-      ext.close();
+        ext.close();
     }
 
     /**
      * Bug #49386 - some properties, especially
-     *  dates can be null
+     * dates can be null
      */
     @Test
     void testWithSomeNulls() throws Exception {
-      OPCPackage pkg = OPCPackage.open(
-            _slSamples.openResourceAsStream("49386-null_dates.pptx")
-      );
-      XSLFSlideShow sl = new XSLFSlideShow(pkg);
-
-      POIXMLPropertiesTextExtractor ext = new 
POIXMLPropertiesTextExtractor(sl);
-      ext.getText();
-
-      String text = ext.getText();
-      assertFalse(text.contains("Created =")); // With date is null
-      assertContains(text, "CreatedString = "); // Via string is blank
-      assertContains(text, "LastModifiedBy = IT Client Services");
+        try (
+                OPCPackage pkg = OPCPackage.open(
+                        
_slSamples.openResourceAsStream("49386-null_dates.pptx")
+                );
+                XSLFSlideShow sl = new XSLFSlideShow(pkg);
+                POIXMLPropertiesTextExtractor ext = new 
POIXMLPropertiesTextExtractor(sl)
+        ) {
+            String text = ext.getText();
+            assertFalse(text.contains("Created =")); // With date is null
+            assertContains(text, "CreatedString = "); // Via string is blank
+            assertContains(text, "LastModifiedBy = IT Client Services");
+        }
+    }
 
-      ext.close();
+    /**
+     * Bug #65946 - a bug led to Category being added twice
+     */
+    @Test
+    void testCategoryProperty() throws Exception {
+        try (
+                OPCPackage pkg = OPCPackage.open(
+                        _slSamples.openResourceAsStream("rain.pptx")
+                );
+                XSLFSlideShow sl = new XSLFSlideShow(pkg);
+                POIXMLPropertiesTextExtractor ext = new 
POIXMLPropertiesTextExtractor(sl)
+        ) {
+            String text = ext.getText();
+            int idx0 = text.indexOf("Category =");
+            assertNotEquals(-1, idx0);
+            int idx1 = text.indexOf("Category =", idx0 + 1);
+            assertEquals(-1, idx1);
+            assertContains(text, "Category = rain"); // Via string is blank
+        }
     }
 }

Added: poi/trunk/test-data/slideshow/rain.pptx
URL: 
http://svn.apache.org/viewvc/poi/trunk/test-data/slideshow/rain.pptx?rev=1898805&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/trunk/test-data/slideshow/rain.pptx
------------------------------------------------------------------------------
--- svn:mime-type (added)
+++ svn:mime-type Wed Mar  9 20:56:02 2022
@@ -0,0 +1 @@
+application/vnd.openxmlformats-officedocument.presentationml.presentation



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to