common/Util.cpp           |   10 ++++++++++
 common/Util.hpp           |    3 +++
 test/UnitWOPITemplate.cpp |    6 +++---
 test/WhiteBoxTests.cpp    |    6 ++++++
 test/WopiTestServer.hpp   |   20 +++++++++-----------
 5 files changed, 31 insertions(+), 14 deletions(-)

New commits:
commit dd014e7029628dd95d2026bcb4fe4a66d75785aa
Author:     DarkByt31 <avihs...@gmail.com>
AuthorDate: Fri Sep 27 22:26:16 2019 +0530
Commit:     Michael Meeks <michael.me...@collabora.com>
CommitDate: Sat Sep 28 12:26:32 2019 +0200

    tdf#107038 Poco::Timestamp replacement with std::chrono
    
    Util added getHttpTime
    WhiteBoxTests added test for getHttpTime
    
    Change-Id: Ifb6a3fb2dc9b059b925e7b881362b72759a8b56b
    Reviewed-on: https://gerrit.libreoffice.org/79754
    Reviewed-by: Michael Meeks <michael.me...@collabora.com>
    Tested-by: Michael Meeks <michael.me...@collabora.com>

diff --git a/common/Util.cpp b/common/Util.cpp
index 4433fe6d2..4fc35f370 100644
--- a/common/Util.cpp
+++ b/common/Util.cpp
@@ -784,6 +784,16 @@ namespace Util
         return time_now;
     }
 
+    std::string getHttpTime(std::chrono::system_clock::time_point time)
+    {
+        char http_time[64];
+        std::time_t time_c = std::chrono::system_clock::to_time_t(time);
+        std::tm time_tm = *std::gmtime(&time_c);
+        strftime(http_time, sizeof(http_time), "%a, %d %b %Y %T", &time_tm);
+
+        return http_time;
+    }
+
     size_t findInVector(const std::vector<char>& tokens, const char *cstring)
     {
         assert(cstring);
diff --git a/common/Util.hpp b/common/Util.hpp
index c1f799941..6c97eceb1 100644
--- a/common/Util.hpp
+++ b/common/Util.hpp
@@ -926,6 +926,9 @@ int main(int argc, char**argv)
     //// Return current time in HTTP format.
     std::string getHttpTimeNow();
 
+    //// Return time in HTTP format.
+    std::string getHttpTime(std::chrono::system_clock::time_point time);
+
     //// Return timestamp of file
     std::chrono::system_clock::time_point getFileTimestamp(std::string 
str_path);
 
diff --git a/test/UnitWOPITemplate.cpp b/test/UnitWOPITemplate.cpp
index 9416ea3cc..d133178ec 100644
--- a/test/UnitWOPITemplate.cpp
+++ b/test/UnitWOPITemplate.cpp
@@ -54,7 +54,7 @@ public:
             fileInfo->set("UserFriendlyName", "test");
             fileInfo->set("UserCanWrite", "true");
             fileInfo->set("PostMessageOrigin", "localhost");
-            fileInfo->set("LastModifiedTime", 
Poco::DateTimeFormatter::format(Poco::DateTime(getFileLastModifiedTime()), 
Poco::DateTimeFormat::ISO8601_FRAC_FORMAT));
+            fileInfo->set("LastModifiedTime", 
Util::getIso8601FracformatTime(getFileLastModifiedTime()));
             fileInfo->set("EnableOwnerTermination", "true");
 
             std::ostringstream jsonStream;
@@ -65,7 +65,7 @@ public:
 
             std::ostringstream oss;
             oss << "HTTP/1.1 200 OK\r\n"
-                << "Last-Modified: " << 
Poco::DateTimeFormatter::format(getFileLastModifiedTime(), 
Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+                << "Last-Modified: " << 
Util::getHttpTime(getFileLastModifiedTime()) << "\r\n"
                 << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
                 << "Content-Length: " << responseString.size() << "\r\n"
                 << "Content-Type: " << mimeType << "\r\n"
@@ -113,7 +113,7 @@ public:
             oss << "HTTP/1.1 200 OK\r\n"
                 << "User-Agent: " << WOPI_AGENT_STRING << "\r\n"
                 << "\r\n"
-                << "{\"LastModifiedTime\": \"" << 
Poco::DateTimeFormatter::format(getFileLastModifiedTime(), 
Poco::DateTimeFormat::ISO8601_FRAC_FORMAT) << "\" }";
+                << "{\"LastModifiedTime\": \"" << 
Util::getHttpTime(getFileLastModifiedTime()) << "\" }";
 
             socket->send(oss.str());
             socket->shutdown();
diff --git a/test/WhiteBoxTests.cpp b/test/WhiteBoxTests.cpp
index e3a6d52a8..6bb74f677 100644
--- a/test/WhiteBoxTests.cpp
+++ b/test/WhiteBoxTests.cpp
@@ -762,6 +762,12 @@ void WhiteBoxTests::testTime()
     oss.str(std::string());
     oss << t.time_since_epoch().count();
     CPPUNIT_ASSERT_EQUAL(first, oss.str());
+
+    t = std::chrono::system_clock::time_point();
+    CPPUNIT_ASSERT_EQUAL(std::string("Thu, 01 Jan 1970 00:00:00"), 
Util::getHttpTime(t));
+
+    t = 
std::chrono::system_clock::time_point(std::chrono::nanoseconds(1569592993495336798));
+    CPPUNIT_ASSERT_EQUAL(std::string("Fri, 27 Sep 2019 14:03:13"), 
Util::getHttpTime(t));
 }
 
 CPPUNIT_TEST_SUITE_REGISTRATION(WhiteBoxTests);
diff --git a/test/WopiTestServer.hpp b/test/WopiTestServer.hpp
index bdeecd96d..0845ba1a9 100644
--- a/test/WopiTestServer.hpp
+++ b/test/WopiTestServer.hpp
@@ -41,7 +41,7 @@ private:
     std::string _fileContent;
 
     /// Last modified time of the file
-    Poco::Timestamp _fileLastModifiedTime;
+    std::chrono::system_clock::time_point _fileLastModifiedTime;
 
 protected:
     const std::string& getWopiSrc() const { return _wopiSrc; }
@@ -54,10 +54,10 @@ protected:
     void setFileContent(const std::string& fileContent)
     {
         _fileContent = fileContent;
-        _fileLastModifiedTime = Poco::Timestamp();
+        _fileLastModifiedTime = std::chrono::system_clock::now();
     }
 
-    const Poco::Timestamp& getFileLastModifiedTime() const { return 
_fileLastModifiedTime; }
+    const std::chrono::system_clock::time_point& getFileLastModifiedTime() 
const { return _fileLastModifiedTime; }
 
 public:
     WopiTestServer(std::string fileContent = "Hello, world")
@@ -126,7 +126,7 @@ protected:
             fileInfo->set("UserFriendlyName", "test");
             fileInfo->set("UserCanWrite", "true");
             fileInfo->set("PostMessageOrigin", "localhost");
-            fileInfo->set("LastModifiedTime", 
Poco::DateTimeFormatter::format(Poco::DateTime(_fileLastModifiedTime), 
Poco::DateTimeFormat::ISO8601_FRAC_FORMAT));
+            fileInfo->set("LastModifiedTime", 
Util::getIso8601FracformatTime(_fileLastModifiedTime));
             fileInfo->set("EnableOwnerTermination", "true");
 
             std::ostringstream jsonStream;
@@ -137,7 +137,7 @@ protected:
 
             std::ostringstream oss;
             oss << "HTTP/1.1 200 OK\r\n"
-                "Last-Modified: " << 
Poco::DateTimeFormatter::format(_fileLastModifiedTime, 
Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+                "Last-Modified: " << Util::getHttpTime(_fileLastModifiedTime) 
<< "\r\n"
                 "User-Agent: " WOPI_AGENT_STRING "\r\n"
                 "Content-Length: " << responseString.size() << "\r\n"
                 "Content-Type: " << mimeType << "\r\n"
@@ -160,7 +160,7 @@ protected:
 
             std::ostringstream oss;
             oss << "HTTP/1.1 200 OK\r\n"
-                "Last-Modified: " << 
Poco::DateTimeFormatter::format(_fileLastModifiedTime, 
Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+                "Last-Modified: " << Util::getHttpTime(_fileLastModifiedTime) 
<< "\r\n"
                 "User-Agent: " WOPI_AGENT_STRING "\r\n"
                 "Content-Length: " << _fileContent.size() << "\r\n"
                 "Content-Type: " << mimeType << "\r\n"
@@ -194,7 +194,7 @@ protected:
 
             std::ostringstream oss;
             oss << "HTTP/1.1 200 OK\r\n"
-                "Last-Modified: " << 
Poco::DateTimeFormatter::format(_fileLastModifiedTime, 
Poco::DateTimeFormat::HTTP_FORMAT) << "\r\n"
+                "Last-Modified: " << Util::getHttpTime(_fileLastModifiedTime) 
<< "\r\n"
                 "User-Agent: " WOPI_AGENT_STRING "\r\n"
                 "Content-Length: " << content.size() << "\r\n"
                 "Content-Type: application/json\r\n"
@@ -214,9 +214,7 @@ protected:
             if (!wopiTimestamp.empty())
             {
 
-                const std::string fileModifiedTime =
-                    
Poco::DateTimeFormatter::format(Poco::DateTime(_fileLastModifiedTime),
-                                                    
Poco::DateTimeFormat::ISO8601_FRAC_FORMAT);
+                const std::string fileModifiedTime = 
Util::getIso8601FracformatTime(_fileLastModifiedTime);
                 if (wopiTimestamp != fileModifiedTime)
                 {
                     std::ostringstream oss;
@@ -242,7 +240,7 @@ protected:
             oss << "HTTP/1.1 200 OK\r\n"
                 "User-Agent: " WOPI_AGENT_STRING "\r\n"
                 "\r\n"
-                "{\"LastModifiedTime\": \"" << 
Poco::DateTimeFormatter::format(_fileLastModifiedTime, 
Poco::DateTimeFormat::ISO8601_FRAC_FORMAT) << "\" }";
+                "{\"LastModifiedTime\": \"" << 
Util::getIso8601FracformatTime(_fileLastModifiedTime) << "\" }";
 
             socket->send(oss.str());
             socket->shutdown();
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to