[Libreoffice-commits] core.git: include/test sc/qa sc/source test/source

Laurent Godard lgodard.libre at laposte.net
Fri Dec 6 03:46:39 PST 2013


 include/test/sheet/xsheetannotations.hxx |    3 ++-
 sc/qa/extras/scannotationsobj.cxx        |   12 ++++++------
 sc/source/core/data/document.cxx         |    2 +-
 sc/source/ui/unoobj/docuno.cxx           |    2 +-
 test/source/sheet/xsheetannotations.cxx  |   24 ++++++++++++++++++++++++
 5 files changed, 34 insertions(+), 9 deletions(-)

New commits:
commit f992400f6fec9c0178bddb83dbc859848221b659
Author: Laurent Godard <lgodard.libre at laposte.net>
Date:   Fri Dec 6 12:36:41 2013 +0100

    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 at googlemail.com>
    Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>

diff --git a/include/test/sheet/xsheetannotations.hxx b/include/test/sheet/xsheetannotations.hxx
index 24e1dd5..403af94 100644
--- a/include/test/sheet/xsheetannotations.hxx
+++ b/include/test/sheet/xsheetannotations.hxx
@@ -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;
 };
 
 }
diff --git a/sc/qa/extras/scannotationsobj.cxx b/sc/qa/extras/scannotationsobj.cxx
index 485173c..190efe5 100644
--- a/sc/qa/extras/scannotationsobj.cxx
+++ b/sc/qa/extras/scannotationsobj.cxx
@@ -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++;
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index a24889b..9f36896 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -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 );
         }
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 54f40d0..af9ede8 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -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();
diff --git a/test/source/sheet/xsheetannotations.cxx b/test/source/sheet/xsheetannotations.cxx
index 6671593..a56fc6b 100644
--- a/test/source/sheet/xsheetannotations.cxx
+++ b/test/source/sheet/xsheetannotations.cxx
@@ -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");


More information about the Libreoffice-commits mailing list