Kaydet (Commit) 33dd7000 authored tarafından Markus Mohrhard's avatar Markus Mohrhard

extract copy&paste test from import tests

It makes more sense to use an independent test for these type of tests.

Change-Id: Ied0cf3e42ccd391594f1dc884617f9dc498e700e
üst 2c5be961
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_CppunitTest_CppunitTest,sc_copypaste))
$(eval $(call gb_CppunitTest_add_exception_objects,sc_copypaste, \
sc/qa/unit/copy_paste_test \
))
$(eval $(call gb_CppunitTest_use_externals,sc_copypaste, \
boost_headers \
mdds_headers \
orcus \
orcus-parser \
libxml2 \
))
$(eval $(call gb_CppunitTest_use_libraries,sc_copypaste, \
basegfx \
comphelper \
cppu \
cppuhelper \
drawinglayer \
editeng \
for \
forui \
i18nlangtag \
msfilter \
oox \
sal \
salhelper \
sax \
sb \
sc \
scqahelper \
sfx \
sot \
subsequenttest \
svl \
svt \
svx \
svxcore \
test \
tk \
tl \
ucbhelper \
unotest \
utl \
vbahelper \
vcl \
xo \
$(gb_UWINAPI) \
))
$(eval $(call gb_CppunitTest_set_include,sc_copypaste,\
-I$(SRCDIR)/sc/source/ui/inc \
-I$(SRCDIR)/sc/inc \
$$(INCLUDE) \
))
$(eval $(call gb_CppunitTest_use_api,sc_copypaste,\
offapi \
udkapi \
))
$(eval $(call gb_CppunitTest_use_ure,sc_copypaste))
$(eval $(call gb_CppunitTest_use_vcl,sc_copypaste))
$(eval $(call gb_CppunitTest_use_components,sc_copypaste,\
basic/util/sb \
chart2/source/chartcore \
chart2/source/controller/chartcontroller \
comphelper/util/comphelp \
configmgr/source/configmgr \
dbaccess/util/dba \
embeddedobj/util/embobj \
eventattacher/source/evtatt \
filter/source/config/cache/filterconfig1 \
forms/util/frm \
framework/util/fwk \
i18npool/source/search/i18nsearch \
i18npool/util/i18npool \
linguistic/source/lng \
oox/util/oox \
package/source/xstor/xstor \
package/util/package2 \
sax/source/expatwrap/expwrap \
scaddins/source/analysis/analysis \
scaddins/source/datefunc/date \
sc/util/sc \
sc/util/scfilt \
sfx2/util/sfx \
sot/util/sot \
svl/util/svl \
svl/source/fsstor/fsstorage \
svtools/util/svt \
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 \
xmloff/util/xo \
xmlsecurity/util/xmlsecurity \
xmlsecurity/util/xsec_fw \
))
ifeq ($(OS),WNT)
$(eval $(call gb_CppunitTest_use_components,sc_copypaste,\
xmlsecurity/util/xsec_xmlsec.windows \
))
else
$(eval $(call gb_CppunitTest_use_components,sc_copypaste,\
xmlsecurity/util/xsec_xmlsec \
))
endif
$(eval $(call gb_CppunitTest_use_configuration,sc_copypaste))
# vim: set noet sw=4 ts=4:
......@@ -59,6 +59,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sc, \
CppunitTest_sc_bugfix_test \
CppunitTest_sc_html_export_test \
CppunitTest_sc_opencl_test \
CppunitTest_sc_copypaste \
))
# Disabled to allow the check tinderbox execute the sd tests
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <sal/config.h>
#include <unotest/filters-test.hxx>
#include <test/bootstrapfixture.hxx>
#include "docsh.hxx"
#include "tabvwsh.hxx"
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/frame/XModel2.hpp>
#include "helper/qahelper.hxx"
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
class ScCopyPasteTest : public ScBootstrapFixture
{
public:
ScCopyPasteTest();
virtual void setUp() SAL_OVERRIDE;
virtual void tearDown() SAL_OVERRIDE;
void testCopyPasteXLS();
CPPUNIT_TEST_SUITE(ScCopyPasteTest);
CPPUNIT_TEST(testCopyPasteXLS);
CPPUNIT_TEST_SUITE_END();
private:
uno::Reference<uno::XInterface> m_xCalcComponent;
};
// tdf#83366
void ScCopyPasteTest::testCopyPasteXLS()
{
uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create(::comphelper::getProcessComponentContext());
CPPUNIT_ASSERT( xDesktop.is() );
// create a frame
Reference< frame::XFrame > xTargetFrame = xDesktop->findFrame( OUString("_blank"), 0 );
CPPUNIT_ASSERT( xTargetFrame.is() );
// 1. Open the document
ScDocShellRef xDocSh = loadDoc("chartx.", XLS);
CPPUNIT_ASSERT_MESSAGE("Failed to load chartx.xls.", xDocSh.Is());
uno::Reference< frame::XModel2 > xModel2 ( xDocSh->GetModel(), UNO_QUERY );
CPPUNIT_ASSERT( xModel2.is() );
Reference< frame::XController2 > xController ( xModel2->createDefaultViewController( xTargetFrame ), UNO_QUERY );
CPPUNIT_ASSERT( xController.is() );
// introduce model/view/controller to each other
xController->attachModel( xModel2.get() );
xModel2->connectController( xController.get() );
xTargetFrame->setComponent( xController->getComponentWindow(), xController.get() );
xController->attachFrame( xTargetFrame );
xModel2->setCurrentController( xController.get() );
ScDocument& rDoc = xDocSh->GetDocument();
// Get the document controller
ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false);
CPPUNIT_ASSERT(pViewShell != NULL);
// 2. Highlight B2:C5
ScRange aSrcRange;
sal_uInt16 nRes = aSrcRange.Parse("B2:C5", &rDoc, rDoc.GetAddressConvention());
CPPUNIT_ASSERT_MESSAGE("Failed to parse.", (nRes & SCA_VALID) != 0);
ScMarkData aMark;
aMark.SetMarkArea(aSrcRange);
pViewShell->GetViewData().GetMarkData().SetMarkArea(aSrcRange);
// 3. Copy
ScDocument aClipDoc(SCDOCMODE_CLIP);
pViewShell->GetViewData().GetView()->CopyToClip(&aClipDoc, false, false, false, false);
// 4. Close the document (Ctrl-W)
xDocSh->DoClose();
// 5. Create a new Spreadsheet
Sequence < beans::PropertyValue > args(1);
args[0].Name = "Hidden";
args[0].Value <<= sal_True;
uno::Reference< lang::XComponent > xComponent = xDesktop->loadComponentFromURL(
OUString("private:factory/scalc"),
OUString("_blank"),
0,
args );
CPPUNIT_ASSERT( xComponent.is() );
// Get the document model
SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(xComponent);
CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell);
xDocSh = dynamic_cast<ScDocShell*>(pFoundShell);
CPPUNIT_ASSERT(xDocSh != NULL);
// Get the document controller
pViewShell = xDocSh->GetBestViewShell(false);
CPPUNIT_ASSERT(pViewShell != NULL);
// 6. Paste
pViewShell->GetViewData().GetView()->PasteFromClip(IDF_ALL, &aClipDoc);
xDocSh->DoClose();
}
ScCopyPasteTest::ScCopyPasteTest()
: ScBootstrapFixture( "/sc/qa/unit/data" )
{
}
void ScCopyPasteTest::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("com.sun.star.comp.Calc.SpreadsheetDocument");
CPPUNIT_ASSERT_MESSAGE("no calc component!", m_xCalcComponent.is());
}
void ScCopyPasteTest::tearDown()
{
uno::Reference< lang::XComponent >( m_xCalcComponent, UNO_QUERY_THROW )->dispose();
test::BootstrapFixture::tearDown();
}
CPPUNIT_TEST_SUITE_REGISTRATION(ScCopyPasteTest);
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -194,7 +194,6 @@ public:
void testVBAUserFunctionXLSM();
void testEmbeddedImageXLS();
void testEditEngStrikeThroughXLSX();
void testCopyPasteXLS();
CPPUNIT_TEST_SUITE(ScFiltersTest);
CPPUNIT_TEST(testBooleanFormatXLSX);
......@@ -284,7 +283,6 @@ public:
CPPUNIT_TEST(testEmbeddedImageXLS);
CPPUNIT_TEST(testErrorOnExternalReferences);
CPPUNIT_TEST(testEditEngStrikeThroughXLSX);
CPPUNIT_TEST(testCopyPasteXLS);
CPPUNIT_TEST_SUITE_END();
private:
......@@ -2941,85 +2939,6 @@ void ScFiltersTest::testEditEngStrikeThroughXLSX()
}
}
// tdf#83366
void ScFiltersTest::testCopyPasteXLS()
{
uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create(::comphelper::getProcessComponentContext());
CPPUNIT_ASSERT( xDesktop.is() );
// create a frame
Reference< frame::XFrame > xTargetFrame = xDesktop->findFrame( OUString("_blank"), 0 );
CPPUNIT_ASSERT( xTargetFrame.is() );
// 1. Open the document
ScDocShellRef xDocSh = loadDoc("chartx.", XLS);
CPPUNIT_ASSERT_MESSAGE("Failed to load chartx.xls.", xDocSh.Is());
uno::Reference< frame::XModel2 > xModel2 ( xDocSh->GetModel(), UNO_QUERY );
CPPUNIT_ASSERT( xModel2.is() );
Reference< frame::XController2 > xController ( xModel2->createDefaultViewController( xTargetFrame ), UNO_QUERY );
CPPUNIT_ASSERT( xController.is() );
// introduce model/view/controller to each other
xController->attachModel( xModel2.get() );
xModel2->connectController( xController.get() );
xTargetFrame->setComponent( xController->getComponentWindow(), xController.get() );
xController->attachFrame( xTargetFrame );
xModel2->setCurrentController( xController.get() );
ScDocument& rDoc = xDocSh->GetDocument();
// Get the document controller
ScTabViewShell* pViewShell = xDocSh->GetBestViewShell(false);
CPPUNIT_ASSERT(pViewShell != NULL);
// 2. Highlight B2:C5
ScRange aSrcRange;
sal_uInt16 nRes = aSrcRange.Parse("B2:C5", &rDoc, rDoc.GetAddressConvention());
CPPUNIT_ASSERT_MESSAGE("Failed to parse.", (nRes & SCA_VALID) != 0);
ScMarkData aMark;
aMark.SetMarkArea(aSrcRange);
pViewShell->GetViewData().GetMarkData().SetMarkArea(aSrcRange);
// 3. Copy
ScDocument aClipDoc(SCDOCMODE_CLIP);
pViewShell->GetViewData().GetView()->CopyToClip(&aClipDoc, false, false, false, false);
// 4. Close the document (Ctrl-W)
xDocSh->DoClose();
// 5. Create a new Spreadsheet
Sequence < beans::PropertyValue > args(1);
args[0].Name = "Hidden";
args[0].Value <<= sal_True;
uno::Reference< lang::XComponent > xComponent = xDesktop->loadComponentFromURL(
OUString("private:factory/scalc"),
OUString("_blank"),
0,
args );
CPPUNIT_ASSERT( xComponent.is() );
// Get the document model
SfxObjectShell* pFoundShell = SfxObjectShell::GetShellFromComponent(xComponent);
CPPUNIT_ASSERT_MESSAGE("Failed to access document shell", pFoundShell);
xDocSh = dynamic_cast<ScDocShell*>(pFoundShell);
CPPUNIT_ASSERT(xDocSh != NULL);
// Get the document controller
pViewShell = xDocSh->GetBestViewShell(false);
CPPUNIT_ASSERT(pViewShell != NULL);
// 6. Paste
pViewShell->GetViewData().GetView()->PasteFromClip(IDF_ALL, &aClipDoc);
xDocSh->DoClose();
}
ScFiltersTest::ScFiltersTest()
: ScBootstrapFixture( "/sc/qa/unit/data" )
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment