[Libreoffice-commits] online.git: test/httpwstest.cpp
Henry Castro
hcastro at collabora.com
Wed May 31 02:23:13 UTC 2017
test/httpwstest.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
New commits:
commit d31e0e3aacfa31990f43d68a39ff43f2203036bc
Author: Henry Castro <hcastro at collabora.com>
Date: Tue May 30 22:26:05 2017 -0400
wsd: test: undo conflict
Change-Id: Iafdcf3e206a425b7e55cca7818beb620e9d06f85
diff --git a/test/httpwstest.cpp b/test/httpwstest.cpp
index 5d80f40e..3df78569 100644
--- a/test/httpwstest.cpp
+++ b/test/httpwstest.cpp
@@ -107,6 +107,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
CPPUNIT_TEST(testCursorPosition);
CPPUNIT_TEST(testAlertAllUsers);
CPPUNIT_TEST(testViewInfoMsg);
+ CPPUNIT_TEST(testUndoConflict);
CPPUNIT_TEST_SUITE_END();
@@ -163,6 +164,7 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
void testCursorPosition();
void testAlertAllUsers();
void testViewInfoMsg();
+ void testUndoConflict();
void loadDoc(const std::string& documentURL, const std::string& testname);
@@ -2601,6 +2603,55 @@ void HTTPWSTest::testViewInfoMsg()
}
}
+void HTTPWSTest::testUndoConflict()
+{
+ const std::string testname = "testUndoConflict-";
+ Poco::JSON::Parser parser;
+ std::string docPath;
+ std::string docURL;
+ int conflict;
+
+ getDocumentPathAndURL("empty.odt", docPath, docURL, testname);
+
+ Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, docURL);
+ auto socket0 = connectLOKit(_uri, request, _response);
+ auto socket1 = connectLOKit(_uri, request, _response);
+
+ std::string response;
+ try
+ {
+ // Load first view
+ sendTextFrame(socket0, "load url=" + docURL);
+ response = getResponseString(socket0, "invalidatecursor:", testname + "0 ");
+
+ // Load second view
+ sendTextFrame(socket1, "load url=" + docURL);
+ response = getResponseString(socket1, "invalidatecursor:", testname + "1 ");
+
+ // edit first view
+ sendTextFrame(socket0, "key type=input char=97 key=0", testname);
+ response = getResponseString(socket0, "invalidatecursor:", testname + "0 ");
+ // edit second view
+ sendTextFrame(socket1, "key type=input char=98 key=0", testname);
+ response = getResponseString(socket1, "invalidatecursor:", testname + "1 ");
+ // try to undo first view
+ sendTextFrame(socket0, "uno .uno:Undo", testname);
+ // undo conflict
+ response = getResponseString(socket0, "unocommandresult:", testname + "0 ");
+ auto objJSON = parser.parse(response.substr(17)).extract<Poco::JSON::Object::Ptr>();
+ Poco::DynamicStruct dsJSON = *objJSON;
+ CPPUNIT_ASSERT_EQUAL(dsJSON["commandName"].toString(), std::string(".uno:Undo"));
+ CPPUNIT_ASSERT_EQUAL(dsJSON["success"].toString(), std::string("true"));
+ CPPUNIT_ASSERT_EQUAL(dsJSON["result"]["type"].toString(), std::string("long"));
+ CPPUNIT_ASSERT(Poco::strToInt(dsJSON["result"]["value"].toString(), conflict, 10));
+ CPPUNIT_ASSERT(conflict > 0); /*UNDO_CONFLICT*/
+ }
+ 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