summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-08-16 03:13:38 +0200
committerMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-08-16 03:16:28 +0200
commit17f6f60c1c20782fb1cde69b949b97c2f3b0d830 (patch)
treec806419937204fdb92591e13d590c5a8ad64ebe6 /sc
parent8c9014cc6e5a502f5719f17c111c29448d4d6f6b (diff)
add test case for fdo#82503
Change-Id: I715f8b2c09bd6af2cf1f45029f0561d79817deed
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/unit/ucalc.cxx34
-rw-r--r--sc/qa/unit/ucalc.hxx2
2 files changed, 36 insertions, 0 deletions
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index 20b7ba755290..644f7fb70dc3 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -6864,6 +6864,40 @@ void Test::testCondCopyPaste()
m_pDoc->DeleteTab(0);
}
+void Test::testCondCopyPasteSingleCell()
+{
+ 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,4,0);
+ pasteFromClip(m_pDoc, aTargetRange, &aClipDoc);
+
+ ScConditionalFormat* pPastedFormat = m_pDoc->GetCondFormat(4,4,0);
+ CPPUNIT_ASSERT(pPastedFormat);
+
+ CPPUNIT_ASSERT_EQUAL(ScRangeList(aTargetRange), pPastedFormat->GetRange());
+ CPPUNIT_ASSERT( nIndex != pPastedFormat->GetKey());
+ const SfxPoolItem* pItem = m_pDoc->GetAttr( 4, 4, 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) );
+
+ m_pDoc->DeleteTab(0);
+}
+
void Test::testIconSet()
{
m_pDoc->InsertTab(0, "Test");
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index 80c46bf4de34..5c03a7014acd 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -374,6 +374,7 @@ public:
void testCondFormatInsertCol();
void testCondFormatInsertDeleteSheets();
void testCondCopyPaste();
+ void testCondCopyPasteSingleCell(); //e.g. fdo#82503
void testIconSet();
void testImportStream();
@@ -552,6 +553,7 @@ public:
CPPUNIT_TEST(testCondFormatInsertCol);
CPPUNIT_TEST(testCondFormatInsertDeleteSheets);
CPPUNIT_TEST(testCondCopyPaste);
+ CPPUNIT_TEST(testCondCopyPasteSingleCell);
CPPUNIT_TEST(testIconSet);
CPPUNIT_TEST(testImportStream);
CPPUNIT_TEST(testDeleteContents);