summaryrefslogtreecommitdiff
path: root/sc/qa/unit
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-03-22 08:47:36 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-03-22 08:56:12 +0100
commite05cbcccbaafd42410f347ebc8b4222f59bf88a3 (patch)
treee4ee1cb5e77c1245caac13da2e96f94dd45c0468 /sc/qa/unit
parent6dbea1ccccc99280b066ba0313300aa84966963b (diff)
add export test for color scales
Change-Id: I68ff1309c2769866c0821f7857f13103b8752cb5
Diffstat (limited to 'sc/qa/unit')
-rw-r--r--sc/qa/unit/helper/shared_test_impl.hxx115
-rw-r--r--sc/qa/unit/subsequent_export-test.cxx35
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx102
3 files changed, 151 insertions, 101 deletions
diff --git a/sc/qa/unit/helper/shared_test_impl.hxx b/sc/qa/unit/helper/shared_test_impl.hxx
new file mode 100644
index 000000000000..6874a48abf40
--- /dev/null
+++ b/sc/qa/unit/helper/shared_test_impl.hxx
@@ -0,0 +1,115 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef SC_SHARED_TEST_IMPL_HXX
+#define SC_SHARED_TEST_IMPL_HXX
+
+#include "colorscale.hxx"
+#include "conditio.hxx"
+
+struct FindCondFormatByEnclosingRange
+{
+ FindCondFormatByEnclosingRange(const ScRange& rRange):
+ mrRange(rRange) {}
+
+ bool operator()(const ScConditionalFormat& rFormat)
+ {
+ if(rFormat.GetRange().Combine() == mrRange)
+ return true;
+
+ return false;
+ }
+
+private:
+ const ScRange& mrRange;
+};
+
+struct ColorScale2EntryData
+{
+ ScRange aRange;
+ ScColorScaleEntryType eLowerType;
+ ScColorScaleEntryType eUpperType;
+};
+
+ColorScale2EntryData aData2Entry[] = {
+ { ScRange(1,2,0,1,5,0), COLORSCALE_MIN, COLORSCALE_MAX },
+ { ScRange(3,2,0,3,5,0), COLORSCALE_PERCENTILE, COLORSCALE_PERCENT },
+ { ScRange(5,2,0,5,5,0), COLORSCALE_VALUE, COLORSCALE_FORMULA }
+};
+
+void testColorScale2Entry_Impl(ScDocument* pDoc)
+{
+ const ScConditionalFormatList* pList = pDoc->GetCondFormList(0);
+ CPPUNIT_ASSERT(pList);
+
+ for(size_t i = 0; i < SAL_N_ELEMENTS(aData2Entry); ++i)
+ {
+ ScConditionalFormatList::const_iterator itr = std::find_if(pList->begin(),
+ pList->end(), FindCondFormatByEnclosingRange(aData2Entry[i].aRange));
+ CPPUNIT_ASSERT(itr != pList->end());
+ CPPUNIT_ASSERT_EQUAL(size_t(1), itr->size());
+
+ const ScFormatEntry* pFormatEntry = itr->GetEntry(0);
+ CPPUNIT_ASSERT_EQUAL(pFormatEntry->GetType(), condformat::COLORSCALE);
+ const ScColorScaleFormat* pColFormat = static_cast<const ScColorScaleFormat*>(pFormatEntry);
+ CPPUNIT_ASSERT_EQUAL(size_t(2), pColFormat->size());
+
+ ScColorScaleFormat::const_iterator format_itr = pColFormat->begin();
+ CPPUNIT_ASSERT_EQUAL(aData2Entry[i].eLowerType, format_itr->GetType());
+ ++format_itr;
+ CPPUNIT_ASSERT(format_itr != pColFormat->end());
+ CPPUNIT_ASSERT_EQUAL(aData2Entry[i].eUpperType, format_itr->GetType());
+ }
+}
+
+struct ColorScale3EntryData
+{
+ ScRange aRange;
+ ScColorScaleEntryType eLowerType;
+ ScColorScaleEntryType eMiddleType;
+ ScColorScaleEntryType eUpperType;
+};
+
+ColorScale3EntryData aData3Entry[] = {
+ { ScRange(1,1,1,1,6,1), COLORSCALE_MIN, COLORSCALE_PERCENTILE, COLORSCALE_MAX },
+ { ScRange(3,1,1,3,6,1), COLORSCALE_PERCENTILE, COLORSCALE_VALUE, COLORSCALE_PERCENT },
+ { ScRange(5,1,1,5,6,1), COLORSCALE_VALUE, COLORSCALE_VALUE, COLORSCALE_FORMULA }
+};
+
+void testColorScale3Entry_Impl(ScDocument* pDoc)
+{
+ ScConditionalFormatList* pList = pDoc->GetCondFormList(1);
+ CPPUNIT_ASSERT(pList);
+
+ for(size_t i = 0; i < SAL_N_ELEMENTS(aData3Entry); ++i)
+ {
+ ScConditionalFormatList::const_iterator itr = std::find_if(pList->begin(),
+ pList->end(), FindCondFormatByEnclosingRange(aData3Entry[i].aRange));
+ CPPUNIT_ASSERT(itr != pList->end());
+ CPPUNIT_ASSERT_EQUAL(size_t(1), itr->size());
+
+ const ScFormatEntry* pFormatEntry = itr->GetEntry(0);
+ CPPUNIT_ASSERT_EQUAL(pFormatEntry->GetType(), condformat::COLORSCALE);
+ const ScColorScaleFormat* pColFormat = static_cast<const ScColorScaleFormat*>(pFormatEntry);
+ CPPUNIT_ASSERT_EQUAL(size_t(3), pColFormat->size());
+
+ ScColorScaleFormat::const_iterator format_itr = pColFormat->begin();
+ CPPUNIT_ASSERT_EQUAL(aData3Entry[i].eLowerType, format_itr->GetType());
+ ++format_itr;
+ CPPUNIT_ASSERT(format_itr != pColFormat->end());
+ CPPUNIT_ASSERT_EQUAL(aData3Entry[i].eMiddleType, format_itr->GetType());
+ ++format_itr;
+ CPPUNIT_ASSERT(format_itr != pColFormat->end());
+ CPPUNIT_ASSERT_EQUAL(aData3Entry[i].eUpperType, format_itr->GetType());
+ }
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index 343aa2470dfb..aa0c1ed8c5ce 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -21,6 +21,7 @@
#define CALC_DEBUG_OUTPUT 0
#include "helper/qahelper.hxx"
+#include "helper/shared_test_impl.hxx"
#include "docsh.hxx"
#include "postit.hxx"
@@ -45,6 +46,8 @@ public:
void test();
void testPasswordExport();
void testConditionalFormatExportXLSX();
+ void testColorScaleExportODS();
+ void testColorScaleExportXLSX();
void testMiscRowHeightExport();
CPPUNIT_TEST_SUITE(ScExportTest);
@@ -53,6 +56,8 @@ public:
CPPUNIT_TEST(testPasswordExport);
#endif
CPPUNIT_TEST(testConditionalFormatExportXLSX);
+ CPPUNIT_TEST(testColorScaleExportODS);
+ CPPUNIT_TEST(testColorScaleExportXLSX);
CPPUNIT_TEST(testMiscRowHeightExport);
CPPUNIT_TEST_SUITE_END();
@@ -157,6 +162,36 @@ void ScExportTest::testConditionalFormatExportXLSX()
testCondFile(aCSVPath, pDoc, 0);
}
+void ScExportTest::testColorScaleExportODS()
+{
+ ScDocShellRef xShell = loadDoc("colorscale.", ODS);
+ CPPUNIT_ASSERT(xShell.Is());
+
+ ScDocShellRef xDocSh = saveAndReload(xShell, ODS);
+ CPPUNIT_ASSERT(xDocSh.Is());
+
+ ScDocument* pDoc = xDocSh->GetDocument();
+ CPPUNIT_ASSERT(pDoc);
+
+ testColorScale2Entry_Impl(pDoc);
+ testColorScale3Entry_Impl(pDoc);
+}
+
+void ScExportTest::testColorScaleExportXLSX()
+{
+ ScDocShellRef xShell = loadDoc("colorscale.", XLSX);
+ CPPUNIT_ASSERT(xShell.Is());
+
+ ScDocShellRef xDocSh = saveAndReload(xShell, XLSX);
+ CPPUNIT_ASSERT(xDocSh.Is());
+
+ ScDocument* pDoc = xDocSh->GetDocument();
+ CPPUNIT_ASSERT(pDoc);
+
+ testColorScale2Entry_Impl(pDoc);
+ testColorScale3Entry_Impl(pDoc);
+}
+
void ScExportTest::testMiscRowHeightExport()
{
TestParam::RowData DfltRowData[] =
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index dea8c8528c61..5a417f8bb218 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -75,6 +75,7 @@
#define TEST_BUG_FILES 0
#include "helper/qahelper.hxx"
+#include "helper/shared_test_impl.hxx"
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -1733,23 +1734,6 @@ void ScFiltersTest::testRichTextContentODS()
namespace {
-struct FindCondFormatByEnclosingRange
-{
- FindCondFormatByEnclosingRange(const ScRange& rRange):
- mrRange(rRange) {}
-
- bool operator()(const ScConditionalFormat& rFormat)
- {
- if(rFormat.GetRange().Combine() == mrRange)
- return true;
-
- return false;
- }
-
-private:
- const ScRange& mrRange;
-};
-
struct DataBarData
{
ScRange aRange;
@@ -1812,90 +1796,6 @@ void ScFiltersTest::testDataBarXLSX()
testDataBar_Impl(pDoc);
}
-namespace {
-
-struct ColorScale2EntryData
-{
- ScRange aRange;
- ScColorScaleEntryType eLowerType;
- ScColorScaleEntryType eUpperType;
-};
-
-ColorScale2EntryData aData2Entry[] = {
- { ScRange(1,2,0,1,5,0), COLORSCALE_MIN, COLORSCALE_MAX },
- { ScRange(3,2,0,3,5,0), COLORSCALE_PERCENTILE, COLORSCALE_PERCENT },
- { ScRange(5,2,0,5,5,0), COLORSCALE_VALUE, COLORSCALE_FORMULA }
-};
-
-void testColorScale2Entry_Impl(ScDocument* pDoc)
-{
- const ScConditionalFormatList* pList = pDoc->GetCondFormList(0);
- CPPUNIT_ASSERT(pList);
-
- for(size_t i = 0; i < SAL_N_ELEMENTS(aData2Entry); ++i)
- {
- ScConditionalFormatList::const_iterator itr = std::find_if(pList->begin(),
- pList->end(), FindCondFormatByEnclosingRange(aData2Entry[i].aRange));
- CPPUNIT_ASSERT(itr != pList->end());
- CPPUNIT_ASSERT_EQUAL(size_t(1), itr->size());
-
- const ScFormatEntry* pFormatEntry = itr->GetEntry(0);
- CPPUNIT_ASSERT_EQUAL(pFormatEntry->GetType(), condformat::COLORSCALE);
- const ScColorScaleFormat* pColFormat = static_cast<const ScColorScaleFormat*>(pFormatEntry);
- CPPUNIT_ASSERT_EQUAL(size_t(2), pColFormat->size());
-
- ScColorScaleFormat::const_iterator format_itr = pColFormat->begin();
- CPPUNIT_ASSERT_EQUAL(aData2Entry[i].eLowerType, format_itr->GetType());
- ++format_itr;
- CPPUNIT_ASSERT(format_itr != pColFormat->end());
- CPPUNIT_ASSERT_EQUAL(aData2Entry[i].eUpperType, format_itr->GetType());
- }
-}
-
-struct ColorScale3EntryData
-{
- ScRange aRange;
- ScColorScaleEntryType eLowerType;
- ScColorScaleEntryType eMiddleType;
- ScColorScaleEntryType eUpperType;
-};
-
-ColorScale3EntryData aData3Entry[] = {
- { ScRange(1,1,1,1,6,1), COLORSCALE_MIN, COLORSCALE_PERCENTILE, COLORSCALE_MAX },
- { ScRange(3,1,1,3,6,1), COLORSCALE_PERCENTILE, COLORSCALE_VALUE, COLORSCALE_PERCENT },
- { ScRange(5,1,1,5,6,1), COLORSCALE_VALUE, COLORSCALE_VALUE, COLORSCALE_FORMULA }
-};
-
-void testColorScale3Entry_Impl(ScDocument* pDoc)
-{
- ScConditionalFormatList* pList = pDoc->GetCondFormList(1);
- CPPUNIT_ASSERT(pList);
-
- for(size_t i = 0; i < SAL_N_ELEMENTS(aData3Entry); ++i)
- {
- ScConditionalFormatList::const_iterator itr = std::find_if(pList->begin(),
- pList->end(), FindCondFormatByEnclosingRange(aData3Entry[i].aRange));
- CPPUNIT_ASSERT(itr != pList->end());
- CPPUNIT_ASSERT_EQUAL(size_t(1), itr->size());
-
- const ScFormatEntry* pFormatEntry = itr->GetEntry(0);
- CPPUNIT_ASSERT_EQUAL(pFormatEntry->GetType(), condformat::COLORSCALE);
- const ScColorScaleFormat* pColFormat = static_cast<const ScColorScaleFormat*>(pFormatEntry);
- CPPUNIT_ASSERT_EQUAL(size_t(3), pColFormat->size());
-
- ScColorScaleFormat::const_iterator format_itr = pColFormat->begin();
- CPPUNIT_ASSERT_EQUAL(aData3Entry[i].eLowerType, format_itr->GetType());
- ++format_itr;
- CPPUNIT_ASSERT(format_itr != pColFormat->end());
- CPPUNIT_ASSERT_EQUAL(aData3Entry[i].eMiddleType, format_itr->GetType());
- ++format_itr;
- CPPUNIT_ASSERT(format_itr != pColFormat->end());
- CPPUNIT_ASSERT_EQUAL(aData3Entry[i].eUpperType, format_itr->GetType());
- }
-}
-
-}
-
void ScFiltersTest::testColorScaleODS()
{
ScDocShellRef xDocSh = loadDoc("colorscale.", ODS);