sc/inc/colorscale.hxx | 8 +- sc/inc/conditio.hxx | 6 - sc/qa/unit/data/ods/colorScale.ods |binary sc/qa/unit/data/xlsx/colorScale.xlsx |binary sc/qa/unit/subsequent_filters-test.cxx | 119 ++++++++++++++++++++++++++------- sc/source/core/data/colorscale.cxx | 54 +++++++++++++- sc/source/core/data/conditio.cxx | 4 - 7 files changed, 156 insertions(+), 35 deletions(-)
New commits: commit 0222ce3cc6bdf4f6927139347ef5506a869eb977 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Sep 23 20:06:18 2012 +0200 add color scale import test for xlsx Change-Id: I8877d285be21ea4cd010cb532de593b3f5ab5975 diff --git a/sc/qa/unit/data/xlsx/colorScale.xlsx b/sc/qa/unit/data/xlsx/colorScale.xlsx new file mode 100644 index 0000000..33234ee Binary files /dev/null and b/sc/qa/unit/data/xlsx/colorScale.xlsx differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index 6a2267a..8670345 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -142,6 +142,7 @@ public: void testDataValidityODS(); void testColorScaleODS(); + void testColorScaleXLSX(); void testDataBarODS(); void testNewCondFormat(); @@ -194,6 +195,7 @@ public: CPPUNIT_TEST(testControlImport); CPPUNIT_TEST(testColorScaleODS); + CPPUNIT_TEST(testColorScaleXLSX); CPPUNIT_TEST(testDataBarODS); CPPUNIT_TEST(testNewCondFormat); @@ -1568,6 +1570,26 @@ void ScFiltersTest::testColorScaleODS() testColorScale_Impl(pDoc, aBuffer.makeStringAndClear()); } +void ScFiltersTest::testColorScaleXLSX() +{ + const rtl::OUString aFileNameBase(RTL_CONSTASCII_USTRINGPARAM("colorScale.")); + rtl::OUString aFileExtension(aFileFormats[XLSX].pName, strlen(aFileFormats[XLSX].pName), RTL_TEXTENCODING_UTF8 ); + rtl::OUString aFilterName(aFileFormats[XLSX].pFilterName, strlen(aFileFormats[XLSX].pFilterName), RTL_TEXTENCODING_UTF8) ; + rtl::OUString aFileName; + createFileURL(aFileNameBase, aFileExtension, aFileName); + rtl::OUString aFilterType(aFileFormats[XLSX].pTypeName, strlen(aFileFormats[XLSX].pTypeName), RTL_TEXTENCODING_UTF8); + std::cout << aFileFormats[XLSX].pName << " Test" << std::endl; + ScDocShellRef xDocSh = load (aFilterName, aFileName, rtl::OUString(), aFilterType, aFileFormats[XLSX].nFormatType); + + CPPUNIT_ASSERT_MESSAGE("Failed to load colorScale.xlsx", xDocSh.Is()); + + ScDocument* pDoc = xDocSh->GetDocument(); + + rtl::OUStringBuffer aBuffer(getSrcRootPath()); + aBuffer.append(m_aBaseString).append(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/reference/"))); + testColorScale_Impl(pDoc, aBuffer.makeStringAndClear()); +} + void ScFiltersTest::testDataBarODS() { commit cb3ab592fd462bdd877178c6f0f0b7638938f0ce Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Sep 23 19:57:11 2012 +0200 improve the color Scale test Change-Id: I6004874b83adbc602dcad83192cf68607bee5a96 diff --git a/sc/qa/unit/data/ods/colorScale.ods b/sc/qa/unit/data/ods/colorScale.ods index 1c3fe6e..1e1f457 100644 Binary files a/sc/qa/unit/data/ods/colorScale.ods and b/sc/qa/unit/data/ods/colorScale.ods differ diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index d48c455..6a2267a 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -141,9 +141,9 @@ public: void testRepeatedColumnsODS(); void testDataValidityODS(); - void testColorScale(); - void testDataBar(); - void testCondFormat(); + void testColorScaleODS(); + void testDataBarODS(); + void testNewCondFormat(); //change this test file only in excel and not in calc void testSharedFormulaXLSX(); @@ -193,9 +193,9 @@ public: CPPUNIT_TEST(testCellValueXLSX); CPPUNIT_TEST(testControlImport); - CPPUNIT_TEST(testColorScale); - CPPUNIT_TEST(testDataBar); - CPPUNIT_TEST(testCondFormat); + CPPUNIT_TEST(testColorScaleODS); + CPPUNIT_TEST(testDataBarODS); + CPPUNIT_TEST(testNewCondFormat); CPPUNIT_TEST(testNumberFormatHTML); CPPUNIT_TEST(testNumberFormatCSV); @@ -1485,7 +1485,70 @@ void ScFiltersTest::testPivotTableBasicODS() xDocSh->DoClose(); } -void ScFiltersTest::testColorScale() +namespace { + +void testColorScale_Impl(ScDocument* pDoc, const rtl::OUString& aBaseString) +{ + // first color scale + { + rtl::OUStringBuffer aBuf; + const ScConditionalFormat* pFormat = pDoc->GetCondFormat(1,1,0); + CPPUNIT_ASSERT(pFormat); + pFormat->dumpInfo(aBuf); + rtl::OUString aString = aBuf.makeStringAndClear(); + rtl::OUString aFilePath = aBaseString + rtl::OUString("colorScale_1.txt"); + std::string aStdString; + loadFile(aFilePath, aStdString); + rtl::OUString aRefString = rtl::OUString::createFromAscii(aStdString.c_str()); + CPPUNIT_ASSERT_EQUAL(aRefString, aString); + } + + // second cond format + { + rtl::OUStringBuffer aBuf; + const ScConditionalFormat* pFormat = pDoc->GetCondFormat(4,1,0); + CPPUNIT_ASSERT(pFormat); + pFormat->dumpInfo(aBuf); + rtl::OUString aString = aBuf.makeStringAndClear(); + rtl::OUString aFilePath = aBaseString + rtl::OUString("colorScale_2.txt"); + std::string aStdString; + loadFile(aFilePath, aStdString); + rtl::OUString aRefString = rtl::OUString::createFromAscii(aStdString.c_str()); + CPPUNIT_ASSERT_EQUAL(aRefString, aString); + } + + // third cond format + { + rtl::OUStringBuffer aBuf; + const ScConditionalFormat* pFormat = pDoc->GetCondFormat(7,1,0); + CPPUNIT_ASSERT(pFormat); + pFormat->dumpInfo(aBuf); + rtl::OUString aString = aBuf.makeStringAndClear(); + rtl::OUString aFilePath = aBaseString + rtl::OUString("colorScale_3.txt"); + std::string aStdString; + loadFile(aFilePath, aStdString); + rtl::OUString aRefString = rtl::OUString::createFromAscii(aStdString.c_str()); + CPPUNIT_ASSERT_EQUAL(aRefString, aString); + } + + // forth cond format + { + rtl::OUStringBuffer aBuf; + const ScConditionalFormat* pFormat = pDoc->GetCondFormat(10,1,0); + CPPUNIT_ASSERT(pFormat); + pFormat->dumpInfo(aBuf); + rtl::OUString aString = aBuf.makeStringAndClear(); + rtl::OUString aFilePath = aBaseString + rtl::OUString("colorScale_4.txt"); + std::string aStdString; + loadFile(aFilePath, aStdString); + rtl::OUString aRefString = rtl::OUString::createFromAscii(aStdString.c_str()); + CPPUNIT_ASSERT_EQUAL(aRefString, aString); + } +} + +} + +void ScFiltersTest::testColorScaleODS() { const rtl::OUString aFileNameBase(RTL_CONSTASCII_USTRINGPARAM("colorScale.")); rtl::OUString aFileExtension(aFileFormats[ODS].pName, strlen(aFileFormats[ODS].pName), RTL_TEXTENCODING_UTF8 ); @@ -1500,27 +1563,17 @@ void ScFiltersTest::testColorScale() ScDocument* pDoc = xDocSh->GetDocument(); - const ScPatternAttr* pPattern = pDoc->GetPattern(1,1,0); - sal_uLong nIndex = static_cast<const SfxUInt32Item&>(pPattern->GetItem(ATTR_CONDITIONAL)).GetValue(); - CPPUNIT_ASSERT(nIndex); - ScConditionalFormatList* pCondFormatList = pDoc->GetCondFormList(0); - const ScConditionalFormat* pFormat = pCondFormatList->GetFormat(nIndex); - CPPUNIT_ASSERT(pFormat); - pFormat->dumpInfo(); - - pPattern = pDoc->GetPattern(1,5,0); - nIndex = static_cast<const SfxUInt32Item&>(pPattern->GetItem(ATTR_CONDITIONAL)).GetValue(); - CPPUNIT_ASSERT(nIndex); - pFormat = pCondFormatList->GetFormat(nIndex); - CPPUNIT_ASSERT(pFormat); + rtl::OUStringBuffer aBuffer(getSrcRootPath()); + aBuffer.append(m_aBaseString).append(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/reference/"))); + testColorScale_Impl(pDoc, aBuffer.makeStringAndClear()); } -void ScFiltersTest::testDataBar() +void ScFiltersTest::testDataBarODS() { } -void ScFiltersTest::testCondFormat() +void ScFiltersTest::testNewCondFormat() { } commit b3d5de767c6dbd30ded0881da9de8ae9638abb54 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Sun Sep 23 19:51:02 2012 +0200 improve the dump code for cond formats Change-Id: Icefaa4777f64ca934928ae2ad95496000df364e9 diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx index db13e92..df3e17a 100644 --- a/sc/inc/colorscale.hxx +++ b/sc/inc/colorscale.hxx @@ -86,6 +86,10 @@ public: ScColorScaleEntryType GetType() const; void SetType( ScColorScaleEntryType eType ); + +#if DUMP_FORMAT_INFO + void dumpInfo(rtl::OUStringBuffer& rBuf) const; +#endif }; namespace databar @@ -228,7 +232,7 @@ public: size_t size() const; #if DUMP_FORMAT_INFO - virtual void dumpInfo() const; + virtual void dumpInfo(rtl::OUStringBuffer& rBuf) const; #endif }; @@ -252,7 +256,7 @@ public: virtual condformat::ScFormatEntryType GetType() const; #if DUMP_FORMAT_INFO - virtual void dumpInfo() const; + virtual void dumpInfo(rtl::OUStringBuffer& rBuf) const; #endif private: double getMin(double nMin, double nMax) const; diff --git a/sc/inc/conditio.hxx b/sc/inc/conditio.hxx index b4f686e..7b1cf17 100644 --- a/sc/inc/conditio.hxx +++ b/sc/inc/conditio.hxx @@ -114,7 +114,7 @@ public: bool operator==( const ScFormatEntry& ) const; #if DUMP_FORMAT_INFO - virtual void dumpInfo() const = 0; + virtual void dumpInfo(rtl::OUStringBuffer& rBuf) const = 0; #endif protected: ScDocument* mpDoc; @@ -213,7 +213,7 @@ public: static ScConditionMode GetModeFromApi(sal_Int32 nOperator); #if DUMP_FORMAT_INFO - virtual void dumpInfo() const {} + virtual void dumpInfo(rtl::OUStringBuffer& ) const {} #endif protected: @@ -319,7 +319,7 @@ public: bool MarkUsedExternalReferences() const; #if DUMP_FORMAT_INFO - void dumpInfo() const; + void dumpInfo(rtl::OUStringBuffer& rBuf) const; #endif // sorted (via PTRARR) by Index diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index 1303e01..4ca1bc7 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -147,6 +147,44 @@ void ScColorScaleEntry::SetColor(const Color& rColor) maColor = rColor; } +#if DUMP_FORMAT_INFO + +void ScColorScaleEntry::dumpInfo(rtl::OUStringBuffer& rBuf) const +{ + rBuf.append("Color Scale Entry\n"); + rBuf.append("Type: "); + switch(meType) + { + case COLORSCALE_VALUE: + rBuf.append( "Value\n" ); + break; + case COLORSCALE_MIN: + rBuf.append( "Min\n" ); + break; + case COLORSCALE_MAX: + rBuf.append( "Max\n" ); + break; + case COLORSCALE_PERCENT: + rBuf.append( "Percent\n" ); + break; + case COLORSCALE_PERCENTILE: + rBuf.append( "Percentile\n" ); + break; + case COLORSCALE_FORMULA: + rBuf.append( "Formual\n" ); + break; + default: + rBuf.append( "Unsupported Type\n" ); + } + rBuf.append( "Color: " ).append( (int)maColor.GetRed() ).append( "," ).append( (int)maColor.GetGreen() ).append( "," ).append( (int)maColor.GetBlue() ).append( "\n" ); + if(meType == COLORSCALE_FORMULA) + rBuf.append( "Formula: " ).append( GetFormula( formula::FormulaGrammar::GRAM_DEFAULT ) ).append("\n"); + else if( meType != COLORSCALE_MIN && meType != COLORSCALE_MAX ) + rBuf.append( "Value: " ).append( mnVal ).append( "\n" ); +} + +#endif + ScColorFormat::ScColorFormat(ScDocument* pDoc): ScFormatEntry(pDoc) { @@ -491,9 +529,14 @@ Color* ScColorScaleFormat::GetColor( const ScAddress& rAddr ) const } #if DUMP_FORMAT_INFO -void ScColorScaleFormat::dumpInfo() const +void ScColorScaleFormat::dumpInfo(rtl::OUStringBuffer& rBuf) const { - std::cout << "Color Scale" << std::endl; + rBuf.append("Color Scale with ").append(static_cast<sal_Int32>(size())).append(" entries\n"); + for(const_iterator itr = begin(); itr != end(); ++itr) + { + itr->dumpInfo(rBuf); + } + const ScRangeList& rRange = GetRange(); size_t n = rRange.size(); for(size_t i = 0; i < n; ++i) @@ -505,9 +548,8 @@ void ScColorScaleFormat::dumpInfo() const for( SCROW nRow = pRange->aStart.Row(), nEndRow = pRange->aEnd.Row(); nRow <= nEndRow; ++nRow) { boost::scoped_ptr<Color> pColor( GetColor(ScAddress(nCol, nRow, nTab)) ); - std::cout << nCol << "," << nRow << "," << nTab << ","; - std::cout << ((int)pColor->GetRed()) << "," << ((int)pColor->GetGreen()) << "," << ((int)pColor->GetBlue()); - std::cout << std::endl; + rBuf.append(nCol).append(",").append(nRow).append(",").append(nTab).append(","); + rBuf.append(((int)pColor->GetRed())).append(",").append(((int)pColor->GetGreen())).append(",").append(((int)pColor->GetBlue())).append("\n"); } } } @@ -852,7 +894,7 @@ ScDataBarInfo* ScDataBarFormat::GetDataBarInfo(const ScAddress& rAddr) const } #if DUMP_FORMAT_INFO -void ScDataBarFormat::dumpInfo() const +void ScDataBarFormat::dumpInfo(rtl::OUStringBuffer& rBuf) const { const ScRangeList& rRange = GetRange(); size_t n = rRange.size(); diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index 7f0c2d9..c8e2dbc 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -1457,11 +1457,11 @@ ScCondFormatData ScConditionalFormat::GetData( ScBaseCell* pCell, const ScAddres #if DUMP_FORMAT_INFO -void ScConditionalFormat::dumpInfo() const +void ScConditionalFormat::dumpInfo(rtl::OUStringBuffer& rBuf) const { for(CondFormatContainer::const_iterator itr = maEntries.begin(); itr != maEntries.end(); ++itr) { - itr->dumpInfo(); + itr->dumpInfo(rBuf); } } #endif _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits