wsd: test: faster httpwstest
Change-Id: Ifa68800ba96fd8adaedd82b1551686213c1bb309 Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
This commit is contained in:
parent
1d482cf5cf
commit
576dc6254f
1 changed files with 8 additions and 96 deletions
|
@ -5,6 +5,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include <chrono>
|
||||
#include <config.h>
|
||||
|
||||
#include "WebSocketSession.hpp"
|
||||
|
@ -42,7 +43,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
|
|||
|
||||
CPPUNIT_TEST(testExoticLang);
|
||||
CPPUNIT_TEST(testSaveOnDisconnect);
|
||||
CPPUNIT_TEST(testSavePassiveOnDisconnect);
|
||||
// This test is failing
|
||||
//CPPUNIT_TEST(testReloadWhileDisconnecting);
|
||||
CPPUNIT_TEST(testInactiveClient);
|
||||
|
@ -53,7 +53,6 @@ class HTTPWSTest : public CPPUNIT_NS::TestFixture
|
|||
|
||||
void testExoticLang();
|
||||
void testSaveOnDisconnect();
|
||||
void testSavePassiveOnDisconnect();
|
||||
void testReloadWhileDisconnecting();
|
||||
void testInactiveClient();
|
||||
void testViewInfoMsg();
|
||||
|
@ -139,26 +138,16 @@ void HTTPWSTest::testSaveOnDisconnect()
|
|||
|
||||
sendTextFrame(socket2, "userinactive");
|
||||
|
||||
deleteAll(socket1, testname);
|
||||
deleteAll(socket1, testname, std::chrono::milliseconds(100), 1);
|
||||
sendTextFrame(socket1, "paste mimetype=text/plain;charset=utf-8\n" + text, testname);
|
||||
|
||||
TST_LOG("Validating what we sent before disconnecting.");
|
||||
|
||||
// Check if the document contains the pasted text.
|
||||
const std::string selection = getAllText(socket1, testname);
|
||||
LOK_ASSERT_EQUAL("textselectioncontent: " + text, selection);
|
||||
|
||||
// Closing connection too fast might not flush buffers.
|
||||
// Often nothing more than the SelectAll reaches the server before
|
||||
// the socket is closed, when the doc is not even modified yet.
|
||||
getResponseMessage(socket1, "statechanged", testname);
|
||||
getResponseMessage(socket1, "pasteresult: success", testname);
|
||||
|
||||
kitcount = getCoolKitProcessCount();
|
||||
|
||||
// Shutdown abruptly.
|
||||
TST_LOG("Closing connection after pasting.");
|
||||
|
||||
socket1->asyncShutdown();
|
||||
socket1->asyncShutdown(); // Should trigger saving.
|
||||
socket2->asyncShutdown();
|
||||
|
||||
LOK_ASSERT_MESSAGE("Expected successful disconnection of the WebSocket 1",
|
||||
|
@ -198,85 +187,6 @@ void HTTPWSTest::testSaveOnDisconnect()
|
|||
}
|
||||
}
|
||||
|
||||
void HTTPWSTest::testSavePassiveOnDisconnect()
|
||||
{
|
||||
const std::string testname = "savePassiveOnDisconnect- ";
|
||||
|
||||
const std::string text = helpers::genRandomString(40);
|
||||
TST_LOG("Test string: [" << text << "].");
|
||||
|
||||
std::string documentPath, documentURL;
|
||||
getDocumentPathAndURL("hello.odt", documentPath, documentURL, testname);
|
||||
|
||||
int kitcount = -1;
|
||||
try
|
||||
{
|
||||
std::shared_ptr<http::WebSocketSession> socket1
|
||||
= loadDocAndGetSession(_socketPoll, _uri, documentURL, testname + "1 ");
|
||||
getResponseMessage(socket1, "textselection", testname);
|
||||
|
||||
std::shared_ptr<http::WebSocketSession> socket2
|
||||
= loadDocAndGetSession(_socketPoll, _uri, documentURL, testname + "2 ");
|
||||
|
||||
deleteAll(socket1, testname);
|
||||
|
||||
sendTextFrame(socket1, "paste mimetype=text/plain;charset=utf-8\n" + text, testname);
|
||||
getResponseMessage(socket1, "textselection:", testname);
|
||||
|
||||
// Check if the document contains the pasted text.
|
||||
const std::string selection = getAllText(socket1, testname);
|
||||
LOK_ASSERT_EQUAL("textselectioncontent: " + text, selection);
|
||||
|
||||
// Closing connection too fast might not flush buffers.
|
||||
// Often nothing more than the SelectAll reaches the server before
|
||||
// the socket is closed, when the doc is not even modified yet.
|
||||
getResponseMessage(socket1, "statechanged", testname);
|
||||
|
||||
kitcount = getCoolKitProcessCount();
|
||||
|
||||
// Shutdown abruptly.
|
||||
TST_LOG("Closing connection after pasting.");
|
||||
socket1->asyncShutdown(); // Should trigger saving.
|
||||
socket2->asyncShutdown();
|
||||
|
||||
LOK_ASSERT_MESSAGE("Expected successful disconnection of the WebSocket 1",
|
||||
socket1->waitForDisconnection(std::chrono::seconds(5)));
|
||||
LOK_ASSERT_MESSAGE("Expected successful disconnection of the WebSocket 2",
|
||||
socket2->waitForDisconnection(std::chrono::seconds(5)));
|
||||
}
|
||||
catch (const Poco::Exception& exc)
|
||||
{
|
||||
LOK_ASSERT_FAIL(exc.displayText());
|
||||
}
|
||||
|
||||
// Allow time to save and destroy before we connect again.
|
||||
testNoExtraCoolKitsLeft();
|
||||
TST_LOG("Loading again.");
|
||||
try
|
||||
{
|
||||
// Load the same document and check that the last changes (pasted text) is saved.
|
||||
std::shared_ptr<http::WebSocketSession> socket
|
||||
= loadDocAndGetSession(_socketPoll, _uri, documentURL, testname + "3 ");
|
||||
getResponseMessage(socket, "textselection", testname);
|
||||
|
||||
// Should have no new instances.
|
||||
LOK_ASSERT_EQUAL(kitcount, countCoolKitProcesses(kitcount));
|
||||
|
||||
// Check if the document contains the pasted text.
|
||||
const std::string selection = getAllText(socket, testname);
|
||||
LOK_ASSERT_EQUAL("textselectioncontent: " + text, selection);
|
||||
|
||||
socket->asyncShutdown();
|
||||
|
||||
LOK_ASSERT_MESSAGE("Expected successful disconnection of the WebSocket 3",
|
||||
socket->waitForDisconnection(std::chrono::seconds(5)));
|
||||
}
|
||||
catch (const Poco::Exception& exc)
|
||||
{
|
||||
LOK_ASSERT_FAIL(exc.displayText());
|
||||
}
|
||||
}
|
||||
|
||||
void HTTPWSTest::testReloadWhileDisconnecting()
|
||||
{
|
||||
const char* testname = "reloadWhileDisconnecting ";
|
||||
|
@ -345,7 +255,8 @@ void HTTPWSTest::testInactiveClient()
|
|||
sendTextFrame(socket2, "userinactive", "inactiveClient-2 ");
|
||||
|
||||
// While second is inactive, make some changes.
|
||||
deleteAll(socket1, "inactiveClient-1 ");
|
||||
sendTextFrame(socket1, "key type=input char=97 key=0", "inactiveClient-1 ");
|
||||
sendTextFrame(socket1, "key type=up char=0 key=512", "inactiveClient-1 ");
|
||||
|
||||
// Activate second.
|
||||
sendTextFrame(socket2, "useractive", "inactiveClient-2 ");
|
||||
|
@ -380,8 +291,9 @@ void HTTPWSTest::testInactiveClient()
|
|||
return (token != "statechanged:");
|
||||
});
|
||||
|
||||
TST_LOG("Second client finished.");
|
||||
TST_LOG("Second client finished. Shutting down");
|
||||
socket2->asyncShutdown();
|
||||
TST_LOG("Shutting down first client");
|
||||
socket1->asyncShutdown();
|
||||
|
||||
LOK_ASSERT_MESSAGE("Expected successful disconnection of the WebSocket 2",
|
||||
|
|
Loading…
Reference in a new issue