Index: test/FilterEngine.cpp
===================================================================
--- a/test/FilterEngine.cpp
+++ b/test/FilterEngine.cpp
@@ -16,6 +16,7 @@
  */
 
 #include "BaseJsTest.h"
+#include "JsLatch.h"
 #include <thread>
 #include "../src/JsEngineTransition.h"
 
@@ -136,9 +137,6 @@
     int& timesCalled;
   };
 
-  // Workaround for https://issues.adblockplus.org/ticket/1397.
-  void NoOpUpdaterCallback(const std::string&) {}
-
   class FilterEngineWithFreshFolder : public ::testing::Test
   {
   protected:
@@ -556,13 +554,15 @@
   MockUpdateAvailableCallback mockUpdateAvailableCallback(timesCalled);
 
   filterEngine->SetUpdateAvailableCallback(mockUpdateAvailableCallback);
-  filterEngine->ForceUpdateCheck(&NoOpUpdaterCallback);
-  std::this_thread::sleep_for(std::chrono::milliseconds(100));
+  Latch latchA(1);
+  filterEngine->ForceUpdateCheck([&](const std::string&) {latchA.Arrive(); });
+  latchA.Wait();
   ASSERT_EQ(1, timesCalled);
 
   filterEngine->RemoveUpdateAvailableCallback();
-  filterEngine->ForceUpdateCheck(&NoOpUpdaterCallback);
-  std::this_thread::sleep_for(std::chrono::milliseconds(100));
+  Latch latchB(1);
+  filterEngine->ForceUpdateCheck([&](const std::string&) {latchB.Arrive(); });
+  latchB.Wait();
   ASSERT_EQ(1, timesCalled);
 }
 
