Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hey guys,

after we enabled subsequenttests in sc again we have now a lot of
failing tests. Instead of debugging the java based tests I plan to
rewrite them in c++ and fix them during that.

I have attached a first patch that is only porting one part of a
failing test to c++. It would be nice if someone could have a look at
it and comment on my concept. The test itself is a bit ridiculous and
I think the original author did some concept mistakes in this test.

Here are some comments from me:

- based on macros_test, and therefore loads a testfile through
Desktop::loadComponentFromURL
- inits the UI like the old subsequenttests
- having test files instead of code that fills the cells make it
easier to use the test data outside of the test ( e.g. debugging a
problem, having a testdocument with known result for some actions)
- only a little bit of code needed for a new test, most code is shared
with our in-build tests
- porting old tests is straightforward
- does not need an installation
- needs much more makefile lines than the old tests ( there might be a
solution to this )

The concept needs still a lot of love and is only intended as starting
point. I hope that this makes debugging subsequenttests easier and
writing new tests as easy as writing in-build tests.

Do you have comments or suggestions?

Regards,
Markus
From bbce3329e791a0c9c5c1594bc215c466c3bfb294 Mon Sep 17 00:00:00 2001
From: Markus Mohrhard <markus.mohrhard@googlemail.com>
Date: Wed, 30 Nov 2011 14:40:29 +0100
Subject: [PATCH] first try to replace failing subsequentest with c++ test

---
 sc/Module_sc.mk                                 |    3 +-
 sc/qa/unoapi/testdocuments/xcellrangesquery.ods |  Bin 0 -> 8851 bytes
 sc/qa/unoapi/xcellrangesquery.cxx               |  156 +++++++++++++++++++++++
 test/inc/test/unoapi_test.hxx                   |   64 +++++++++
 test/prj/d.lst                                  |    2 +-
 test/source/makefile.mk                         |    2 +-
 test/source/unoapi_test.cxx                     |   67 ++++++++++
 7 files changed, 290 insertions(+), 4 deletions(-)
 create mode 100644 sc/qa/unoapi/testdocuments/xcellrangesquery.ods
 create mode 100644 sc/qa/unoapi/xcellrangesquery.cxx
 create mode 100644 test/inc/test/unoapi_test.hxx
 create mode 100644 test/source/unoapi_test.cxx

diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index 0e15220..8619c9d 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -35,8 +35,7 @@ $(eval $(call gb_Module_add_targets,sc,\
 ))
 
 $(eval $(call gb_Module_add_check_targets,sc,\
-       CppunitTest_sc_filters_test \
-       CppunitTest_sc_ucalc \
+       CppunitTest_sc_unoapi_xcellrangesquery \
 ))
 
 $(eval $(call gb_Module_add_subsequentcheck_targets,sc,\
diff --git a/sc/qa/unoapi/testdocuments/xcellrangesquery.ods 
b/sc/qa/unoapi/testdocuments/xcellrangesquery.ods
new file mode 100644
index 0000000000000000000000000000000000000000..0435fee9a74e55106d82d9d162564ff532c97fa2
GIT binary patch
literal 8851
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
VqO)&536F*NLql|o1WwY|{{ydkUo!vz

literal 0
HcmV?d00001

diff --git a/sc/qa/unoapi/xcellrangesquery.cxx b/sc/qa/unoapi/xcellrangesquery.cxx
new file mode 100644
index 0000000..18ffda8
--- /dev/null
+++ b/sc/qa/unoapi/xcellrangesquery.cxx
@@ -0,0 +1,156 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * [ Copyright (C) 2011 Markus Mohrhard <markus.mohrhard@googlemail.com> (initial developer) ]
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include <test/unoapi_test.hxx>
+
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/sheet/XCellRangesQuery.hpp>
+#include <com/sun/star/sheet/XSheetCellRanges.hpp>
+#include <com/sun/star/table/CellAddress.hpp>
+#include <com/sun/star/sheet/CellFlags.hpp>
+
+using namespace com::sun::star;
+
+
+namespace ScCellRangeObj {
+
+class ScXCellRangesQuery : public UnoApiTest
+{
+public:
+    ScXCellRangesQuery();
+
+    uno::Reference<sheet::XCellRangesQuery> init();
+
+    void testQueryColumnDifference();
+    void testQueryContentDifference();
+    void testQueryEmptyCells();
+    void testQueryFormulaCells();
+    void testQueryIntersection();
+    void testQueryRowDifference();
+    void testQueryVisibleCells();
+    void testSetRowVisible();
+
+    CPPUNIT_TEST_SUITE(ScXCellRangesQuery);
+    CPPUNIT_TEST(testQueryColumnDifference);
+    CPPUNIT_TEST(testQueryContentDifference);
+    CPPUNIT_TEST(testQueryFormulaCells);
+    CPPUNIT_TEST_SUITE_END();
+
+};
+
+ScXCellRangesQuery::ScXCellRangesQuery()
+{
+
+}
+
+uno::Reference<sheet::XCellRangesQuery> ScXCellRangesQuery::init()
+{
+    rtl::OUString aFileURL;
+    const rtl::OUString aFileBase(RTL_CONSTASCII_USTRINGPARAM("xcellrangesquery.ods"));
+    createFileURL(aFileBase, aFileURL);
+    std::cout << rtl::OUStringToOString(aFileURL, RTL_TEXTENCODING_UTF8).getStr() << std::endl;
+    uno::Reference< lang::XComponent > xComponent = loadFromDesktop(aFileURL);
+    uno::Reference< sheet::XSpreadsheetDocument> xDoc (xComponent, UNO_QUERY_THROW);
+    uno::Reference< container::XIndexAccess > xIndex (xDoc->getSheets(), UNO_QUERY_THROW);
+    uno::Reference< sheet::XSpreadsheet > xSheet( xIndex->getByIndex(0), UNO_QUERY_THROW);
+
+    CPPUNIT_ASSERT_MESSAGE("Could not create interface of type XSpreadsheet", xSheet.is());
+
+    uno::Reference<sheet::XCellRangesQuery> xReturn(xSheet->getCellRangeByPosition(0,0,3,4), 
UNO_QUERY_THROW);
+
+    CPPUNIT_ASSERT_MESSAGE("Could not create object of type XCellRangesQuery", xReturn.is());
+    return xReturn;
+}
+
+void ScXCellRangesQuery::testQueryColumnDifference()
+{
+    rtl::OUString aExpected(RTL_CONSTASCII_USTRINGPARAM("Sheet1.B1:C1,Sheet1.B3:C5"));
+    uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery = init();
+    uno::Reference<sheet::XSheetCellRanges> xRanges = 
xCellRangesQuery->queryColumnDifferences(table::CellAddress(0, 1, 1));
+    rtl::OUString aResult = xRanges->getRangeAddressesAsString();
+    std::cout << "testQueryColumnDifference: Result: " << rtl::OUStringToOString(aResult, 
RTL_TEXTENCODING_UTF8).getStr() << std::endl;
+    CPPUNIT_ASSERT_MESSAGE("testQueryColumnDifference", aResult == aExpected);
+}
+
+void ScXCellRangesQuery::testQueryContentDifference()
+{
+    rtl::OUString aExpected(RTL_CONSTASCII_USTRINGPARAM("Sheet1.B2:B3"));
+    uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery = init();
+    uno::Reference<sheet::XSheetCellRanges> xRanges = 
xCellRangesQuery->queryContentCells(sheet::CellFlags::VALUE);
+    rtl::OUString aResult = xRanges->getRangeAddressesAsString();
+    std::cout << "testQueryContentDifference: Result: " << rtl::OUStringToOString(aResult, 
RTL_TEXTENCODING_UTF8).getStr() << std::endl;
+    CPPUNIT_ASSERT_MESSAGE("testQueryContentDifference", aResult == aExpected);
+}
+
+void ScXCellRangesQuery::testQueryEmptyCells()
+{
+    rtl::OUString aExpected(RTL_CONSTASCII_USTRINGPARAM(""));
+    uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery = init();
+    uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryEmptyCells();
+    rtl::OUString aResult = xRanges->getRangeAddressesAsString();
+    //CPPUNIT_ASSERT_MESSAGE("testQueryEmptyCells", aResult == aExpected);
+}
+
+void ScXCellRangesQuery::testQueryFormulaCells()
+{
+    rtl::OUString aExpected(RTL_CONSTASCII_USTRINGPARAM("Sheet1.C2"));
+    uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery = init();
+    uno::Reference<sheet::XSheetCellRanges> xRanges = 
xCellRangesQuery->queryContentCells(sheet::CellFlags::FORMULA);
+    rtl::OUString aResult = xRanges->getRangeAddressesAsString();
+    std::cout << "testQueryFormulaCells: Result: " << rtl::OUStringToOString(aResult, 
RTL_TEXTENCODING_UTF8).getStr() << std::endl;
+    CPPUNIT_ASSERT_MESSAGE("testQueryFormulaCells", aResult == aExpected);
+}
+
+void ScXCellRangesQuery::testQueryIntersection()
+{
+
+}
+
+void ScXCellRangesQuery::testQueryRowDifference()
+{
+
+}
+
+void ScXCellRangesQuery::testQueryVisibleCells()
+{
+
+}
+
+void ScXCellRangesQuery::testSetRowVisible()
+{
+
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ScXCellRangesQuery);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/inc/test/unoapi_test.hxx b/test/inc/test/unoapi_test.hxx
new file mode 100644
index 0000000..54dcff8
--- /dev/null
+++ b/test/inc/test/unoapi_test.hxx
@@ -0,0 +1,64 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * [ Copyright (C) 2011 Markus Mohrhard <markus.mohrhard@googlemail.com> (initial developer) ]
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include <sal/config.h>
+#include <test/bootstrapfixture.hxx>
+#include <unotest/macros_test.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <osl/file.hxx>
+
+#define ODS_FORMAT_TYPE 50331943
+#define XLS_FORMAT_TYPE 318767171
+#define XLSX_FORMAT_TYPE 268959811
+
+#define ODS     0
+#define XLS     1
+#define XLSX    2
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+
+// basic uno api test class
+
+class OOO_DLLPUBLIC_TEST UnoApiTest : public test::BootstrapFixture, public unotest::MacrosTest
+{
+public:
+    UnoApiTest();
+
+    void createFileURL(const rtl::OUString& aFileBase, rtl::OUString& rFilePath);
+
+    virtual void setUp();
+    virtual void tearDown();
+
+
+private:
+    uno::Reference<uno::XInterface> m_xCalcComponent;
+    rtl::OUString m_aBaseString;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/prj/d.lst b/test/prj/d.lst
index 49b0f95..a021852 100644
--- a/test/prj/d.lst
+++ b/test/prj/d.lst
@@ -6,7 +6,7 @@ mkdir: %_DEST%\inc\test
 ..\%__SRC%\lib\libtest.dll.a %_DEST%\lib\libtest.dll.a
 ..\inc\test\testdllapi.hxx %_DEST%\inc\test\testdllapi.hxx
 ..\inc\test\bootstrapfixture.hxx %_DEST%\inc\test\bootstrapfixture.hxx
-..\inc\test\unoapitest.hxx %_DEST%\inc\test\unoapitest.hxx
+..\inc\test\unoapi_test.hxx %_DEST%\inc\test\unoapi_test.hxx
 mkdir: %_DEST%\unittest
 mkdir: %_DEST%\unittest\user\
 mkdir: %_DEST%\unittest\user\autocorr
diff --git a/test/source/makefile.mk b/test/source/makefile.mk
index 876e263..43f32a6 100644
--- a/test/source/makefile.mk
+++ b/test/source/makefile.mk
@@ -39,7 +39,7 @@ CFLAGSCXX += $(CPPUNIT_CFLAGS)
 
 SLOFILES = \
     $(SLO)/bootstrapfixture.obj \
-    $(SLO)/unoapitest.obj
+    $(SLO)/unoapi_test.obj
 
 .IF "$(CROSS_COMPILING)" == "YES"
 SHL1IMPLIB = $(SHL1TARGET)
diff --git a/test/source/unoapi_test.cxx b/test/source/unoapi_test.cxx
new file mode 100644
index 0000000..0a8213e
--- /dev/null
+++ b/test/source/unoapi_test.cxx
@@ -0,0 +1,67 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * [ Copyright (C) 2011 Markus Mohrhard <markus.mohrhard@googlemail.com> (initial developer) ]
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include "test/unoapi_test.hxx"
+
+UnoApiTest::UnoApiTest()
+      : m_aBaseString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unoapi/testdocuments"))
+{
+}
+
+void UnoApiTest::setUp()
+{
+    test::BootstrapFixture::setUp();
+
+    // This is a bit of a fudge, we do this to ensure that ScGlobals::ensure,
+    // which is a private symbol to us, gets called
+    m_xCalcComponent =
+        getMultiServiceFactory()->createInstance(rtl::OUString(
+        RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.Calc.SpreadsheetDocument")));
+    CPPUNIT_ASSERT_MESSAGE("no calc component!", m_xCalcComponent.is());
+    mxDesktop = Reference<com::sun::star::frame::XDesktop>( 
getMultiServiceFactory()->createInstance(
+                rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ))), 
UNO_QUERY );
+    CPPUNIT_ASSERT_MESSAGE("", mxDesktop.is());
+}
+
+void UnoApiTest::tearDown()
+{
+    uno::Reference< lang::XComponent >( m_xCalcComponent, UNO_QUERY_THROW )->dispose();
+    test::BootstrapFixture::tearDown();
+}
+
+void UnoApiTest::createFileURL(const rtl::OUString& aFileBase, rtl::OUString& rFilePath)
+{
+    rtl::OUString aSep(RTL_CONSTASCII_USTRINGPARAM("/"));
+    rtl::OUStringBuffer aBuffer( getSrcRootURL() );
+    rtl::OUString aFileExtension(RTL_CONSTASCII_USTRINGPARAM("ods"));
+    aBuffer.append(m_aBaseString).append(aSep);
+    aBuffer.append(aFileBase);
+    rFilePath = aBuffer.makeStringAndClear();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
-- 
1.7.3.4


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.