summaryrefslogtreecommitdiff
path: root/sc/qa/unit
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-05-13 06:18:10 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2015-05-13 06:24:43 +0200
commit33dd700085441e0903a1cfdc876f2d6338c76bef (patch)
treef435d2441e9de291711bb318543df1a927749890 /sc/qa/unit
parent2c5be9611c3c74d02bd4fd5ac05170ea83d1ba20 (diff)
extract copy&paste test from import tests
It makes more sense to use an independent test for these type of tests. Change-Id: Ied0cf3e42ccd391594f1dc884617f9dc498e700e
Diffstat (limited to 'sc/qa/unit')
-rw-r--r--sc/qa/unit/copy_paste_test.cxx151
-rw-r--r--sc/qa/unit/subsequent_filters-test.cxx81
2 files changed, 151 insertions, 81 deletions
diff --git a/sc/qa/unit/copy_paste_test.cxx b/sc/qa/unit/copy_paste_test.cxx
new file mode 100644
index 000000000000..73259e649ed8
--- /dev/null
+++ b/sc/qa/unit/copy_paste_test.cxx
@@ -0,0 +1,151 @@
+/* -*- 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: */
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 61fd98f43cfa..12bb93a03c72 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -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" )
{