diff --git a/tests/unit-tests/action-log.t.cpp b/tests/unit-tests/action-log.t.cpp
index 8d874bc..deaff17 100644
--- a/tests/unit-tests/action-log.t.cpp
+++ b/tests/unit-tests/action-log.t.cpp
@@ -56,7 +56,7 @@
 BOOST_AUTO_TEST_CASE(UpdateAction)
 {
   auto actionLog = std::make_shared<ActionLog>(forwarder.addFace(), tmpdir, syncLog,
-                                               "top-secret", "test-chronoshare",
+                                               "top-secret", name::Component("test-chronoshare"),
                                                ActionLog::OnFileAddedOrChangedCallback(),
                                                ActionLog::OnFileRemovedCallback());
 
@@ -156,7 +156,7 @@
 {
   bool hasDeleteCallbackCalled = false;
   auto actionLog = std::make_shared<ActionLog>(forwarder.addFace(), tmpdir, syncLog,
-                                               "top-secret", "test-chronoshare",
+                                               "top-secret", name::Component("test-chronoshare"),
                                                ActionLog::OnFileAddedOrChangedCallback(),
                                                bind([&] { hasDeleteCallbackCalled = true; }));
 
diff --git a/tests/unit-tests/content-server.t.cpp b/tests/unit-tests/content-server.t.cpp
index 8dca18f..4df3777 100644
--- a/tests/unit-tests/content-server.t.cpp
+++ b/tests/unit-tests/content-server.t.cpp
@@ -50,7 +50,7 @@
 
     syncLog = make_shared<SyncLog>(root, deviceName);
     actionLog = std::make_shared<ActionLog>(face, root, syncLog,
-                                            "top-secret", "test-chronoshare",
+                                            "top-secret", name::Component("test-chronoshare"),
                                             ActionLog::OnFileAddedOrChangedCallback(),
                                             ActionLog::OnFileRemovedCallback());
 
@@ -61,9 +61,8 @@
 
     ndn::ConstBufferPtr hash = syncLog->RememberStateInStateLog();
 
-    server = make_unique<ContentServer>(face, actionLog, root,
-                                        deviceName, shareFolderName,
-                                        "test-chronoshare", m_keyChain, 5);
+    server = make_unique<ContentServer>(face, actionLog, root, deviceName, shareFolderName,
+                                        name::Component("test-chronoshare"), m_keyChain, time::seconds(5));
 
     Name localPrefix("/local");
     Name broadcastPrefix("/multicast");
diff --git a/tests/unit-tests/serve-and-fetch.t.cpp b/tests/unit-tests/serve-and-fetch.t.cpp
index c5ea473..79c57f4 100644
--- a/tests/unit-tests/serve-and-fetch.t.cpp
+++ b/tests/unit-tests/serve-and-fetch.t.cpp
@@ -151,7 +151,8 @@
                         << " seconds ...");
 
   ActionLogPtr dummyLog;
-  ContentServer server(face_serve, dummyLog, root, deviceName, "pentagon's secrets", APPNAME, m_keyChain, 5);
+  ContentServer server(face_serve, dummyLog, root, deviceName, "pentagon's secrets",
+                       name::Component(APPNAME), m_keyChain, time::seconds(5));
   server.registerPrefix(localPrefix);
   server.registerPrefix(broadcastPrefix);
 
