[Libreoffice-commits] online.git: test/httpwstest.cpp test/Makefile.am test/UnitUNOCommand.cpp
Miklos Vajna (via logerrit)
logerrit at kemper.freedesktop.org
Mon Nov 18 07:57:02 UTC 2019
test/Makefile.am | 4
test/UnitUNOCommand.cpp | 279 ++++++++++++++++++++++++++++++++++++++++++++++++
test/httpwstest.cpp | 225 --------------------------------------
3 files changed, 283 insertions(+), 225 deletions(-)
New commits:
commit 703eb28a979fae70bc49204d870c46084921fb58
Author: Miklos Vajna <vmiklos at collabora.com>
AuthorDate: Mon Nov 18 08:56:35 2019 +0100
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Mon Nov 18 08:56:41 2019 +0100
Convert "uno command" tests to a new-style one
So that they are in-process, which means it's easier to debug when they
fail.
Change-Id: I79eaa8014deda25ae31b0ad5ff38a8023ef0ae3e
diff --git a/test/Makefile.am b/test/Makefile.am
index 2faf25138..30632a1f6 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -30,6 +30,7 @@ noinst_LTLIBRARIES = \
unit-render-shape.la \
unit-each-view.la \
unit-session.la \
+ unit-uno-command.la \
unit-wopi-loadencoded.la unit-wopi-temp.la
MAGIC_TO_FORCE_SHLIB_CREATION = -rpath /dummy
@@ -148,6 +149,8 @@ unit_each_view_la_SOURCES = UnitEachView.cpp
unit_each_view_la_LIBADD = $(CPPUNIT_LIBS)
unit_session_la_SOURCES = UnitSession.cpp
unit_session_la_LIBADD = $(CPPUNIT_LIBS)
+unit_uno_command_la_SOURCES = UnitUNOCommand.cpp
+unit_uno_command_la_LIBADD = $(CPPUNIT_LIBS)
if HAVE_LO_PATH
SYSTEM_STAMP = @SYSTEMPLATE_PATH@/system_stamp
@@ -176,6 +179,7 @@ TESTS = unit-copy-paste.la unit-typing.la unit-convert.la unit-prefork.la unit-t
unit-render-shape.la \
unit-each-view.la \
unit-session.la \
+ unit-uno-command.la \
unit-wopi-loadencoded.la unit-wopi-temp.la
# TESTS = unit-client.la
# TESTS += unit-admin.la
diff --git a/test/UnitUNOCommand.cpp b/test/UnitUNOCommand.cpp
new file mode 100644
index 000000000..09a67ba8b
--- /dev/null
+++ b/test/UnitUNOCommand.cpp
@@ -0,0 +1,279 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
+/*
+ * 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 <memory>
+#include <ostream>
+#include <set>
+#include <string>
+
+#include <Poco/Exception.h>
+#include <Poco/RegularExpression.h>
+#include <Poco/URI.h>
+#include <cppunit/TestAssert.h>
+
+#include <Unit.hpp>
+#include <helpers.hpp>
+
+class LOOLWebSocket;
+
+namespace
+{
+void testStateChanged(const std::string& filename, std::set<std::string>& commands)
+{
+ const auto testname = "stateChanged_" + filename + " ";
+
+ Poco::RegularExpression reUno("\\.[a-zA-Z]*\\:[a-zA-Z]*\\=");
+
+ std::shared_ptr<LOOLWebSocket> socket = helpers::loadDocAndGetSocket(filename, Poco::URI(helpers::getTestServerURI()), testname);
+ helpers::SocketProcessor(testname, socket,
+ [&](const std::string& msg)
+ {
+ Poco::RegularExpression::MatchVec matches;
+ if (reUno.match(msg, 0, matches) > 0 && matches.size() == 1)
+ {
+ commands.erase(msg.substr(matches[0].offset, matches[0].length));
+ }
+
+ return !commands.empty();
+ });
+
+ if (!commands.empty())
+ {
+ std::ostringstream ostr;
+ ostr << filename << " : Missing Uno Commands: " << std::endl;
+ for (auto & itUno : commands)
+ {
+ ostr << itUno << std::endl;
+ }
+
+ CPPUNIT_FAIL(ostr.str());
+ }
+}
+}
+
+/// Test suite for UNO commands.
+class UnitUNOCommand : public UnitWSD
+{
+ TestResult testStateUnoCommandWriter();
+ TestResult testStateUnoCommandCalc();
+ TestResult testStateUnoCommandImpress();
+
+public:
+ void invokeTest() override;
+};
+
+UnitBase::TestResult UnitUNOCommand::testStateUnoCommandWriter()
+{
+ std::set<std::string> writerCommands
+ {
+ ".uno:BackColor=",
+ ".uno:BackgroundColor=",
+ ".uno:Bold=",
+ ".uno:CenterPara=",
+ ".uno:CharBackColor=",
+ ".uno:CharBackgroundExt=",
+ ".uno:CharFontName=",
+ ".uno:Color=",
+ ".uno:DefaultBullet=",
+ ".uno:DefaultNumbering=",
+ ".uno:FontColor=",
+ ".uno:FontHeight=",
+ ".uno:Italic=",
+ ".uno:JustifyPara=",
+ ".uno:OutlineFont=",
+ ".uno:LeftPara=",
+ ".uno:RightPara=",
+ ".uno:Shadowed=",
+ ".uno:SubScript=",
+ ".uno:SuperScript=",
+ ".uno:Strikeout=",
+ ".uno:StyleApply=",
+ ".uno:Underline=",
+ ".uno:ModifiedStatus=",
+ ".uno:Undo=",
+ ".uno:Redo=",
+ ".uno:Cut=",
+ ".uno:Copy=",
+ ".uno:Paste=",
+ ".uno:SelectAll=",
+ ".uno:InsertAnnotation=",
+ ".uno:InsertRowsBefore=",
+ ".uno:InsertRowsAfter=",
+ ".uno:InsertColumnsBefore=",
+ ".uno:InsertColumnsAfter=",
+ ".uno:DeleteRows=",
+ ".uno:DeleteColumns=",
+ ".uno:DeleteTable=",
+ ".uno:SelectTable=",
+ ".uno:EntireRow=",
+ ".uno:EntireColumn=",
+ ".uno:EntireCell=",
+ ".uno:InsertMode=",
+ ".uno:StateTableCell=",
+ ".uno:StatePageNumber=",
+ ".uno:StateWordCount=",
+ ".uno:SelectionMode=",
+ ".uno:NumberFormatCurrency=",
+ ".uno:NumberFormatPercent=",
+ ".uno:NumberFormatDate="
+ };
+
+ try
+ {
+ testStateChanged("empty.odt", writerCommands);
+ }
+ catch (const Poco::Exception& exc)
+ {
+ CPPUNIT_FAIL(exc.displayText());
+ }
+ return TestResult::Ok;
+}
+
+UnitBase::TestResult UnitUNOCommand::testStateUnoCommandCalc()
+{
+ std::set<std::string> calcCommands
+ {
+ ".uno:BackgroundColor=",
+ ".uno:Bold=",
+ ".uno:CenterPara=",
+ ".uno:CharBackColor=",
+ ".uno:CharFontName=",
+ ".uno:Color=",
+ ".uno:FontHeight=",
+ ".uno:Italic=",
+ ".uno:JustifyPara=",
+ ".uno:OutlineFont=",
+ ".uno:LeftPara=",
+ ".uno:RightPara=",
+ ".uno:Shadowed=",
+ ".uno:SubScript=",
+ ".uno:SuperScript=",
+ ".uno:Strikeout=",
+ ".uno:StyleApply=",
+ ".uno:Underline=",
+ ".uno:ModifiedStatus=",
+ ".uno:Undo=",
+ ".uno:Redo=",
+ ".uno:Cut=",
+ ".uno:Copy=",
+ ".uno:Paste=",
+ ".uno:SelectAll=",
+ ".uno:InsertAnnotation=",
+ ".uno:InsertRowsBefore=",
+ ".uno:InsertRowsAfter=",
+ ".uno:InsertColumnsBefore=",
+ ".uno:InsertColumnsAfter=",
+ ".uno:DeleteRows=",
+ ".uno:DeleteColumns=",
+ ".uno:StatusDocPos=",
+ ".uno:RowColSelCount=",
+ ".uno:StatusPageStyle=",
+ ".uno:InsertMode=",
+ ".uno:StatusSelectionMode=",
+ ".uno:StateTableCell=",
+ ".uno:StatusBarFunc=",
+ ".uno:WrapText=",
+ ".uno:ToggleMergeCells=",
+ ".uno:NumberFormatCurrency=",
+ ".uno:NumberFormatPercent=",
+ ".uno:NumberFormatDate="
+ };
+
+ try
+ {
+ testStateChanged("empty.ods", calcCommands);
+ }
+ catch (const Poco::Exception& exc)
+ {
+ CPPUNIT_FAIL(exc.displayText());
+ }
+ return TestResult::Ok;
+}
+
+UnitBase::TestResult UnitUNOCommand::testStateUnoCommandImpress()
+{
+ std::set<std::string> impressCommands
+ {
+ ".uno:Bold=",
+ ".uno:CenterPara=",
+ ".uno:CharBackColor=",
+ ".uno:CharFontName=",
+ ".uno:Color=",
+ ".uno:DefaultBullet=",
+ ".uno:DefaultNumbering=",
+ ".uno:FontHeight=",
+ ".uno:Italic=",
+ ".uno:JustifyPara=",
+ ".uno:OutlineFont=",
+ ".uno:LeftPara=",
+ ".uno:RightPara=",
+ ".uno:Shadowed=",
+ ".uno:SubScript=",
+ ".uno:SuperScript=",
+ ".uno:Strikeout=",
+ ".uno:StyleApply=",
+ ".uno:Underline=",
+ ".uno:ModifiedStatus=",
+ ".uno:Undo=",
+ ".uno:Redo=",
+ ".uno:InsertPage=",
+ ".uno:DeletePage=",
+ ".uno:DuplicatePage=",
+ ".uno:Cut=",
+ ".uno:Copy=",
+ ".uno:Paste=",
+ ".uno:SelectAll=",
+ ".uno:InsertAnnotation=",
+ ".uno:InsertRowsBefore=",
+ ".uno:InsertRowsAfter=",
+ ".uno:InsertColumnsBefore=",
+ ".uno:InsertColumnsAfter=",
+ ".uno:DeleteRows=",
+ ".uno:DeleteColumns=",
+ ".uno:SelectTable=",
+ ".uno:EntireRow=",
+ ".uno:EntireColumn=",
+ ".uno:AssignLayout=",
+ ".uno:PageStatus=",
+ ".uno:LayoutStatus=",
+ ".uno:Context=",
+ ".uno:InsertSymbol=",
+ };
+
+ try
+ {
+ testStateChanged("empty.odp", impressCommands);
+ }
+ catch (const Poco::Exception& exc)
+ {
+ CPPUNIT_FAIL(exc.displayText());
+ }
+ return TestResult::Ok;
+}
+
+void UnitUNOCommand::invokeTest()
+{
+ UnitBase::TestResult result = testStateUnoCommandWriter();
+ if (result != TestResult::Ok)
+ exitTest(result);
+
+ result = testStateUnoCommandCalc();
+ if (result != TestResult::Ok)
+ exitTest(result);
+
+ result = testStateUnoCommandImpress();
+ if (result != TestResult::Ok)
+ exitTest(result);
+
+ exitTest(TestResult::Ok);
+}
+
+UnitBase* unit_create_wsd(void) { return new UnitUNOCommand(); }
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/httpwstest.cpp b/test/httpwstest.cpp
index 1bb033bdf..2a7a3db9b 100644
--- a/test/httpwstest.cpp
+++ b/test/httpwstest.cpp
@@ -62,9 +62,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
CPPUNIT_TEST(testCalcRenderAfterNewView51);
CPPUNIT_TEST(testCalcRenderAfterNewView53);
CPPUNIT_TEST(testFontList);
- CPPUNIT_TEST(testStateUnoCommandWriter);
- CPPUNIT_TEST(testStateUnoCommandCalc);
- CPPUNIT_TEST(testStateUnoCommandImpress);
// FIXME CPPUNIT_TEST(testColumnRowResize);
// FIXME CPPUNIT_TEST(testOptimalResize);
CPPUNIT_TEST(testGraphicInvalidate);
@@ -97,9 +94,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
void testCalcRenderAfterNewView51();
void testCalcRenderAfterNewView53();
void testFontList();
- void testStateUnoCommandWriter();
- void testStateUnoCommandCalc();
- void testStateUnoCommandImpress();
void testColumnRowResize();
void testOptimalResize();
void testGraphicInvalidate();
@@ -129,7 +123,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
const std::string& testname);
std::string getFontList(const std::string& message);
- void testStateChanged(const std::string& filename, std::set<std::string>& vecComands);
double getColRowSize(const std::string& property, const std::string& message, int index);
double getColRowSize(const std::shared_ptr<LOOLWebSocket>& socket, const std::string& item, int index, const std::string& testname);
@@ -1269,224 +1262,6 @@ void HTTPWSTest::testFontList()
}
}
-void HTTPWSTest::testStateChanged(const std::string& filename, std::set<std::string>& commands)
-{
- const auto testname = "stateChanged_" + filename + " ";
-
- Poco::RegularExpression reUno("\\.[a-zA-Z]*\\:[a-zA-Z]*\\=");
-
- std::shared_ptr<LOOLWebSocket> socket = loadDocAndGetSocket(filename, _uri, testname);
- SocketProcessor(testname, socket,
- [&](const std::string& msg)
- {
- Poco::RegularExpression::MatchVec matches;
- if (reUno.match(msg, 0, matches) > 0 && matches.size() == 1)
- {
- commands.erase(msg.substr(matches[0].offset, matches[0].length));
- }
-
- return !commands.empty();
- });
-
- if (!commands.empty())
- {
- std::ostringstream ostr;
- ostr << filename << " : Missing Uno Commands: " << std::endl;
- for (auto & itUno : commands)
- {
- ostr << itUno << std::endl;
- }
-
- CPPUNIT_FAIL(ostr.str());
- }
-}
-
-void HTTPWSTest::testStateUnoCommandWriter()
-{
- std::set<std::string> writerCommands
- {
- ".uno:BackColor=",
- ".uno:BackgroundColor=",
- ".uno:Bold=",
- ".uno:CenterPara=",
- ".uno:CharBackColor=",
- ".uno:CharBackgroundExt=",
- ".uno:CharFontName=",
- ".uno:Color=",
- ".uno:DefaultBullet=",
- ".uno:DefaultNumbering=",
- ".uno:FontColor=",
- ".uno:FontHeight=",
- ".uno:Italic=",
- ".uno:JustifyPara=",
- ".uno:OutlineFont=",
- ".uno:LeftPara=",
- ".uno:RightPara=",
- ".uno:Shadowed=",
- ".uno:SubScript=",
- ".uno:SuperScript=",
- ".uno:Strikeout=",
- ".uno:StyleApply=",
- ".uno:Underline=",
- ".uno:ModifiedStatus=",
- ".uno:Undo=",
- ".uno:Redo=",
- ".uno:Cut=",
- ".uno:Copy=",
- ".uno:Paste=",
- ".uno:SelectAll=",
- ".uno:InsertAnnotation=",
- ".uno:InsertRowsBefore=",
- ".uno:InsertRowsAfter=",
- ".uno:InsertColumnsBefore=",
- ".uno:InsertColumnsAfter=",
- ".uno:DeleteRows=",
- ".uno:DeleteColumns=",
- ".uno:DeleteTable=",
- ".uno:SelectTable=",
- ".uno:EntireRow=",
- ".uno:EntireColumn=",
- ".uno:EntireCell=",
- ".uno:InsertMode=",
- ".uno:StateTableCell=",
- ".uno:StatePageNumber=",
- ".uno:StateWordCount=",
- ".uno:SelectionMode=",
- ".uno:NumberFormatCurrency=",
- ".uno:NumberFormatPercent=",
- ".uno:NumberFormatDate="
- };
-
- try
- {
- testStateChanged("empty.odt", writerCommands);
- }
- catch (const Poco::Exception& exc)
- {
- CPPUNIT_FAIL(exc.displayText());
- }
-}
-
-void HTTPWSTest::testStateUnoCommandCalc()
-{
- std::set<std::string> calcCommands
- {
- ".uno:BackgroundColor=",
- ".uno:Bold=",
- ".uno:CenterPara=",
- ".uno:CharBackColor=",
- ".uno:CharFontName=",
- ".uno:Color=",
- ".uno:FontHeight=",
- ".uno:Italic=",
- ".uno:JustifyPara=",
- ".uno:OutlineFont=",
- ".uno:LeftPara=",
- ".uno:RightPara=",
- ".uno:Shadowed=",
- ".uno:SubScript=",
- ".uno:SuperScript=",
- ".uno:Strikeout=",
- ".uno:StyleApply=",
- ".uno:Underline=",
- ".uno:ModifiedStatus=",
- ".uno:Undo=",
- ".uno:Redo=",
- ".uno:Cut=",
- ".uno:Copy=",
- ".uno:Paste=",
- ".uno:SelectAll=",
- ".uno:InsertAnnotation=",
- ".uno:InsertRowsBefore=",
- ".uno:InsertRowsAfter=",
- ".uno:InsertColumnsBefore=",
- ".uno:InsertColumnsAfter=",
- ".uno:DeleteRows=",
- ".uno:DeleteColumns=",
- ".uno:StatusDocPos=",
- ".uno:RowColSelCount=",
- ".uno:StatusPageStyle=",
- ".uno:InsertMode=",
- ".uno:StatusSelectionMode=",
- ".uno:StateTableCell=",
- ".uno:StatusBarFunc=",
- ".uno:WrapText=",
- ".uno:ToggleMergeCells=",
- ".uno:NumberFormatCurrency=",
- ".uno:NumberFormatPercent=",
- ".uno:NumberFormatDate="
- };
-
- try
- {
- testStateChanged("empty.ods", calcCommands);
- }
- catch (const Poco::Exception& exc)
- {
- CPPUNIT_FAIL(exc.displayText());
- }
-}
-
-void HTTPWSTest::testStateUnoCommandImpress()
-{
- std::set<std::string> impressCommands
- {
- ".uno:Bold=",
- ".uno:CenterPara=",
- ".uno:CharBackColor=",
- ".uno:CharFontName=",
- ".uno:Color=",
- ".uno:DefaultBullet=",
- ".uno:DefaultNumbering=",
- ".uno:FontHeight=",
- ".uno:Italic=",
- ".uno:JustifyPara=",
- ".uno:OutlineFont=",
- ".uno:LeftPara=",
- ".uno:RightPara=",
- ".uno:Shadowed=",
- ".uno:SubScript=",
- ".uno:SuperScript=",
- ".uno:Strikeout=",
- ".uno:StyleApply=",
- ".uno:Underline=",
- ".uno:ModifiedStatus=",
- ".uno:Undo=",
- ".uno:Redo=",
- ".uno:InsertPage=",
- ".uno:DeletePage=",
- ".uno:DuplicatePage=",
- ".uno:Cut=",
- ".uno:Copy=",
- ".uno:Paste=",
- ".uno:SelectAll=",
- ".uno:InsertAnnotation=",
- ".uno:InsertRowsBefore=",
- ".uno:InsertRowsAfter=",
- ".uno:InsertColumnsBefore=",
- ".uno:InsertColumnsAfter=",
- ".uno:DeleteRows=",
- ".uno:DeleteColumns=",
- ".uno:SelectTable=",
- ".uno:EntireRow=",
- ".uno:EntireColumn=",
- ".uno:AssignLayout=",
- ".uno:PageStatus=",
- ".uno:LayoutStatus=",
- ".uno:Context=",
- ".uno:InsertSymbol=",
- };
-
- try
- {
- testStateChanged("empty.odp", impressCommands);
- }
- catch (const Poco::Exception& exc)
- {
- CPPUNIT_FAIL(exc.displayText());
- }
-}
-
double HTTPWSTest::getColRowSize(const std::string& property, const std::string& message, int index)
{
Poco::JSON::Parser parser;
More information about the Libreoffice-commits
mailing list