[Libreoffice-commits] .: sc/qa

Kohei Yoshida kohei at kemper.freedesktop.org
Thu Mar 22 20:15:38 PDT 2012


 sc/qa/unit/ucalc.cxx |  102 ++++++++++++++++++++++++---------------------------
 1 file changed, 49 insertions(+), 53 deletions(-)

New commits:
commit e4380ae1e7d5330e26f4a382f3a86a6059b9b53f
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Thu Mar 22 23:15:07 2012 -0400

    Test for changing dimension member visibility & a little cleanup.

diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index cb6ab44..965424f 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -1297,6 +1297,17 @@ ScDPObject* createDPFromRange(
     return createDPFromSourceDesc(pDoc, aSheetDesc, aFields, nFieldCount, bFilterButton);
 }
 
+ScRange refresh(ScDPObject* pDPObj)
+{
+    bool bOverFlow = false;
+    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
+    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
+
+    pDPObj->Output(aOutRange.aStart);
+    aOutRange = pDPObj->GetOutRange();
+    return aOutRange;
+}
+
 ScRange refreshGroups(ScDPCollection* pDPs, ScDPObject* pDPObj)
 {
     // We need to first create group data in the cache, then the group data in
@@ -1307,13 +1318,7 @@ ScRange refreshGroups(ScDPCollection* pDPs, ScDPObject* pDPObj)
     CPPUNIT_ASSERT_MESSAGE("There should be only one table linked to this cache.", aRefs.size() == 1);
     pDPObj->ReloadGroupTableData();
 
-    bool bOverFlow = false;
-    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
-    return aOutRange;
+    return refresh(pDPObj);
 }
 
 class AutoCalcSwitch
@@ -1554,13 +1559,7 @@ void Test::testPivotTableLabels()
                            pDPs->GetCount() == 1);
     pDPObj->SetName(pDPs->CreateNewName());
 
-    bool bOverFlow = false;
-    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
-
+    ScRange aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][5] = {
@@ -1616,13 +1615,7 @@ void Test::testPivotTableDateLabels()
                            pDPs->GetCount() == 1);
     pDPObj->SetName(pDPs->CreateNewName());
 
-    bool bOverFlow = false;
-    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
-
+    ScRange aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][5] = {
@@ -1705,12 +1698,7 @@ void Test::testPivotTableFilters()
                            pDPs->GetCount() == 1);
     pDPObj->SetName(pDPs->CreateNewName());
 
-    bool bOverFlow = false;
-    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
+    ScRange aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][2] = {
@@ -1743,8 +1731,7 @@ void Test::testPivotTableFilters()
     OUString aPage(RTL_CONSTASCII_USTRINGPARAM("A"));
     pDim->SetCurrentPage(&aPage);
     pDPObj->SetSaveData(aSaveData);
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
+    aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][2] = {
@@ -1773,8 +1760,7 @@ void Test::testPivotTableFilters()
     rEntry.GetQueryItem().mfVal = 1;
     aDesc.SetQueryParam(aQueryParam);
     pDPObj->SetSheetDesc(aDesc);
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
+    aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][2] = {
@@ -1852,12 +1838,7 @@ void Test::testPivotTableNamedSource()
                            pDPs->GetCount() == 1);
     pDPObj->SetName(pDPs->CreateNewName());
 
-    bool bOverFlow = false;
-    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
+    ScRange aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][5] = {
@@ -2111,12 +2092,7 @@ void Test::testPivotTableDuplicateDataFields()
                            pDPs->GetCount() == 1);
     pDPObj->SetName(pDPs->CreateNewName());
 
-    bool bOverFlow = false;
-    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
+    ScRange aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][3] = {
@@ -2142,10 +2118,7 @@ void Test::testPivotTableDuplicateDataFields()
     pDPObj->SetSaveData(*pSaveData);
 
     // Refresh the table output.
-    aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
+    aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][3] = {
@@ -2212,12 +2185,7 @@ void Test::testPivotTableNormalGrouping()
                            pDPs->GetCount() == 1);
     pDPObj->SetName(pDPs->CreateNewName());
 
-    bool bOverFlow = false;
-    ScRange aOutRange = pDPObj->GetNewOutputRange(bOverFlow);
-    CPPUNIT_ASSERT_MESSAGE("Table overflow!?", !bOverFlow);
-
-    pDPObj->Output(aOutRange.aStart);
-    aOutRange = pDPObj->GetOutRange();
+    ScRange aOutRange = refresh(pDPObj);
     {
         // Expected output table content.  0 = empty cell
         const char* aOutputCheck[][2] = {
@@ -2533,6 +2501,34 @@ void Test::testPivotTableDateGrouping()
         CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
     }
 
+    {
+        // Let's hide year 2012.
+        pSaveData = pDPObj->GetSaveData();
+        ScDPSaveDimension* pDim = pSaveData->GetDimensionByName(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Years")));
+        CPPUNIT_ASSERT_MESSAGE("Years dimension should exist.", pDim);
+        ScDPSaveMember* pMem = pDim->GetMemberByName(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2012")));
+        CPPUNIT_ASSERT_MESSAGE("Member should exist.", pMem);
+        pMem->SetIsVisible(false);
+    }
+    pDPObj->SetSaveData(*pSaveData);
+    pDPObj->ReloadGroupTableData();
+    pDPObj->InvalidateData();
+
+    aOutRange = refresh(pDPObj);
+    {
+        // Expected output table content.  0 = empty cell
+        const char* aOutputCheck[][4] = {
+            { "Years", "Quarters", "Date", 0 },
+            { "2011", "Q1", "Jan", "1" },
+            { 0, 0,         "Mar", "2" },
+            { 0,      "Q3", "Sep", "7" },
+            { "Total Result", 0, 0, "10" },
+        };
+
+        bSuccess = checkDPTableOutput<4>(m_pDoc, aOutRange, aOutputCheck, "Year 2012 data now hidden");
+        CPPUNIT_ASSERT_MESSAGE("Table output check failed", bSuccess);
+    }
+
     pDPs->FreeTable(pDPObj);
     CPPUNIT_ASSERT_MESSAGE("There should be no more tables.", pDPs->GetCount() == 0);
     CPPUNIT_ASSERT_MESSAGE("There shouldn't be any more cache stored.",


More information about the Libreoffice-commits mailing list