[Libreoffice-commits] online.git: loolwsd/test
Pranav Kant
pranavk at collabora.com
Sun Feb 21 15:27:35 UTC 2016
loolwsd/test/httpwstest.cpp | 82 +++++++++++++++++++-------------------------
1 file changed, 37 insertions(+), 45 deletions(-)
New commits:
commit 6722d430a588d45b9b77e8490f0dcba0c175ac0a
Author: Pranav Kant <pranavk at collabora.com>
Date: Sun Feb 21 20:20:40 2016 +0530
loolwsd: Use helper functions for document password unit test
Change-Id: Ibf921ea1834f85b9a1d81232b1a018c1936fe620
diff --git a/loolwsd/test/httpwstest.cpp b/loolwsd/test/httpwstest.cpp
index 5694d20..502bb2f 100644
--- a/loolwsd/test/httpwstest.cpp
+++ b/loolwsd/test/httpwstest.cpp
@@ -235,60 +235,52 @@ void HTTPWSTest::testPasswordProtectedDocument()
Poco::Net::WebSocket socket(_session, _request, _response);
- // Load a password protected document
const std::string documentPath = TDOC "/password-protected.ods";
const std::string documentURL = "file://" + Poco::Path(documentPath).makeAbsolute().toString();
// Send a load request without password first
sendTextFrame(socket, "load url=" + documentURL);
+ std::string response;
- int flags;
- int n;
- int counter = 0;
- do
+ getResponseMessage(socket, "error:", response, true);
+ CPPUNIT_ASSERT_MESSAGE("failed command load: ", !response.empty());
{
- char buffer[READ_BUFFER_SIZE];
- n = socket.receiveFrame(buffer, sizeof(buffer), flags);
- if (n > 0)
- {
- std::string line = LOOLProtocol::getFirstLine(buffer, n);
- StringTokenizer tokens(line, " ", StringTokenizer::TOK_IGNORE_EMPTY | StringTokenizer::TOK_TRIM);
- std::string errorCommand;
- std::string errorKind;
- if (counter == 0 &&
- tokens[0] == "error:" &&
- LOOLProtocol::getTokenString(tokens[1], "cmd", errorCommand) &&
- LOOLProtocol::getTokenString(tokens[2], "kind", errorKind) )
- {
- CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
- // TODO: Do a test for document requiring password to edit
- CPPUNIT_ASSERT_EQUAL(std::string("passwordrequired:to-view"), errorKind);
+ Poco::StringTokenizer tokens(response, " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM);
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), tokens.count());
+
+ std::string errorCommand;
+ std::string errorKind;
+ LOOLProtocol::getTokenString(tokens[0], "cmd", errorCommand);
+ LOOLProtocol::getTokenString(tokens[1], "kind", errorKind);
+ CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
+ CPPUNIT_ASSERT_EQUAL(std::string("passwordrequired:to-view"), errorKind);
+ }
- // Send another load request with incorrect password
- sendTextFrame(socket, "load url=" + documentURL + " password=2");
- counter++;
- }
- else if (counter == 1 &&
- tokens[0] == "error:" &&
- LOOLProtocol::getTokenString(tokens[1], "cmd", errorCommand) &&
- LOOLProtocol::getTokenString(tokens[2], "kind", errorKind) )
- {
- CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
- CPPUNIT_ASSERT_EQUAL(std::string("wrongpassword"), errorKind);
+ // Send another load request with incorrect password
+ sendTextFrame(socket, "load url=" + documentURL + " password=2");
- // Send another load request with correct password
- sendTextFrame(socket, "load url=" + documentURL + " password=1");
- counter++;
- }
- else if (counter == 2 &&
- tokens[0] == "status:")
- {
- // Entering correct password opened the document
- break;
- }
- }
- } while (n > 0 && (flags & Poco::Net::WebSocket::FRAME_OP_BITMASK) != Poco::Net::WebSocket::FRAME_OP_CLOSE);
+ getResponseMessage(socket, "error:", response, true);
+ CPPUNIT_ASSERT_MESSAGE("failed command load: ", !response.empty());
+ {
+ Poco::StringTokenizer tokens(response, " ", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM);
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), tokens.count());
+
+ std::string errorCommand;
+ std::string errorKind;
+ LOOLProtocol::getTokenString(tokens[0], "cmd", errorCommand);
+ LOOLProtocol::getTokenString(tokens[1], "kind", errorKind);
+ CPPUNIT_ASSERT_EQUAL(std::string("load"), errorCommand);
+ CPPUNIT_ASSERT_EQUAL(std::string("wrongpassword"), errorKind);
+ }
+
+ // Send another load request with correct password
+ sendTextFrame(socket, "load url=" + documentURL + " password=1");
+
+ CPPUNIT_ASSERT_MESSAGE("cannot load the document with correct password " + documentURL, isDocumentLoaded(socket));
+ sendTextFrame(socket, "disconnect");
+ socket.shutdown();
}
- catch (const Poco::Exception& exc) {
+ catch (const Poco::Exception& exc)
+ {
CPPUNIT_ASSERT_MESSAGE(exc.displayText(), false);
}
}
More information about the Libreoffice-commits
mailing list