static void testNoExtraLoolKitsLeft() { const char testname[] = "noExtraLoolKitsLeft "; const int countNow = countLoolKitProcesses(InitialLoolKitCount); CPPUNIT_ASSERT_EQUAL(InitialLoolKitCount, countNow); const auto duration = (std::chrono::steady_clock::now() - TestStartTime); const std::chrono::milliseconds::rep durationMs = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); TST_LOG(" (" << durationMs << " ms)"); }
static void testCountHowManyLoolkits() { const char testname[] = "countHowManyLoolkits "; TestStartTime = std::chrono::steady_clock::now(); InitialLoolKitCount = countLoolKitProcesses(InitialLoolKitCount); TST_LOG("Initial loolkit count is " << InitialLoolKitCount); CPPUNIT_ASSERT(InitialLoolKitCount > 0); TestStartTime = std::chrono::steady_clock::now(); }
void HTTPServerTest::testCountHowManyLoolkits() { InitialLoolKitCount = countLoolKitProcesses(InitialLoolKitCount); CPPUNIT_ASSERT(InitialLoolKitCount > 0); }
void HTTPServerTest::testNoExtraLoolKitsLeft() { const auto countNow = countLoolKitProcesses(InitialLoolKitCount); CPPUNIT_ASSERT_EQUAL(InitialLoolKitCount, countNow); }
void HTTPWSTest::testNoExtraLoolKitsLeft() { int countNow = countLoolKitProcesses(); CPPUNIT_ASSERT_EQUAL(_initialLoolKitCount, countNow); }
void HTTPWSTest::testReloadWhileDisconnecting() { const std::string documentPath = Util::getTempFilePath(TDOC, "hello.odt"); const std::string documentURL = "file://" + Poco::Path(documentPath).makeAbsolute().toString(); int kitcount = -1; try { // Load a document and get its status. Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL); Poco::Net::WebSocket socket = *connectLOKit(request, _response); sendTextFrame(socket, "load url=" + documentURL); CPPUNIT_ASSERT_MESSAGE("cannot load the document " + documentURL, isDocumentLoaded(socket)); sendTextFrame(socket, "uno .uno:SelectAll"); sendTextFrame(socket, "uno .uno:Delete"); sendTextFrame(socket, "paste mimetype=text/plain;charset=utf-8\naaa bbb ccc"); kitcount = countLoolKitProcesses(); // Shutdown abruptly. socket.shutdown(); } catch (const Poco::Exception& exc) { CPPUNIT_FAIL(exc.displayText()); } std::cout << "Loading again." << std::endl; try { // Load the same document and check that the last changes (pasted text) is saved. Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, documentURL); Poco::Net::WebSocket socket = *connectLOKit(request, _response); sendTextFrame(socket, "load url=" + documentURL); sendTextFrame(socket, "status"); CPPUNIT_ASSERT_MESSAGE("cannot load the document " + documentURL, isDocumentLoaded(socket)); // Should have no new instances. CPPUNIT_ASSERT_EQUAL(kitcount, countLoolKitProcesses()); // Check if the document contains the pasted text. sendTextFrame(socket, "uno .uno:SelectAll"); sendTextFrame(socket, "gettextselection mimetype=text/plain;charset=utf-8"); std::string selection; int flags; int n; do { char buffer[READ_BUFFER_SIZE]; n = socket.receiveFrame(buffer, sizeof(buffer), flags); std::cout << "Got " << n << " bytes, flags: " << std::hex << flags << std::dec << '\n'; if (n > 0 && (flags & Poco::Net::WebSocket::FRAME_OP_BITMASK) != Poco::Net::WebSocket::FRAME_OP_CLOSE) { std::cout << "Received message: " << LOOLProtocol::getAbbreviatedMessage(buffer, n) << '\n'; const std::string line = LOOLProtocol::getFirstLine(buffer, n); if (line.find("editlock: ") == 0) { // We must have the editlock, otherwise we aren't alone. CPPUNIT_ASSERT_EQUAL(std::string("editlock: 1"), line); } const std::string prefix = "textselectioncontent: "; if (line.find(prefix) == 0) { selection = line.substr(prefix.length()); break; } } } while (n > 0 && (flags & Poco::Net::WebSocket::FRAME_OP_BITMASK) != Poco::Net::WebSocket::FRAME_OP_CLOSE); socket.shutdown(); Util::removeFile(documentPath); CPPUNIT_ASSERT_EQUAL(std::string("aaa bbb ccc"), selection); } catch (const Poco::Exception& exc) { CPPUNIT_FAIL(exc.displayText()); } }