[Libreoffice-commits] online.git: loolwsd/test
Henry Castro
hcastro at collabora.com
Tue Aug 30 21:46:27 UTC 2016
loolwsd/test/httpwstest.cpp | 117 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 117 insertions(+)
New commits:
commit cd40f694ab53ce22726fd20feffc428163677e4d
Author: Henry Castro <hcastro at collabora.com>
Date: Tue Aug 30 17:45:35 2016 -0400
loolwsd: test: optimal column/row width/height
diff --git a/loolwsd/test/httpwstest.cpp b/loolwsd/test/httpwstest.cpp
index 423e698..695399f 100644
--- a/loolwsd/test/httpwstest.cpp
+++ b/loolwsd/test/httpwstest.cpp
@@ -88,6 +88,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
CPPUNIT_TEST(testFontList);
CPPUNIT_TEST(testStateUnoCommand);
CPPUNIT_TEST(testColumnRowResize);
+ CPPUNIT_TEST(testOptimalResize);
CPPUNIT_TEST_SUITE_END();
@@ -124,6 +125,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
void testFontList();
void testStateUnoCommand();
void testColumnRowResize();
+ void testOptimalResize();
void loadDoc(const std::string& documentURL);
@@ -146,6 +148,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
std::string getFontList(const std::string& message);
void testStateChanged(const std::string& filename, std::vector<std::string>& vecComands);
double getColRowSize(const std::string& property, const std::string& message, int index);
+ double getColRowSize(const std::shared_ptr<Poco::Net::WebSocket>& socket, const std::string& item, int index);
public:
HTTPWSTest()
@@ -1943,6 +1946,16 @@ double HTTPWSTest::getColRowSize(const std::string& property, const std::string&
return item->getValue<double>("size");
}
+double HTTPWSTest::getColRowSize(const std::shared_ptr<Poco::Net::WebSocket>& socket, const std::string& item, int index)
+{
+ std::vector<char> response;
+ response = getResponseMessage(socket, "commandvalues:", "testColumnRowResize ");
+ CPPUNIT_ASSERT_MESSAGE("did not receive a commandvalues: message as expected", !response.empty());
+ std::vector<char> json(response.begin() + std::string("commandvalues:").length(), response.end());
+ json.push_back(0);
+ return getColRowSize(item, json.data(), index);
+}
+
void HTTPWSTest::testColumnRowResize()
{
try
@@ -2030,6 +2043,110 @@ void HTTPWSTest::testColumnRowResize()
}
}
+void HTTPWSTest::testOptimalResize()
+{
+ try
+ {
+ //std::vector<char> response;
+ std::string documentPath, documentURL;
+ double newWidth, newHeight;
+ Poco::JSON::Object objIndex, objSize, objModifier;
+
+ // row/column index 0
+ objIndex.set("type", "unsigned short");
+ objIndex.set("value", 1);
+
+ // size in twips
+ objSize.set("type", "unsigned short");
+ objSize.set("value", 3840);
+
+ // keyboard modifier
+ objModifier.set("type", "unsigned short");
+ objModifier.set("value", 0);
+
+ getDocumentPathAndURL("empty.ods", documentPath, documentURL);
+ Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL);
+ auto socket = loadDocAndGetSocket(_uri, documentURL, "testOptimalResize ");
+
+ const std::string commandValues = "commandvalues command=.uno:ViewRowColumnHeaders";
+ // send new column width
+ {
+ std::ostringstream oss;
+ Poco::JSON::Object objJSON;
+
+ objJSON.set("Column", objIndex);
+ objJSON.set("Width", objSize);
+
+ Poco::JSON::Stringifier::stringify(objJSON, oss);
+ sendTextFrame(socket, "uno .uno:ColumnWidth " + oss.str());
+ sendTextFrame(socket, commandValues);
+ newWidth = getColRowSize(socket, "columns", 0);
+ }
+ // send new row height
+ {
+ std::ostringstream oss;
+ Poco::JSON::Object objJSON;
+
+ objJSON.set("Row", objIndex);
+ objJSON.set("Height", objSize);
+
+ Poco::JSON::Stringifier::stringify(objJSON, oss);
+ sendTextFrame(socket, "uno .uno:RowHeight " + oss.str());
+ sendTextFrame(socket, commandValues);
+ newHeight = getColRowSize(socket, "rows", 0);
+ }
+
+ objIndex.set("value", 0);
+
+ // send optimal column width
+ {
+ std::ostringstream oss;
+ Poco::JSON::Object objJSON;
+ double optimalWidth;
+
+ objJSON.set("Col", objIndex);
+ objJSON.set("Modifier", objModifier);
+
+ Poco::JSON::Stringifier::stringify(objJSON, oss);
+ sendTextFrame(socket, "uno .uno:SelectColumn " + oss.str());
+ sendTextFrame(socket, "uno .uno:SetOptimalColumnWidthDirect");
+ sendTextFrame(socket, commandValues);
+ optimalWidth = getColRowSize(socket, "columns", 0);
+ CPPUNIT_ASSERT(optimalWidth < newWidth);
+ }
+
+ // send optimal row height
+ {
+ std::ostringstream oss;
+ Poco::JSON::Object objSelect, objOptHeight, objExtra;
+ double optimalHeight;
+
+ objSelect.set("Row", objIndex);
+ objSelect.set("Modifier", objModifier);
+
+ objExtra.set("type", "unsigned short");
+ objExtra.set("value", 0);
+
+ objOptHeight.set("aExtraHeight", objExtra);
+
+ Poco::JSON::Stringifier::stringify(objSelect, oss);
+ sendTextFrame(socket, "uno .uno:SelectRow " + oss.str());
+ oss.str(""); oss.clear();
+
+ Poco::JSON::Stringifier::stringify(objOptHeight, oss);
+ sendTextFrame(socket, "uno .uno:SetOptimalRowHeight " + oss.str());
+
+ sendTextFrame(socket, commandValues);
+ optimalHeight = getColRowSize(socket, "rows", 0);
+ CPPUNIT_ASSERT(optimalHeight < newHeight);
+ }
+ }
+ catch (const Poco::Exception& exc)
+ {
+ CPPUNIT_FAIL(exc.displayText());
+ }
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(HTTPWSTest);
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list