From ad439ded005cffd525ffe874f535fca7a4da1f49 Mon Sep 17 00:00:00 2001
From: Tamás Zolnai <tamas.zolnai@collabora.com>
Date: Fri, 6 Oct 2017 20:35:54 +0200
Subject: tdf#112946: Pivot table: Missing selector for a row field after RT in
 Calc
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We need to explicitly set compact flags to false, since true is
the default. It seems MSO prefers compact mode, when the file
contains colliding mode flags.

Change-Id: Ib311f1cf44345be294e6c6607c227c2baa0fb693
Reviewed-on: https://gerrit.libreoffice.org/43210
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
---
 sc/qa/unit/data/xlsx/pivottable_outline_mode.xlsx | Bin 0 -> 12178 bytes
 sc/qa/unit/subsequent_export-test.cxx             |  19 +++++++++++++++++++
 2 files changed, 19 insertions(+)
 create mode 100755 sc/qa/unit/data/xlsx/pivottable_outline_mode.xlsx

(limited to 'sc/qa/unit')

diff --git a/sc/qa/unit/data/xlsx/pivottable_outline_mode.xlsx b/sc/qa/unit/data/xlsx/pivottable_outline_mode.xlsx
new file mode 100755
index 000000000000..6b575c0af7b3
Binary files /dev/null and b/sc/qa/unit/data/xlsx/pivottable_outline_mode.xlsx differ
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index d0596bdf06ef..21837ff11152 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -226,6 +226,7 @@ public:
     void testPivotTableBoolFieldFilterXLSX();
     void testPivotTableRowColPageFieldFilterXLSX();
     void testPivotTableErrorItemFilterXLSX();
+    void testPivotTableOutlineModeXLSX();
 
     CPPUNIT_TEST_SUITE(ScExportTest);
     CPPUNIT_TEST(test);
@@ -346,6 +347,7 @@ public:
     CPPUNIT_TEST(testPivotTableBoolFieldFilterXLSX);
     CPPUNIT_TEST(testPivotTableRowColPageFieldFilterXLSX);
     CPPUNIT_TEST(testPivotTableErrorItemFilterXLSX);
+    CPPUNIT_TEST(testPivotTableOutlineModeXLSX);
 
     CPPUNIT_TEST_SUITE_END();
 
@@ -5251,6 +5253,23 @@ void ScExportTest::testPivotTableErrorItemFilterXLSX()
     xDocSh->DoClose();
 }
 
+void ScExportTest::testPivotTableOutlineModeXLSX()
+{
+    ScDocShellRef xShell = loadDoc("pivottable_outline_mode.", FORMAT_XLSX);
+    CPPUNIT_ASSERT(xShell.is());
+
+    std::shared_ptr<utl::TempFile> pXPathFile = ScBootstrapFixture::exportTo(&(*xShell), FORMAT_XLSX);
+    xmlDocPtr pTable = XPathHelper::parseExport(pXPathFile, m_xSFactory, "xl/pivotTables/pivotTable1.xml");
+    CPPUNIT_ASSERT(pTable);
+
+    // Next to the outline flags, compact flags also should be set (true is the default)
+    assertXPath(pTable, "/x:pivotTableDefinition", "outline", "1");
+    assertXPath(pTable, "/x:pivotTableDefinition", "outlineData", "1");
+    assertXPath(pTable, "/x:pivotTableDefinition", "compact", "0");
+    assertXPath(pTable, "/x:pivotTableDefinition", "compactData", "0");
+    assertXPath(pTable, "/x:pivotTableDefinition/x:pivotFields/x:pivotField[1]", "compact", "0");
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(ScExportTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
-- 
cgit