diff options
author | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-11-29 21:08:08 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@collabora.co.uk> | 2014-11-30 00:47:33 +0100 |
commit | e841dd17a4fb9ba558bcbea5cde5ec90061c1313 (patch) | |
tree | 5213da70b248e85d24a5cb594f55d97504abfe24 /sc/qa | |
parent | 1e4fc94c7feff11f28654dcf70cccf77db216143 (diff) |
add test case for fdo#86253
Change-Id: I943351a9050f78ea3495807570c51e0c7782ead3
Diffstat (limited to 'sc/qa')
-rw-r--r-- | sc/qa/unit/ucalc.cxx | 42 | ||||
-rw-r--r-- | sc/qa/unit/ucalc.hxx | 2 |
2 files changed, 44 insertions, 0 deletions
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index 248a0e9bff36..d7d8cdbad2b5 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -5635,6 +5635,48 @@ void Test::testCondCopyPasteSingleCell() m_pDoc->DeleteTab(0); } +void Test::testCondCopyPasteSingleCellToRange() +{ + m_pDoc->InsertTab(0, "Test"); + + ScConditionalFormat* pFormat = new ScConditionalFormat(1, m_pDoc); + ScRange aCondFormatRange(0,0,0,3,3,0); + ScRangeList aRangeList(aCondFormatRange); + pFormat->AddRange(aRangeList); + + ScCondFormatEntry* pEntry = new ScCondFormatEntry(SC_COND_DIRECT,"=B2","",m_pDoc,ScAddress(0,0,0),ScGlobal::GetRscString(STR_STYLENAME_RESULT)); + pFormat->AddEntry(pEntry); + sal_uLong nIndex = m_pDoc->AddCondFormat(pFormat, 0); + + ScDocument aClipDoc(SCDOCMODE_CLIP); + copyToClip(m_pDoc, ScRange(0,0,0,0,0,0), &aClipDoc); + + ScRange aTargetRange(4,4,0,4,8,0); + pasteFromClip(m_pDoc, aTargetRange, &aClipDoc); + + std::set<sal_uLong> aCondFormatIndices; + for(SCROW nRow = 4; nRow <= 8; ++nRow) + { + ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(4, nRow, 0); + CPPUNIT_ASSERT(pPastedFormat); + + CPPUNIT_ASSERT_EQUAL(ScRangeList(ScRange(4, nRow, 0)), pPastedFormat->GetRange()); + sal_uLong nPastedKey = pPastedFormat->GetKey(); + CPPUNIT_ASSERT( nIndex != nPastedKey); + const SfxPoolItem* pItem = m_pDoc->GetAttr( 4, nRow, 0, ATTR_CONDITIONAL ); + const ScCondFormatItem* pCondFormatItem = static_cast<const ScCondFormatItem*>(pItem); + + CPPUNIT_ASSERT(pCondFormatItem); + CPPUNIT_ASSERT_EQUAL(size_t(1), pCondFormatItem->GetCondFormatData().size()); + CPPUNIT_ASSERT( nIndex != pCondFormatItem->GetCondFormatData().at(0) ); + auto itr = aCondFormatIndices.find(nPastedKey); + CPPUNIT_ASSERT(itr == aCondFormatIndices.end()); + aCondFormatIndices.insert(nPastedKey); + } + + m_pDoc->DeleteTab(0); +} + void Test::testCondCopyPasteSheetBetweenDoc() { m_pDoc->InsertTab(0, "Test"); diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx index 21568ed4e5aa..381699882794 100644 --- a/sc/qa/unit/ucalc.hxx +++ b/sc/qa/unit/ucalc.hxx @@ -410,6 +410,7 @@ public: void testCondFormatInsertDeleteSheets(); void testCondCopyPaste(); void testCondCopyPasteSingleCell(); //e.g. fdo#82503 + void testCondCopyPasteSingleCellToRange(); //e.g. fdo#82503 void testCondCopyPasteSheetBetweenDoc(); void testCondCopyPasteSheet(); void testIconSet(); @@ -606,6 +607,7 @@ public: CPPUNIT_TEST(testCondFormatInsertDeleteSheets); CPPUNIT_TEST(testCondCopyPaste); CPPUNIT_TEST(testCondCopyPasteSingleCell); + CPPUNIT_TEST(testCondCopyPasteSingleCellToRange); CPPUNIT_TEST(testCondCopyPasteSheetBetweenDoc); CPPUNIT_TEST(testCondCopyPasteSheet); CPPUNIT_TEST(testIconSet); |