Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/1794
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/94/1794/1
sc test XSheetOutline
Change-Id: Iea0576e61963dbdb72c88fe332c7cfe3e8ab7ff0
---
A sc/CppunitTest_sc_outlineobj.mk
M sc/Module_sc.mk
A sc/qa/extras/scoutlineobj.cxx
A sc/qa/extras/testdocuments/ScOutlineObj.ods
M test/Library_subsequenttest.mk
M test/Package_inc.mk
A test/inc/test/sheet/xsheetoutline.hxx
A test/source/sheet/xsheetoutline.cxx
8 files changed, 593 insertions(+), 0 deletions(-)
diff --git a/sc/CppunitTest_sc_outlineobj.mk b/sc/CppunitTest_sc_outlineobj.mk
new file mode 100644
index 0000000..7817035
--- /dev/null
+++ b/sc/CppunitTest_sc_outlineobj.mk
@@ -0,0 +1,129 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#*************************************************************************
+# 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.
+#
+# The Initial Developer of the Original Code is
+# Copyright (C) 2013 Laurent Godard <lgodard.libre@laposte.net> (initial developer)
+# Portions created by the Initial Developer are Copyright (C) 2013 the
+# Initial Developer. All Rights Reserved.
+#
+# Major Contributor(s):
+#
+# 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.
+#*************************************************************************
+
+$(eval $(call gb_CppunitTest_CppunitTest,sc_outlineobj))
+
+$(eval $(call gb_CppunitTest_add_exception_objects,sc_outlineobj, \
+ sc/qa/extras/scoutlineobj \
+))
+
+$(eval $(call gb_CppunitTest_use_libraries,sc_outlineobj, \
+ avmedia \
+ basegfx \
+ comphelper \
+ cppu \
+ cppuhelper \
+ drawinglayer \
+ editeng \
+ fileacc \
+ for \
+ forui \
+ i18nisolang1 \
+ msfilter \
+ oox \
+ sal \
+ salhelper \
+ sax \
+ sb \
+ sc \
+ sfx \
+ sot \
+ svl \
+ svt \
+ svx \
+ svxcore \
+ test \
+ tl \
+ tk \
+ subsequenttest \
+ ucbhelper \
+ unotest \
+ utl \
+ vbahelper \
+ vcl \
+ xo \
+ $(gb_UWINAPI) \
+))
+
+$(eval $(call gb_CppunitTest_set_include,sc_outlineobj,\
+ -I$(SRCDIR)/sc/source/ui/inc \
+ -I$(SRCDIR)/sc/inc \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_CppunitTest_use_api,sc_outlineobj,\
+ offapi \
+ udkapi \
+))
+
+$(eval $(call gb_CppunitTest_use_ure,sc_outlineobj))
+
+$(eval $(call gb_CppunitTest_use_components,sc_outlineobj,\
+ basic/util/sb \
+ comphelper/util/comphelp \
+ configmgr/source/configmgr \
+ dbaccess/util/dba \
+ fileaccess/source/fileacc \
+ filter/source/config/cache/filterconfig1 \
+ forms/util/frm \
+ framework/util/fwk \
+ i18npool/util/i18npool \
+ linguistic/source/lng \
+ oox/util/oox \
+ package/source/xstor/xstor \
+ package/util/package2 \
+ sax/source/expatwrap/expwrap \
+ sax/source/fastparser/fastsax \
+ sc/util/sc \
+ sc/util/scd \
+ sc/util/scfilt \
+ $(if $(filter TRUE,$(DISABLE_SCRIPTING)),, \
+ sc/util/vbaobj) \
+ scripting/source/basprov/basprov \
+ scripting/util/scriptframe \
+ sfx2/util/sfx \
+ sot/util/sot \
+ svl/source/fsstor/fsstorage \
+ toolkit/util/tk \
+ ucb/source/core/ucb1 \
+ ucb/source/ucp/file/ucpfile1 \
+ ucb/source/ucp/tdoc/ucptdoc1 \
+ unotools/util/utl \
+ unoxml/source/rdf/unordf \
+ unoxml/source/service/unoxml \
+))
+
+$(eval $(call gb_CppunitTest_use_configuration,sc_outlineobj))
+
+$(eval $(call gb_CppunitTest_use_filter_configuration,sc_outlineobj))
+
+$(eval $(call gb_CppunitTest_use_unittest_configuration,sc_outlineobj))
+
+# vim: set noet sw=4 ts=4:
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index 3039518..4a4fc41 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -61,6 +61,7 @@
$(eval $(call gb_Module_add_subsequentcheck_targets,sc,\
JunitTest_sc_complex \
JunitTest_sc_unoapi \
+ CppunitTest_sc_outlineobj \
CppunitTest_sc_annotationobj \
CppunitTest_sc_annotationsobj \
CppunitTest_sc_cellrangeobj \
diff --git a/sc/qa/extras/scoutlineobj.cxx b/sc/qa/extras/scoutlineobj.cxx
new file mode 100644
index 0000000..3e5e964
--- /dev/null
+++ b/sc/qa/extras/scoutlineobj.cxx
@@ -0,0 +1,108 @@
+/* -*- 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) 2013 Laurent Godard <lgodard.libre@laposte.net> (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 <test/sheet/xsheetoutline.hxx>
+
+#include <com/sun/star/sheet/XSpreadsheetDocument.hpp>
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+
+namespace sc_apitest {
+
+#define NUMBER_OF_TESTS 6
+
+class ScOutlineObj : public UnoApiTest, apitest::XSheetOutline
+{
+public:
+ ScOutlineObj();
+
+ virtual void setUp();
+ virtual void tearDown();
+
+ virtual uno::Reference< uno::XInterface > init();
+
+ CPPUNIT_TEST_SUITE(ScOutlineObj);
+ CPPUNIT_TEST(testHideDetail);
+ CPPUNIT_TEST(testShowDetail);
+ CPPUNIT_TEST(testShowLevel);
+ CPPUNIT_TEST(testUngroup);
+ CPPUNIT_TEST(testGroup);
+ // CPPUNIT_TEST(testAutoOutline);
+ CPPUNIT_TEST(testClearOutline);
+ CPPUNIT_TEST_SUITE_END();
+private:
+
+ static sal_Int32 nTest;
+ static uno::Reference< lang::XComponent > mxComponent;
+};
+
+sal_Int32 ScOutlineObj::nTest = 0;
+uno::Reference< lang::XComponent > ScOutlineObj::mxComponent;
+
+ScOutlineObj::ScOutlineObj()
+{
+}
+
+uno::Reference< uno::XInterface > ScOutlineObj::init()
+{
+ // get the test file
+ rtl::OUString aFileURL;
+ createFileURL(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ScOutlineObj.ods")), aFileURL);
+ if(!mxComponent.is())
+ mxComponent = loadFromDesktop(aFileURL);
+ CPPUNIT_ASSERT_MESSAGE("Component not loaded",mxComponent.is());
+
+ // get the first 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);
+
+ return xSheet;
+}
+
+void ScOutlineObj::setUp()
+{
+ nTest++;
+ UnoApiTest::setUp();
+}
+
+void ScOutlineObj::tearDown()
+{
+ if (nTest == NUMBER_OF_TESTS)
+ closeDocument(mxComponent);
+
+ UnoApiTest::tearDown();
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(ScOutlineObj);
+
+CPPUNIT_PLUGIN_IMPLEMENT();
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/qa/extras/testdocuments/ScOutlineObj.ods
b/sc/qa/extras/testdocuments/ScOutlineObj.ods
new file mode 100644
index 0000000..bc4642a
--- /dev/null
+++ b/sc/qa/extras/testdocuments/ScOutlineObj.ods
Binary files differ
diff --git a/test/Library_subsequenttest.mk b/test/Library_subsequenttest.mk
index 1546fcb..e580117 100644
--- a/test/Library_subsequenttest.mk
+++ b/test/Library_subsequenttest.mk
@@ -82,6 +82,7 @@
test/source/sheet/xspreadsheets2 \
test/source/sheet/xsheetannotation \
test/source/sheet/xsheetannotations \
+ test/source/sheet/xsheetoutline \
test/source/text/xtext \
test/source/text/xtextfield \
test/source/text/xtextcontent \
diff --git a/test/Package_inc.mk b/test/Package_inc.mk
index 2abda25..7af724c 100644
--- a/test/Package_inc.mk
+++ b/test/Package_inc.mk
@@ -54,6 +54,7 @@
$(eval $(call
gb_Package_add_file,test_inc,inc/test/sheet/xspreadsheets2.hxx,test/sheet/xspreadsheets2.hxx))
$(eval $(call
gb_Package_add_file,test_inc,inc/test/sheet/xsheetannotation.hxx,test/sheet/xsheetannotation.hxx))
$(eval $(call
gb_Package_add_file,test_inc,inc/test/sheet/xsheetannotations.hxx,test/sheet/xsheetannotations.hxx))
+$(eval $(call
gb_Package_add_file,test_inc,inc/test/sheet/xsheetoutline.hxx,test/sheet/xsheetoutline.hxx))
$(eval $(call gb_Package_add_file,test_inc,inc/test/text/xtext.hxx,test/text/xtext.hxx))
$(eval $(call gb_Package_add_file,test_inc,inc/test/text/xtextfield.hxx,test/text/xtextfield.hxx))
$(eval $(call
gb_Package_add_file,test_inc,inc/test/text/xtextcontent.hxx,test/text/xtextcontent.hxx))
diff --git a/test/inc/test/sheet/xsheetoutline.hxx b/test/inc/test/sheet/xsheetoutline.hxx
new file mode 100644
index 0000000..b52ac0ee
--- /dev/null
+++ b/test/inc/test/sheet/xsheetoutline.hxx
@@ -0,0 +1,57 @@
+/* -*- 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) 2013 Laurent Godard lgodard.libre@laposte.net (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 <rtl/ustring.hxx>
+#include <com/sun/star/sheet/XSheetOutline.hpp>
+#include <test/testdllapi.hxx>
+
+using namespace com::sun::star;
+
+namespace apitest {
+
+class OOO_DLLPUBLIC_TEST XSheetOutline
+{
+public:
+ virtual uno::Reference< uno::XInterface > init() = 0;
+
+ // XSheetOutline
+ void testHideDetail();
+ void testShowDetail();
+ void testShowLevel();
+ void testUngroup();
+ void testGroup();
+ void testAutoOutline();
+ void testClearOutline();
+
+protected:
+ ~XSheetOutline() {}
+};
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/sheet/xsheetoutline.cxx b/test/source/sheet/xsheetoutline.cxx
new file mode 100644
index 0000000..c902e65
--- /dev/null
+++ b/test/source/sheet/xsheetoutline.cxx
@@ -0,0 +1,296 @@
+/* -*- 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 Laurent Godard lgodard.libre@laposte.net (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/sheet/xsheetoutline.hxx>
+
+#include <com/sun/star/sheet/XSpreadsheet.hpp>
+#include <com/sun/star/table/CellRangeAddress.hpp>
+#include <com/sun/star/table/XCellRange.hpp>
+
+#include <com/sun/star/sheet/XCellRangeAddressable.hpp>
+#include <com/sun/star/table/TableOrientation.hpp>
+
+#include <com/sun/star/sheet/XSheetCellRanges.hpp>
+#include <com/sun/star/sheet/XCellRangesQuery.hpp>
+
+#include "cppunit/extensions/HelperMacros.h"
+#include <rtl/ustring.hxx>
+
+using namespace com::sun::star::uno;
+
+namespace apitest {
+
+const OUString colLevel1 = "OutlineSheet.A1:Z1";
+const OUString colLevel2 = "OutlineSheet.C1:W1";
+const OUString colLevel3 = "OutlineSheet.E1:U1";
+const OUString colLevel4 = "OutlineSheet.G1:S1";
+
+const OUString rowLevel1 = "OutlineSheet.A1:A30";
+const OUString rowLevel2 = "OutlineSheet.A3:A27";
+const OUString rowLevel3 = "OutlineSheet.A5:A24";
+const OUString rowLevel4 = "OutlineSheet.A7:A21";
+
+uno::Reference< sheet::XSpreadsheet > aSheetGlobal;
+
+OUString getVisibleAdress(OUString aLevelRangeString)
+{
+
+ uno::Reference<table::XCellRange> aSheetRangeAccess(aSheetGlobal, UNO_QUERY_THROW);
+ uno::Reference<table::XCellRange> aLevelRange =
aSheetRangeAccess->getCellRangeByName(aLevelRangeString);
+
+ uno::Reference<sheet::XCellRangesQuery> xCellRangesQuery(aLevelRange,UNO_QUERY_THROW);
+ uno::Reference<sheet::XSheetCellRanges> xRanges = xCellRangesQuery->queryVisibleCells();
+ OUString aResult = xRanges->getRangeAddressesAsString();
+
+ return aResult;
+
+}
+
+table::CellRangeAddress getAddressFromRangeString(OUString aStringAddress)
+{
+
+ uno::Reference< table::XCellRange > aSheetRangeAccess(aSheetGlobal, UNO_QUERY_THROW);
+ uno::Reference<table::XCellRange> aRange =
aSheetRangeAccess->getCellRangeByName(aStringAddress);
+
+ uno::Reference<sheet::XCellRangeAddressable> xCellRangeAddressable(aRange, UNO_QUERY_THROW);
+ table::CellRangeAddress aLevelRangeAddress = xCellRangeAddressable->getRangeAddress();
+
+ return aLevelRangeAddress;
+
+}
+
+
+
+void XSheetOutline::testHideDetail()
+{
+
+ uno::Reference< sheet::XSpreadsheet > aSheet(init(), UNO_QUERY_THROW);
+ uno::Reference< sheet::XSheetOutline > aSheetOutline(aSheet, UNO_QUERY_THROW);
+
+ aSheetGlobal = aSheet;
+
+ // Column level 2
+ table::CellRangeAddress aLevelRangeAddress = getAddressFromRangeString(colLevel2);
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Column level 2 not hidden", getVisibleAdress(colLevel2),
OUString(""));
+
+ // Row Level 2
+ aLevelRangeAddress = getAddressFromRangeString(rowLevel2);
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Row level 2 not hidden", getVisibleAdress(rowLevel2),
OUString(""));
+
+}
+
+void XSheetOutline::testShowDetail()
+{
+ uno::Reference< sheet::XSpreadsheet > aSheet(init(), UNO_QUERY_THROW);
+ uno::Reference< sheet::XSheetOutline > aSheetOutline(aSheet, UNO_QUERY_THROW);
+
+ aSheetGlobal = aSheet;
+ aSheetOutline->showDetail(getAddressFromRangeString(colLevel1));
+ aSheetOutline->showDetail(getAddressFromRangeString(rowLevel1));
+
+ // Row Level 2
+ table::CellRangeAddress aLevelRangeAddress = getAddressFromRangeString(rowLevel2);
+ aSheetOutline->showDetail(aLevelRangeAddress);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Row level 2 still hidden", getVisibleAdress(rowLevel2),
rowLevel2);
+
+ // Column Level 2
+ aLevelRangeAddress = getAddressFromRangeString(colLevel2);
+ aSheetOutline->showDetail(aLevelRangeAddress);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("Column level 2 still hidden", getVisibleAdress(colLevel2),
colLevel2);
+
+}
+
+void XSheetOutline::testShowLevel()
+{
+
+ uno::Reference< sheet::XSpreadsheet > aSheet(init(), UNO_QUERY_THROW);
+ uno::Reference< sheet::XSheetOutline > aSheetOutline(aSheet, UNO_QUERY_THROW);
+
+ aSheetGlobal = aSheet;
+
+ table::CellRangeAddress aLevelRangeAddress;
+
+ // test columns
+
+ table::CellRangeAddress aLevel1 = getAddressFromRangeString(colLevel1);
+ table::CellRangeAddress aLevel2 = getAddressFromRangeString(colLevel2);
+ table::CellRangeAddress aLevel3 = getAddressFromRangeString(colLevel3);
+ table::CellRangeAddress aLevel4 = getAddressFromRangeString(colLevel4);
+
+ aSheetOutline->showDetail(getAddressFromRangeString(colLevel1));
+ aSheetOutline->showDetail(getAddressFromRangeString(colLevel2));
+ aSheetOutline->showDetail(getAddressFromRangeString(rowLevel1));
+
+ aSheetOutline->hideDetail(aLevel1);
+ aSheetOutline->hideDetail(aLevel2);
+ aSheetOutline->hideDetail(aLevel3);
+ aSheetOutline->hideDetail(aLevel4);
+
+ aSheetOutline->showLevel(2, table::TableOrientation_COLUMNS);
+
+ std::cout << " verifiy showLevel col apres" <<
OUStringToOString(getVisibleAdress("OutlineSheet.A1:Z30"), RTL_TEXTENCODING_UTF8).getStr() <<
std::endl;
+
+ // verify that level 2 and level 1 are shown --> column 0..3 & column 22..26
+ // level 3 & 4 are hidden --> column 4..19
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", OUString("OutlineSheet.A1:D1"),
getVisibleAdress("OutlineSheet.A1:D1"));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", OUString("OutlineSheet.V1:Z1"),
getVisibleAdress("OutlineSheet.V1:Z1"));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Column", OUString(""),
getVisibleAdress(colLevel3));
+
+/* FIXME !!
+
+ // test Rows
+
+ aLevel1 = getAddressFromRangeString(rowLevel1);
+ aLevel2 = getAddressFromRangeString(rowLevel2);
+ aLevel3 = getAddressFromRangeString(rowLevel3);
+ aLevel4 = getAddressFromRangeString(rowLevel4);
+
+ aSheetOutline->showDetail(getAddressFromRangeString(colLevel1));
+ aSheetOutline->showDetail(getAddressFromRangeString(rowLevel1));
+ aSheetOutline->showDetail(getAddressFromRangeString(rowLevel2));
+
+ std::cout << " verifiy showLevel row avant" <<
OUStringToOString(getVisibleAdress("OutlineSheet.A1:Z30"), RTL_TEXTENCODING_UTF8).getStr() <<
std::endl;
+
+ aSheetOutline->hideDetail(aLevel1);
+ aSheetOutline->hideDetail(aLevel2);
+ aSheetOutline->hideDetail(aLevel3);
+ aSheetOutline->hideDetail(aLevel4);
+
+ std::cout << " verifiy showLevel row juste avant" <<
OUStringToOString(getVisibleAdress("OutlineSheet.A1:Z30"), RTL_TEXTENCODING_UTF8).getStr() <<
std::endl;
+
+ aSheetOutline->showLevel(2, table::TableOrientation_ROWS);
+
+ std::cout << " verifiy showLevel row apres" <<
OUStringToOString(getVisibleAdress("OutlineSheet.A1:Z30"), RTL_TEXTENCODING_UTF8).getStr() <<
std::endl;
+
+ // verify rows visible 0..3 & 24..29
+ // verfiy rows hidden 4..23
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", OUString("OutlineSheet.A1:A4"),
getVisibleAdress("OutlineSheet.A1:A4"));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", OUString("OutlineSheet.A25:A30"),
getVisibleAdress("OutlineSheet.A25:A30"));
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testShowLevel Row", OUString(""), getVisibleAdress(rowLevel3));
+
+*/
+
+}
+
+void XSheetOutline::testGroup()
+{
+
+ uno::Reference< sheet::XSpreadsheet > aSheet(init(), UNO_QUERY_THROW);
+ uno::Reference< sheet::XSheetOutline > aSheetOutline(aSheet, UNO_QUERY_THROW);
+
+ aSheetGlobal = aSheet;
+
+ // Column level 2
+ OUString aNewString = "OutlineSheet.AB1:AG1";
+ table::CellRangeAddress aLevelRangeAddress = getAddressFromRangeString(aNewString);
+ aSheetOutline->group(aLevelRangeAddress, table::TableOrientation_COLUMNS);
+
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testGroup Column still visible", getVisibleAdress(aNewString),
OUString(""));
+
+ // Row Level 2
+ aNewString = "OutlineSheet.A50:A60";
+ aLevelRangeAddress = getAddressFromRangeString(aNewString);
+ aSheetOutline->group(aLevelRangeAddress, table::TableOrientation_ROWS);
+
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testGroup Row still visible", getVisibleAdress(aNewString),
OUString(""));
+
+}
+
+void XSheetOutline::testUngroup()
+{
+ uno::Reference< sheet::XSpreadsheet > aSheet(init(), UNO_QUERY_THROW);
+ uno::Reference< sheet::XSheetOutline > aSheetOutline(aSheet, UNO_QUERY_THROW);
+
+ aSheetGlobal = aSheet;
+
+ // New Column level
+ OUString aNewString = "OutlineSheet.BB1:BG1";
+ table::CellRangeAddress aLevelRangeAddress = getAddressFromRangeString(aNewString);
+ aSheetOutline->group(aLevelRangeAddress, table::TableOrientation_COLUMNS);
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+
+ aSheetOutline->ungroup(aLevelRangeAddress, table::TableOrientation_COLUMNS);
+
+ aSheetOutline->showDetail(aLevelRangeAddress);
+ // should remain hidden ?
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testUnGroup Column becomes visible after ungroup",
getVisibleAdress(aNewString), OUString(""));
+
+ // New Row level
+ aNewString = "OutlineSheet.A70:A80";
+ aLevelRangeAddress = getAddressFromRangeString(aNewString);
+ aSheetOutline->group(aLevelRangeAddress, table::TableOrientation_ROWS);
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+
+ aSheetOutline->ungroup(aLevelRangeAddress, table::TableOrientation_ROWS);
+
+ aSheetOutline->showDetail(aLevelRangeAddress);
+ // should remain hidden ?
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testUnGroup Row becomes visible after ungroup",
getVisibleAdress(aNewString), OUString(""));
+
+}
+
+void XSheetOutline::testAutoOutline()
+{
+}
+
+void XSheetOutline::testClearOutline()
+{
+ uno::Reference< sheet::XSpreadsheet > aSheet(init(), UNO_QUERY_THROW);
+ uno::Reference< sheet::XSheetOutline > aSheetOutline(aSheet, UNO_QUERY_THROW);
+
+ aSheetGlobal = aSheet;
+
+ aSheetOutline->clearOutline();
+
+ table::CellRangeAddress aLevelRangeAddress = getAddressFromRangeString(colLevel1);
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+ aLevelRangeAddress = getAddressFromRangeString(rowLevel1);
+ aSheetOutline->hideDetail(aLevelRangeAddress);
+
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testClearOutline Columns are hidden after clear",
getVisibleAdress(colLevel1), colLevel1);
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("testClearOutline Rows are hidden after clear",
getVisibleAdress(rowLevel1), rowLevel1);
+
+}
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
--
To view, visit https://gerrit.libreoffice.org/1794
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iea0576e61963dbdb72c88fe332c7cfe3e8ab7ff0
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Laurent Godard <lgodard.libre@laposte.net>
Context
- [PATCH] sc test XSheetOutline · Laurent Godard (via Code Review)
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.