sc/qa/unit/subsequent_filters-test.cxx | 37 +++++++++++++++++++++------------ sc/source/ui/view/gridwin.cxx | 2 - svl/qa/unit/svl.cxx | 24 ++++++++++++++++----- svl/source/misc/sharedstring.cxx | 2 - 4 files changed, 44 insertions(+), 21 deletions(-)
New commits: commit 9890d623906cbcc49b3491edf10085be9a99743c Author: Kohei Yoshida <[email protected]> Date: Fri Oct 11 11:33:05 2013 -0400 Fix equality operator for SharedString & write test for it. Change-Id: Ib592ca2fe359293da6c10aa9e1535a91627cfc43 diff --git a/svl/qa/unit/svl.cxx b/svl/qa/unit/svl.cxx index 0ac019b..a34150f 100644 --- a/svl/qa/unit/svl.cxx +++ b/svl/qa/unit/svl.cxx @@ -39,6 +39,7 @@ #include <boost/scoped_ptr.hpp> using namespace ::com::sun::star; +using namespace svl; namespace { @@ -51,15 +52,17 @@ public: virtual void tearDown(); void testNumberFormat(); - void testStringPool(); - void testStringPoolPurge(); + void testSharedString(); + void testSharedStringPool(); + void testSharedStringPoolPurge(); void testFdo60915(); void testI116701(); CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST(testNumberFormat); - CPPUNIT_TEST(testStringPool); - CPPUNIT_TEST(testStringPoolPurge); + CPPUNIT_TEST(testSharedString); + CPPUNIT_TEST(testSharedStringPool); + CPPUNIT_TEST(testSharedStringPoolPurge); CPPUNIT_TEST(testFdo60915); CPPUNIT_TEST(testI116701); CPPUNIT_TEST_SUITE_END(); @@ -278,7 +281,16 @@ void Test::testNumberFormat() } } -void Test::testStringPool() +void Test::testSharedString() +{ + // Use shared string as normal, non-shared string, which is allowed. + SharedString aSS1("Test"), aSS2("Test"); + CPPUNIT_ASSERT_MESSAGE("Equality check should return true.", aSS1 == aSS2); + SharedString aSS3("test"); + CPPUNIT_ASSERT_MESSAGE("Equality check is case sensitive.", aSS1 != aSS3); +} + +void Test::testSharedStringPool() { SvtSysLocale aSysLocale; svl::SharedStringPool aPool(aSysLocale.GetCharClassPtr()); @@ -311,7 +323,7 @@ void Test::testStringPool() CPPUNIT_ASSERT_MESSAGE("These two ID's should be equal.", p1.getDataIgnoreCase() == p2.getDataIgnoreCase()); } -void Test::testStringPoolPurge() +void Test::testSharedStringPoolPurge() { SvtSysLocale aSysLocale; svl::SharedStringPool aPool(aSysLocale.GetCharClassPtr()); diff --git a/svl/source/misc/sharedstring.cxx b/svl/source/misc/sharedstring.cxx index 8389ff8..6a5d395 100644 --- a/svl/source/misc/sharedstring.cxx +++ b/svl/source/misc/sharedstring.cxx @@ -81,7 +81,7 @@ bool SharedString::operator== ( const SharedString& r ) const if (mpData->length != r.mpData->length) return false; - return rtl_ustr_compare_WithLength(mpData->buffer, mpData->length, r.mpData->buffer, r.mpData->length); + return rtl_ustr_reverseCompare_WithLength(mpData->buffer, mpData->length, r.mpData->buffer, r.mpData->length) == 0; } return !r.mpData; commit 7a7a60361df09f713a0b574f0f054d256e4a4146 Author: Kohei Yoshida <[email protected]> Date: Fri Oct 11 11:23:54 2013 -0400 Use OUString & a bit more fine-grained unit test error messages. Change-Id: I6d9ce2afd97d6011eaa93855c49f3d7071db0159 diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx index b69cb08..5c0fb54 100644 --- a/sc/qa/unit/subsequent_filters-test.cxx +++ b/sc/qa/unit/subsequent_filters-test.cxx @@ -1046,16 +1046,18 @@ struct ValDataTestParams { ScValidationMode eValMode; ScConditionMode eCondOp; - String aStrVal1, aStrVal2; + OUString aStrVal1; + OUString aStrVal2; ScDocument* pDocument; ScAddress aPosition; - String aErrorTitle, aErrorMessage; + OUString aErrorTitle; + OUString aErrorMessage; ScValidErrorStyle eErrorStyle; sal_uLong nExpectedIndex; ValDataTestParams( ScValidationMode eMode, ScConditionMode eOp, - String aExpr1, String aExpr2, ScDocument* pDoc, - ScAddress aPos, String aETitle, String aEMsg, + OUString aExpr1, OUString aExpr2, ScDocument* pDoc, + ScAddress aPos, OUString aETitle, OUString aEMsg, ScValidErrorStyle eEStyle, sal_uLong nIndex ): eValMode(eMode), eCondOp(eOp), aStrVal1(aExpr1), aStrVal2(aExpr2), pDocument(pDoc), aPosition(aPos), @@ -1077,7 +1079,7 @@ void checkValiditationEntries( const ValDataTestParams& rVDTParams ) aValData.SetListType( 1 ); aValData.ResetInput(); aValData.SetError( rVDTParams.aErrorTitle, rVDTParams.aErrorMessage, rVDTParams.eErrorStyle ); - aValData.SetSrcString( EMPTY_STRING ); + aValData.SetSrcString( EMPTY_OUSTRING ); //get actual data validation entry from document const ScValidationData* pValDataTest = pDoc->GetValidationEntry( rVDTParams.nExpectedIndex ); @@ -1086,9 +1088,18 @@ void checkValiditationEntries( const ValDataTestParams& rVDTParams ) sal_Int32 nRow( static_cast<sal_Int32>(rVDTParams.aPosition.Row()) ); sal_Int32 nTab( static_cast<sal_Int32>(rVDTParams.aPosition.Tab()) ); OStringBuffer sMsg("Data Validation Entry with base-cell-address: ("); - sMsg.append(nCol).append(",").append(nRow).append(",").append(nTab).append(") was not imported correctly."); + sMsg.append(nCol).append(",").append(nRow).append(",").append(nTab).append(") "); + OString aMsgPrefix = sMsg.makeStringAndClear(); + + OString aMsg = aMsgPrefix + "did not get imported at all."; + CPPUNIT_ASSERT_MESSAGE(aMsg.getStr(), pValDataTest); + //check if expected and actual data validation entries are equal - CPPUNIT_ASSERT_MESSAGE( sMsg.getStr(), pValDataTest && aValData.EqualEntries(*pValDataTest) ); + if (!aValData.EqualEntries(*pValDataTest)) + { + aMsg = aMsgPrefix + "got imported incorrectly."; + CPPUNIT_FAIL(aMsg.getStr()); + } } void checkCellValidity( const ScAddress& rValBaseAddr, const ScRange& rRange, const ScDocument* pDoc ) @@ -1140,16 +1151,16 @@ void ScFiltersTest::testDataValidityODS() //sheet1's expected Data Validation Entry values ValDataTestParams aVDTParams1( - SC_VALID_DECIMAL, SC_COND_GREATER, String("3.14"), EMPTY_STRING, pDoc, - aValBaseAddr1, String("Too small"), - String("The number you are trying to enter is not greater than 3.14! Are you sure you want to enter it anyway?"), + SC_VALID_DECIMAL, SC_COND_GREATER, "3.14", EMPTY_OUSTRING, pDoc, + aValBaseAddr1, "Too small", + "The number you are trying to enter is not greater than 3.14! Are you sure you want to enter it anyway?", SC_VALERR_WARNING, 1 ); //sheet2's expected Data Validation Entry values ValDataTestParams aVDTParams2( - SC_VALID_WHOLE, SC_COND_BETWEEN, String("1"), String("10"), pDoc, - aValBaseAddr2, String("Error sheet 2"), - String("Must be a whole number between 1 and 10."), + SC_VALID_WHOLE, SC_COND_BETWEEN, "1", "10", pDoc, + aValBaseAddr2, "Error sheet 2", + "Must be a whole number between 1 and 10.", SC_VALERR_STOP, 2 ); //check each sheet's Data Validation Entries commit 7902f2e81551065024d897378b4a91fb3f98d461 Author: Kohei Yoshida <[email protected]> Date: Thu Oct 10 23:23:55 2013 -0400 Spell check context can be NULL (when the live spell check is not on). Change-Id: I785f83b5c2c6329b7a18af9f9721c06894207ea5 diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 9ef4359..d4d88e4 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -2979,7 +2979,7 @@ void ScGridWindow::Command( const CommandEvent& rCEvt ) sal_Bool bDone = false; sal_Bool bEdit = pViewData->HasEditView(eWhich); - bool bSpellError = mpSpellCheckCxt->isMisspelled(nCellX, nCellY); + bool bSpellError = (mpSpellCheckCxt && mpSpellCheckCxt->isMisspelled(nCellX, nCellY)); if ( !bEdit ) { _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
