loolwsd: test: state changed UNO commands
This commit is contained in:
parent
71efcf2b28
commit
adf4369237
1 changed files with 215 additions and 1 deletions
|
@ -84,6 +84,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
|
|||
CPPUNIT_TEST(testInsertAnnotationCalc);
|
||||
CPPUNIT_TEST(testCalcEditRendering);
|
||||
CPPUNIT_TEST(testFontList);
|
||||
CPPUNIT_TEST(testStateUnoCommand);
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
|
@ -116,6 +117,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
|
|||
void testInsertAnnotationCalc();
|
||||
void testCalcEditRendering();
|
||||
void testFontList();
|
||||
void testStateUnoCommand();
|
||||
|
||||
void loadDoc(const std::string& documentURL);
|
||||
|
||||
|
@ -136,6 +138,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
|
|||
int newWidth, int newHeight)> checkhandler);
|
||||
|
||||
std::string getFontList(const std::string& message);
|
||||
void testStateChanged(const std::string& filename, std::vector<std::string>& vecComands);
|
||||
|
||||
public:
|
||||
HTTPWSTest()
|
||||
|
@ -1611,7 +1614,218 @@ void HTTPWSTest::testFontList()
|
|||
std::copy(response.begin() + std::string("commandvalues:").length() + 1, response.end(), std::ostream_iterator<char>(streamResponse));
|
||||
text = getFontList(streamResponse.str());
|
||||
CPPUNIT_ASSERT(!text.empty());
|
||||
std::cerr << "testFontNames : " << text << std::endl;
|
||||
}
|
||||
catch (const Poco::Exception& exc)
|
||||
{
|
||||
CPPUNIT_FAIL(exc.displayText());
|
||||
}
|
||||
}
|
||||
|
||||
void HTTPWSTest::testStateChanged(const std::string& filename, std::vector<std::string>& vecCommands)
|
||||
{
|
||||
std::string docPath;
|
||||
std::string docURL;
|
||||
std::string response;
|
||||
std::string text;
|
||||
|
||||
getDocumentPathAndURL(filename.c_str(), docPath, docURL);
|
||||
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, docURL);
|
||||
|
||||
auto socket = loadDocAndGetSocket(_uri, docURL, "testCommands ");
|
||||
SocketProcessor("", socket,
|
||||
[&](const std::string& msg)
|
||||
{
|
||||
Poco::RegularExpression::MatchVec matches;
|
||||
Poco::RegularExpression reUno("\\.[a-zA-Z]*\\:[a-zA-Z]*\\=");
|
||||
|
||||
if (reUno.match(msg, 0, matches) > 0 && matches.size() == 1)
|
||||
{
|
||||
const auto str = msg.substr(matches[0].offset, matches[0].length);
|
||||
auto result = std::find(std::begin(vecCommands), std::end(vecCommands), str);
|
||||
|
||||
if (result != std::end(vecCommands))
|
||||
{
|
||||
vecCommands.erase(result);
|
||||
}
|
||||
}
|
||||
|
||||
if (vecCommands.size() == 0)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
});
|
||||
|
||||
if (vecCommands.size() > 0 )
|
||||
{
|
||||
std::ostringstream ostr;
|
||||
|
||||
ostr << filename << " : Missing Uno Commands: " << std::endl;
|
||||
for (auto itUno : vecCommands)
|
||||
ostr << itUno << std::endl;
|
||||
|
||||
CPPUNIT_FAIL(ostr.str());
|
||||
}
|
||||
}
|
||||
|
||||
void HTTPWSTest::testStateUnoCommand()
|
||||
{
|
||||
std::vector<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:MergeCells=",
|
||||
".uno:StatusDocPos=",
|
||||
".uno:RowColSelCount=",
|
||||
".uno:StatusPageStyle=",
|
||||
".uno:InsertMode=",
|
||||
".uno:StatusSelectionMode=",
|
||||
".uno:StateTableCell=",
|
||||
".uno:StatusBarFunc=",
|
||||
".uno:WrapText=",
|
||||
".uno:ToggleMergeCells=",
|
||||
".uno:NumberFormatCurrency=",
|
||||
".uno:NumberFormatPercent=",
|
||||
".uno:NumberFormatDate="
|
||||
};
|
||||
|
||||
std::vector<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:MergeCells=",
|
||||
".uno:InsertMode=",
|
||||
".uno:StateTableCell=",
|
||||
".uno:StatePageNumber=",
|
||||
".uno:StateWordCount=",
|
||||
".uno:SelectionMode=",
|
||||
".uno:NumberFormatCurrency=",
|
||||
".uno:NumberFormatPercent=",
|
||||
".uno:NumberFormatDate="
|
||||
};
|
||||
|
||||
std::vector<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:MergeCells=",
|
||||
".uno:AssignLayout=",
|
||||
".uno:PageStatus=",
|
||||
".uno:LayoutStatus=",
|
||||
".uno:Context=",
|
||||
};
|
||||
|
||||
try
|
||||
{
|
||||
testStateChanged(std::string("setclientpart.ods"), calcCommands);
|
||||
testStateChanged(std::string("hello.odt"), writerCommands);
|
||||
testStateChanged(std::string("setclientpart.odp"), impressCommands);
|
||||
}
|
||||
catch (const Poco::Exception& exc)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue