sc test XSheetOutline
Change-Id: Iea0576e61963dbdb72c88fe332c7cfe3e8ab7ff0 Reviewed-on: https://gerrit.libreoffice.org/1794 Reviewed-by: Noel Power <noel.power@suse.com> Tested-by: Noel Power <noel.power@suse.com>
This commit is contained in:
parent
a01a537602
commit
ab3f74fbea
8 changed files with 593 additions and 0 deletions
129
sc/CppunitTest_sc_outlineobj.mk
Normal file
129
sc/CppunitTest_sc_outlineobj.mk
Normal file
|
@ -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:
|
|
@ -61,6 +61,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sc, \
|
|||
$(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 \
|
||||
|
|
108
sc/qa/extras/scoutlineobj.cxx
Normal file
108
sc/qa/extras/scoutlineobj.cxx
Normal file
|
@ -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: */
|
BIN
sc/qa/extras/testdocuments/ScOutlineObj.ods
Normal file
BIN
sc/qa/extras/testdocuments/ScOutlineObj.ods
Normal file
Binary file not shown.
|
@ -82,6 +82,7 @@ $(eval $(call gb_Library_add_exception_objects,subsequenttest,\
|
|||
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 \
|
||||
|
|
|
@ -54,6 +54,7 @@ $(eval $(call gb_Package_add_file,test_inc,inc/test/sheet/xspreadsheetdocument.h
|
|||
$(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))
|
||||
|
|
57
test/inc/test/sheet/xsheetoutline.hxx
Normal file
57
test/inc/test/sheet/xsheetoutline.hxx
Normal file
|
@ -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: */
|
296
test/source/sheet/xsheetoutline.cxx
Normal file
296
test/source/sheet/xsheetoutline.cxx
Normal file
|
@ -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: */
|
Loading…
Reference in a new issue