sc/Library_scqahelper.mk               |    1 
 sc/qa/unit/filters-test.cxx            |   15 ++-----
 sc/qa/unit/functions_test.cxx          |    4 -
 sc/qa/unit/functions_test.hxx          |    5 --
 sc/qa/unit/helper/qahelper.cxx         |   46 ----------------------
 sc/qa/unit/helper/qahelper.hxx         |   28 -------------
 sc/qa/unit/helper/scfiltertestbase.cxx |   68 +++++++++++++++++++++++++++++++++
 sc/qa/unit/helper/scfiltertestbase.hxx |   68 +++++++++++++++++++++++++++++++++
 8 files changed, 147 insertions(+), 88 deletions(-)

New commits:
commit e328476c6c8793733ce87635d38869d99a7149da
Author:     Xisco Fauli <[email protected]>
AuthorDate: Thu Nov 24 14:52:45 2022 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Thu Nov 24 17:33:20 2022 +0100

    ScBootstrapFixture: move to their own file and rename class
    
    Change-Id: Ib3222f119f67b77b9c67269a6040301a44c7c5b0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143232
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sc/Library_scqahelper.mk b/sc/Library_scqahelper.mk
index f7db7545103d..07d769b77b4d 100644
--- a/sc/Library_scqahelper.mk
+++ b/sc/Library_scqahelper.mk
@@ -66,6 +66,7 @@ $(eval $(call gb_Library_use_libraries,scqahelper,\
 
 $(eval $(call gb_Library_add_exception_objects,scqahelper,\
        sc/qa/unit/helper/qahelper \
+       sc/qa/unit/helper/scfiltertestbase \
        sc/qa/unit/functions_test \
 ))
 
diff --git a/sc/qa/unit/filters-test.cxx b/sc/qa/unit/filters-test.cxx
index fcfbc786f334..d7b2197f1a29 100644
--- a/sc/qa/unit/filters-test.cxx
+++ b/sc/qa/unit/filters-test.cxx
@@ -8,10 +8,8 @@
  */
 
 #include <sal/config.h>
-#include <unotest/filters-test.hxx>
-#include <test/bootstrapfixture.hxx>
 
-#include "helper/qahelper.hxx"
+#include "helper/scfiltertestbase.hxx"
 
 #include <docsh.hxx>
 #include <inputopt.hxx>
@@ -37,8 +35,7 @@ using namespace ::com::sun::star::uno;
 /* Implementation of Filters test */
 
 class ScFiltersTest
-    : public test::FiltersTest
-    , public ScBootstrapFixture
+    : public ScFilterTestBase
 {
 public:
     ScFiltersTest();
@@ -84,7 +81,7 @@ bool ScFiltersTest::load(const OUString &rFilter, const 
OUString &rURL,
     const OUString &rUserData, SfxFilterFlags nFilterFlags,
     SotClipboardFormatId nClipboardID, unsigned int nFilterVersion)
 {
-    ScDocShellRef xDocShRef = ScBootstrapFixture::load(rURL, rFilter, 
rUserData,
+    ScDocShellRef xDocShRef = loadDoc(rURL, rFilter, rUserData,
         OUString(), nFilterFlags, nClipboardID, nFilterVersion );
     bool bLoaded = xDocShRef.is();
     //reference counting of ScDocShellRef is very confused.
@@ -137,7 +134,7 @@ void ScFiltersTest::testTooManyColsRows()
     // should be a warning on load.
     OUString aFileName;
     createFileURL(u"too-many-cols-rows.", u"ods", aFileName );
-    ScDocShellRef xDocSh = ScBootstrapFixture::load(aFileName, "calc8", 
OUString(), OUString(),
+    ScDocShellRef xDocSh = loadDoc(aFileName, "calc8", OUString(), OUString(),
             ODS_FORMAT_TYPE, SotClipboardFormatId::STARCALC_8);
 
     CPPUNIT_ASSERT(xDocSh->GetErrorCode() == SCWARN_IMPORT_ROW_OVERFLOW
@@ -145,7 +142,7 @@ void ScFiltersTest::testTooManyColsRows()
     xDocSh->DoClose();
 
     createFileURL(u"too-many-cols-rows.", u"xlsx", aFileName );
-    xDocSh = ScBootstrapFixture::load(
+    xDocSh = loadDoc(
             aFileName, "Calc Office Open XML", OUString(), OUString(),
             XLSX_FORMAT_TYPE, SotClipboardFormatId::STARCALC_8);
 
@@ -155,7 +152,7 @@ void ScFiltersTest::testTooManyColsRows()
 }
 
 ScFiltersTest::ScFiltersTest()
-    : ScBootstrapFixture()
+    : ScFilterTestBase()
 {
 }
 
diff --git a/sc/qa/unit/functions_test.cxx b/sc/qa/unit/functions_test.cxx
index 6bc36540c2a4..8efdfa5b0f82 100644
--- a/sc/qa/unit/functions_test.cxx
+++ b/sc/qa/unit/functions_test.cxx
@@ -14,7 +14,7 @@
 #include <rtl/math.hxx>
 
 FunctionsTest::FunctionsTest():
-    ScBootstrapFixture()
+    ScFilterTestBase()
 {
 }
 
@@ -23,7 +23,7 @@ bool FunctionsTest::load(const OUString& rFilter, const 
OUString& rURL,
         SotClipboardFormatId nClipboardID,
         unsigned int nFilterVersion)
 {
-    ScDocShellRef xDocShRef = ScBootstrapFixture::load(rURL, rFilter, 
rUserData,
+    ScDocShellRef xDocShRef = loadDoc(rURL, rFilter, rUserData,
         OUString(), nFilterFlags, nClipboardID, nFilterVersion );
     CPPUNIT_ASSERT(xDocShRef.is());
 
diff --git a/sc/qa/unit/functions_test.hxx b/sc/qa/unit/functions_test.hxx
index 52672bb8177b..547c537bf18a 100644
--- a/sc/qa/unit/functions_test.hxx
+++ b/sc/qa/unit/functions_test.hxx
@@ -10,12 +10,11 @@
 #include <sal/config.h>
 #include <sal/types.h>
 
-#include <unotest/filters-test.hxx>
-#include "helper/qahelper.hxx"
+#include "helper/scfiltertestbase.hxx"
 
 #include <com/sun/star/uno/Reference.hxx>
 
-class SCQAHELPER_DLLPUBLIC FunctionsTest : public ScBootstrapFixture, public 
test::FiltersTest
+class SCQAHELPER_DLLPUBLIC FunctionsTest : public ScFilterTestBase
 {
 public:
 
diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx
index bb263fcc9a44..bb61fb4eb119 100644
--- a/sc/qa/unit/helper/qahelper.cxx
+++ b/sc/qa/unit/helper/qahelper.cxx
@@ -469,52 +469,6 @@ OUString toString(
     return aBuf.makeStringAndClear();
 }
 
-ScDocShellRef ScBootstrapFixture::load(
-    const OUString& rURL, const OUString& rFilter, const OUString &rUserData,
-    const OUString& rTypeName, SfxFilterFlags nFilterFlags, 
SotClipboardFormatId nClipboardID,
-     sal_Int32 nFilterVersion )
-{
-    auto pFilter = std::make_shared<SfxFilter>(
-        rFilter,
-        OUString(), nFilterFlags, nClipboardID, rTypeName, OUString(),
-        rUserData, "private:factory/scalc");
-    pFilter->SetVersion(nFilterVersion);
-
-    ScDocShellRef xDocShRef = new ScDocShell;
-    xDocShRef->GetDocument().EnableUserInteraction(false);
-    SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ );
-    pSrcMed->SetFilter(pFilter);
-    pSrcMed->UseInteractionHandler(false);
-    SfxItemSet* pSet = pSrcMed->GetItemSet();
-    
pSet->Put(SfxUInt16Item(SID_MACROEXECMODE,css::document::MacroExecMode::ALWAYS_EXECUTE_NO_WARN));
-    SAL_INFO( "sc.qa", "about to load " << rURL );
-    if (!xDocShRef->DoLoad(pSrcMed))
-    {
-        xDocShRef->DoClose();
-        // load failed.
-        xDocShRef.clear();
-    }
-
-    return xDocShRef;
-}
-
-void ScBootstrapFixture::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 ScBootstrapFixture::tearDown()
-{
-    uno::Reference< lang::XComponent >( m_xCalcComponent, UNO_QUERY_THROW 
)->dispose();
-    test::BootstrapFixture::tearDown();
-}
-
 void ScSimpleBootstrapFixture::setUp()
 {
     BootstrapFixture::setUp();
diff --git a/sc/qa/unit/helper/qahelper.hxx b/sc/qa/unit/helper/qahelper.hxx
index 3eac1c2c3a86..a4fbfd13fb79 100644
--- a/sc/qa/unit/helper/qahelper.hxx
+++ b/sc/qa/unit/helper/qahelper.hxx
@@ -34,19 +34,6 @@
 
 namespace utl { class TempFileNamed; }
 
-#define ODS_FORMAT_TYPE      (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::TEMPLATE | SfxFilterFlags::OWN | SfxFilterFlags::DEFAULT | 
SfxFilterFlags::ENCRYPTION | SfxFilterFlags::PASSWORDTOMODIFY)
-#define XLS_FORMAT_TYPE      (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::ALIEN | SfxFilterFlags::ENCRYPTION | 
SfxFilterFlags::PASSWORDTOMODIFY | SfxFilterFlags::PREFERED)
-#define XLSX_FORMAT_TYPE     (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER | 
SfxFilterFlags::PREFERED)
-#define LOTUS123_FORMAT_TYPE (SfxFilterFlags::IMPORT |                         
 SfxFilterFlags::ALIEN | SfxFilterFlags::PREFERED)
-#define CSV_FORMAT_TYPE      (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::ALIEN )
-#define HTML_FORMAT_TYPE     (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::ALIEN )
-#define DIF_FORMAT_TYPE      (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::ALIEN )
-#define XLS_XML_FORMAT_TYPE  (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | 
SfxFilterFlags::PREFERED)
-#define XLSB_XML_FORMAT_TYPE (SfxFilterFlags::IMPORT |                         
 SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER | 
SfxFilterFlags::PREFERED)
-#define FODS_FORMAT_TYPE     (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::OWN | SfxFilterFlags::STARONEFILTER )
-#define GNUMERIC_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | 
SfxFilterFlags::PREFERED )
-#define XLTX_FORMAT_TYPE     (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT 
| SfxFilterFlags::TEMPLATE |SfxFilterFlags::ALIEN | 
SfxFilterFlags::STARONEFILTER | SfxFilterFlags::PREFERED)
-
 enum class StringType { PureString, StringValue };
 
 #define CHECK_OPTIMAL 0x1
@@ -124,21 +111,6 @@ public:
     ~FormulaGrammarSwitch();
 };
 
-class SCQAHELPER_DLLPUBLIC ScBootstrapFixture : public test::BootstrapFixture
-{
-protected:
-    ScDocShellRef load(
-        const OUString& rURL, const OUString& rFilter, const OUString 
&rUserData,
-        const OUString& rTypeName, SfxFilterFlags nFilterFlags, 
SotClipboardFormatId nClipboardID,
-        sal_Int32 nFilterVersion = SOFFICE_FILEFORMAT_CURRENT );
-private:
-    // reference to document interface that we are testing
-    css::uno::Reference<css::uno::XInterface> m_xCalcComponent;
-public:
-    virtual void setUp() override;
-    virtual void tearDown() override;
-};
-
 class SCQAHELPER_DLLPUBLIC ScSimpleBootstrapFixture : public 
test::BootstrapFixture
 {
 public:
diff --git a/sc/qa/unit/helper/scfiltertestbase.cxx 
b/sc/qa/unit/helper/scfiltertestbase.cxx
new file mode 100644
index 000000000000..d68a9c3267c9
--- /dev/null
+++ b/sc/qa/unit/helper/scfiltertestbase.cxx
@@ -0,0 +1,68 @@
+/* -*- 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 "scfiltertestbase.hxx"
+
+#include <sfx2/docfilt.hxx>
+#include <sfx2/docfile.hxx>
+#include <sfx2/sfxsids.hrc>
+#include <svl/intitem.hxx>
+
+#include <com/sun/star/document/MacroExecMode.hpp>
+
+using namespace com::sun::star;
+using namespace ::com::sun::star::uno;
+
+ScDocShellRef ScFilterTestBase::loadDoc(const OUString& rURL, const OUString& 
rFilter,
+                                        const OUString& rUserData, const 
OUString& rTypeName,
+                                        SfxFilterFlags nFilterFlags,
+                                        SotClipboardFormatId nClipboardID, 
sal_Int32 nFilterVersion)
+{
+    auto pFilter
+        = std::make_shared<SfxFilter>(rFilter, OUString(), nFilterFlags, 
nClipboardID, rTypeName,
+                                      OUString(), rUserData, 
"private:factory/scalc");
+    pFilter->SetVersion(nFilterVersion);
+
+    ScDocShellRef xDocShRef = new ScDocShell;
+    xDocShRef->GetDocument().EnableUserInteraction(false);
+    SfxMedium* pSrcMed = new SfxMedium(rURL, StreamMode::STD_READ);
+    pSrcMed->SetFilter(pFilter);
+    pSrcMed->UseInteractionHandler(false);
+    SfxItemSet* pSet = pSrcMed->GetItemSet();
+    pSet->Put(
+        SfxUInt16Item(SID_MACROEXECMODE, 
css::document::MacroExecMode::ALWAYS_EXECUTE_NO_WARN));
+    SAL_INFO("sc.qa", "about to load " << rURL);
+    if (!xDocShRef->DoLoad(pSrcMed))
+    {
+        xDocShRef->DoClose();
+        // load failed.
+        xDocShRef.clear();
+    }
+
+    return xDocShRef;
+}
+
+void ScFilterTestBase::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 ScFilterTestBase::tearDown()
+{
+    uno::Reference<lang::XComponent>(m_xCalcComponent, 
UNO_QUERY_THROW)->dispose();
+    test::BootstrapFixture::tearDown();
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/qa/unit/helper/scfiltertestbase.hxx 
b/sc/qa/unit/helper/scfiltertestbase.hxx
new file mode 100644
index 000000000000..a0a12e47e2f4
--- /dev/null
+++ b/sc/qa/unit/helper/scfiltertestbase.hxx
@@ -0,0 +1,68 @@
+/* -*- 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/.
+ */
+
+#pragma once
+
+#include <unotest/filters-test.hxx>
+#include <test/bootstrapfixture.hxx>
+
+#include <docsh.hxx>
+#include <address.hxx>
+
+#include <comphelper/fileformat.h>
+#include "scqahelperdllapi.h"
+
+#define ODS_FORMAT_TYPE                                                        
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | 
SfxFilterFlags::TEMPLATE                    \
+     | SfxFilterFlags::OWN | SfxFilterFlags::DEFAULT | 
SfxFilterFlags::ENCRYPTION                  \
+     | SfxFilterFlags::PASSWORDTOMODIFY)
+#define XLS_FORMAT_TYPE                                                        
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN   
                    \
+     | SfxFilterFlags::ENCRYPTION | SfxFilterFlags::PASSWORDTOMODIFY | 
SfxFilterFlags::PREFERED)
+#define XLSX_FORMAT_TYPE                                                       
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::ALIEN   
                    \
+     | SfxFilterFlags::STARONEFILTER | SfxFilterFlags::PREFERED)
+#define LOTUS123_FORMAT_TYPE                                                   
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::PREFERED)
+#define CSV_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | 
SfxFilterFlags::ALIEN)
+#define HTML_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | 
SfxFilterFlags::ALIEN)
+#define DIF_FORMAT_TYPE (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | 
SfxFilterFlags::ALIEN)
+#define XLS_XML_FORMAT_TYPE                                                    
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::PREFERED)
+#define XLSB_XML_FORMAT_TYPE                                                   
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | 
SfxFilterFlags::STARONEFILTER                \
+     | SfxFilterFlags::PREFERED)
+#define FODS_FORMAT_TYPE                                                       
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | SfxFilterFlags::OWN     
                    \
+     | SfxFilterFlags::STARONEFILTER)
+#define GNUMERIC_FORMAT_TYPE                                                   
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::ALIEN | SfxFilterFlags::PREFERED)
+#define XLTX_FORMAT_TYPE                                                       
                    \
+    (SfxFilterFlags::IMPORT | SfxFilterFlags::EXPORT | 
SfxFilterFlags::TEMPLATE                    \
+     | SfxFilterFlags::ALIEN | SfxFilterFlags::STARONEFILTER | 
SfxFilterFlags::PREFERED)
+
+class SCQAHELPER_DLLPUBLIC ScFilterTestBase : public test::BootstrapFixture,
+                                              public test::FiltersTest
+{
+protected:
+    ScDocShellRef loadDoc(const OUString& rURL, const OUString& rFilter, const 
OUString& rUserData,
+                          const OUString& rTypeName, SfxFilterFlags 
nFilterFlags,
+                          SotClipboardFormatId nClipboardID,
+                          sal_Int32 nFilterVersion = 
SOFFICE_FILEFORMAT_CURRENT);
+
+private:
+    // reference to document interface that we are testing
+    css::uno::Reference<css::uno::XInterface> m_xCalcComponent;
+
+public:
+    virtual void setUp() override;
+    virtual void tearDown() override;
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to