count notes - GetNotesInRange now include last tab
- refactor tests - add unit test on counting notes on a sheet Change-Id: I6762a0e791a745b828800645effdfc044ac33710 Reviewed-on: https://gerrit.libreoffice.org/6954 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
This commit is contained in:
parent
c2f5e09900
commit
f992400f6f
5 changed files with 34 additions and 9 deletions
|
@ -20,11 +20,12 @@ public:
|
|||
// XSheetAnnotations
|
||||
void testInsertNew();
|
||||
void testRemoveByIndex();
|
||||
void testCount();
|
||||
|
||||
protected:
|
||||
~XSheetAnnotations() {}
|
||||
|
||||
virtual css::uno::Reference< css::sheet::XSheetAnnotations> getAnnotations() = 0;
|
||||
virtual css::uno::Reference< css::sheet::XSheetAnnotations> getAnnotations(long nIndex) = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ using namespace css::uno;
|
|||
|
||||
namespace sc_apitest {
|
||||
|
||||
#define NUMBER_OF_TESTS 2
|
||||
#define NUMBER_OF_TESTS 3
|
||||
|
||||
class ScAnnontationsObj : public CalcUnoApiTest, apitest::XSheetAnnotations
|
||||
{
|
||||
|
@ -31,11 +31,12 @@ public:
|
|||
virtual void tearDown();
|
||||
|
||||
virtual uno::Reference< uno::XInterface > init();
|
||||
virtual uno::Reference< sheet::XSheetAnnotations> getAnnotations();
|
||||
virtual uno::Reference< sheet::XSheetAnnotations > getAnnotations(long nIndex);
|
||||
|
||||
CPPUNIT_TEST_SUITE(ScAnnontationsObj);
|
||||
CPPUNIT_TEST(testInsertNew);
|
||||
CPPUNIT_TEST(testRemoveByIndex);
|
||||
CPPUNIT_TEST(testCount);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
private:
|
||||
|
||||
|
@ -51,12 +52,12 @@ ScAnnontationsObj::ScAnnontationsObj()
|
|||
{
|
||||
}
|
||||
|
||||
uno::Reference< sheet::XSheetAnnotations> ScAnnontationsObj::getAnnotations()
|
||||
uno::Reference< sheet::XSheetAnnotations> ScAnnontationsObj::getAnnotations(long nIndex)
|
||||
{
|
||||
// get the sheet
|
||||
uno::Reference< sheet::XSpreadsheetDocument > xDoc(mxComponent, UNO_QUERY_THROW);
|
||||
uno::Reference< container::XIndexAccess > xIndex (xDoc->getSheets(), UNO_QUERY_THROW);
|
||||
uno::Reference< sheet::XSpreadsheet > xSheet( xIndex->getByIndex(0), UNO_QUERY_THROW);
|
||||
uno::Reference< sheet::XSpreadsheet > xSheet( xIndex->getByIndex(nIndex), UNO_QUERY_THROW);
|
||||
|
||||
// get the annotations collection
|
||||
uno::Reference< sheet::XSheetAnnotationsSupplier > xAnnotationSupplier(xSheet, UNO_QUERY_THROW);
|
||||
|
@ -76,9 +77,8 @@ uno::Reference< uno::XInterface > ScAnnontationsObj::init()
|
|||
mxComponent = loadFromDesktop(aFileURL);
|
||||
CPPUNIT_ASSERT_MESSAGE("Component not loaded",mxComponent.is());
|
||||
|
||||
return getAnnotations();
|
||||
return getAnnotations(0);
|
||||
}
|
||||
|
||||
void ScAnnontationsObj::setUp()
|
||||
{
|
||||
nTest++;
|
||||
|
|
|
@ -6239,7 +6239,7 @@ void ScDocument::GetNotesInRange( const ScRangeList& rRange, std::vector<sc::Not
|
|||
for( size_t i = 0; i < rRange.size(); ++i)
|
||||
{
|
||||
const ScRange* pRange = rRange[i];
|
||||
for( SCTAB nTab = pRange->aStart.Tab(); nTab < pRange->aEnd.Tab(); ++nTab )
|
||||
for( SCTAB nTab = pRange->aStart.Tab(); nTab <= pRange->aEnd.Tab(); ++nTab )
|
||||
{
|
||||
maTabs[nTab]->GetNotesInRange( *pRange, rNotes );
|
||||
}
|
||||
|
|
|
@ -3601,7 +3601,7 @@ uno::Reference<container::XEnumeration> SAL_CALL ScAnnotationsObj::createEnumera
|
|||
sal_Int32 SAL_CALL ScAnnotationsObj::getCount() throw(uno::RuntimeException)
|
||||
{
|
||||
SolarMutexGuard aGuard;
|
||||
sal_uLong nCount = 0;
|
||||
sal_Int32 nCount = 0;
|
||||
if (pDocShell)
|
||||
{
|
||||
ScDocument* pDoc = pDocShell->GetDocument();
|
||||
|
|
|
@ -22,6 +22,27 @@ using namespace css::uno;
|
|||
|
||||
namespace apitest {
|
||||
|
||||
void XSheetAnnotations::testCount()
|
||||
{
|
||||
uno::Reference< sheet::XSheetAnnotations > aSheetAnnotations (init(), UNO_QUERY_THROW);
|
||||
|
||||
// count on sheet 1 before inserting
|
||||
uno::Reference< container::XIndexAccess > xAnnotationsIndex (aSheetAnnotations, UNO_QUERY_THROW);
|
||||
sal_Int32 nBefore = xAnnotationsIndex->getCount();
|
||||
|
||||
// get Sheet 2 annotations
|
||||
uno::Reference< sheet::XSheetAnnotations > xSheet2Annotations( getAnnotations(1), UNO_QUERY_THROW);
|
||||
|
||||
// insert a note on sheet 2
|
||||
table::CellAddress xTargetCellAddress (1,0,0);
|
||||
xSheet2Annotations->insertNew(xTargetCellAddress, "an inserted annotation on sheet 2");
|
||||
|
||||
// count again on sheet 1
|
||||
sal_Int32 nAfter = xAnnotationsIndex->getCount();
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE( "Annotations count should not change on sheet 1", nBefore, nAfter);
|
||||
}
|
||||
|
||||
void XSheetAnnotations::testInsertNew()
|
||||
{
|
||||
uno::Reference< sheet::XSheetAnnotations > aSheetAnnotations (init(), UNO_QUERY_THROW);
|
||||
|
@ -30,6 +51,9 @@ void XSheetAnnotations::testInsertNew()
|
|||
uno::Reference< container::XIndexAccess > xAnnotationsIndex (aSheetAnnotations, UNO_QUERY_THROW);
|
||||
sal_Int32 nBefore = xAnnotationsIndex->getCount();
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE(
|
||||
"There should already be one note", 1, nBefore );
|
||||
|
||||
// insert the annotation
|
||||
table::CellAddress xTargetCellAddress (0,3,4);
|
||||
aSheetAnnotations->insertNew(xTargetCellAddress, "an inserted annotation");
|
||||
|
|
Loading…
Reference in a new issue