sw/qa/inc/swmodeltestbase.hxx  |   17 ++++++++++++++++-
 sw/qa/unit/swmodeltestbase.cxx |   24 +++++++++++++++++++++---
 2 files changed, 37 insertions(+), 4 deletions(-)

New commits:
commit de78f7460483d6d25f14c168d9648174b2a4cc30
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Fri Mar 25 14:01:47 2022 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Wed Mar 30 14:52:20 2022 +0200

    add support to explicitly test swriter/sweb layout
    
    Change-Id: Ib47526d35428a95b081c88011d733397339f288d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132121
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    (cherry picked from commit bd769805180c9b0aadca5301e29161c2d84fbe64)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132182

diff --git a/sw/qa/inc/swmodeltestbase.hxx b/sw/qa/inc/swmodeltestbase.hxx
index 65b673789a78..7a9ac5dcc8a2 100644
--- a/sw/qa/inc/swmodeltestbase.hxx
+++ b/sw/qa/inc/swmodeltestbase.hxx
@@ -325,11 +325,20 @@ protected:
 
     void load(std::u16string_view pDir, const char* pName, const char* 
pPassword = nullptr)
     {
-        return loadURL(m_directories.getURLFromSrc(pDir) + 
OUString::createFromAscii(pName), pName, pPassword);
+        return loadURLWithComponent(m_directories.getURLFromSrc(pDir) + 
OUString::createFromAscii(pName),
+                                    "com.sun.star.text.TextDocument", pName, 
pPassword);
+    }
+
+    void load_web(std::u16string_view pDir, const char* pName, const char* 
pPassword = nullptr)
+    {
+        return loadURLWithComponent(m_directories.getURLFromSrc(pDir) + 
OUString::createFromAscii(pName),
+                                    "com.sun.star.text.WebDocument", pName, 
pPassword);
     }
 
     void setTestInteractionHandler(const char* pPassword, 
std::vector<beans::PropertyValue>& rFilterOptions);
 
+    void loadURLWithComponent(OUString const& rURL, OUString const& 
rComponent, const char* pName, const char* pPassword);
+
     void loadURL(OUString const& rURL, const char* pName, const char* 
pPassword = nullptr);
 
     void reload(const char* pFilter, const char* filename, const char* 
pPassword = nullptr);
@@ -384,6 +393,12 @@ protected:
      */
     SwDoc* createSwDoc(
         std::u16string_view rDataDirectory = std::u16string_view(), const 
char* pName = nullptr);
+
+    /**
+     * As createSwDoc except a Web Document in Browse Mode
+     */
+    SwDoc* createSwWebDoc(
+        std::u16string_view rDataDirectory = std::u16string_view(), const 
char* pName = nullptr);
 };
 
 /**
diff --git a/sw/qa/unit/swmodeltestbase.cxx b/sw/qa/unit/swmodeltestbase.cxx
index ee35a1cc7259..709a7a1a4de1 100644
--- a/sw/qa/unit/swmodeltestbase.cxx
+++ b/sw/qa/unit/swmodeltestbase.cxx
@@ -478,7 +478,8 @@ void SwModelTestBase::setTestInteractionHandler(const char* 
pPassword,
 
 void SwModelTestBase::header() {}
 
-void SwModelTestBase::loadURL(OUString const& rURL, const char* pName, const 
char* pPassword)
+void SwModelTestBase::loadURLWithComponent(OUString const& rURL, OUString 
const& rComponent,
+                                           const char* pName, const char* 
pPassword)
 {
     if (mxComponent.is())
         mxComponent->dispose();
@@ -510,8 +511,8 @@ void SwModelTestBase::loadURL(OUString const& rURL, const 
char* pName, const cha
     if (pName)
         std::cout << pName << ":\n";
     mnStartTime = osl_getGlobalTimer();
-    mxComponent = loadFromDesktop(rURL, "com.sun.star.text.TextDocument",
-                                  
comphelper::containerToSequence(aFilterOptions));
+    mxComponent
+        = loadFromDesktop(rURL, rComponent, 
comphelper::containerToSequence(aFilterOptions));
 
     if (pPassword)
     {
@@ -524,6 +525,11 @@ void SwModelTestBase::loadURL(OUString const& rURL, const 
char* pName, const cha
         calcLayout();
 }
 
+void SwModelTestBase::loadURL(OUString const& rURL, const char* pName, const 
char* pPassword)
+{
+    loadURLWithComponent(rURL, "com.sun.star.text.TextDocument", pName, 
pPassword);
+}
+
 void SwModelTestBase::reload(const char* pFilter, const char* filename, const 
char* pPassword)
 {
     uno::Reference<frame::XStorable> xStorable(mxComponent, uno::UNO_QUERY);
@@ -727,4 +733,16 @@ SwDoc* SwModelTestBase::createSwDoc(std::u16string_view 
rDataDirectory, const ch
     return pTextDoc->GetDocShell()->GetDoc();
 }
 
+SwDoc* SwModelTestBase::createSwWebDoc(std::u16string_view rDataDirectory, 
const char* pName)
+{
+    if (rDataDirectory.empty() || !pName)
+        loadURL("private:factory/swriter/web", nullptr);
+    else
+        load_web(rDataDirectory, pName);
+
+    SwXTextDocument* pTextDoc = 
dynamic_cast<SwXTextDocument*>(mxComponent.get());
+    CPPUNIT_ASSERT(pTextDoc);
+    return pTextDoc->GetDocShell()->GetDoc();
+}
+
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Reply via email to