| Index: test/BaseJsTest.h | 
| =================================================================== | 
| --- a/test/BaseJsTest.h | 
| +++ b/test/BaseJsTest.h | 
| @@ -1,13 +1,14 @@ | 
| #ifndef MOCKS_H | 
| #define MOCKS_H | 
|  | 
| #include <AdblockPlus.h> | 
| #include <gtest/gtest.h> | 
| +#include "../src/Thread.h" | 
|  | 
| class ThrowingErrorCallback : public AdblockPlus::ErrorCallback | 
| { | 
| public: | 
| void operator()(const std::string& message) | 
| { | 
| throw std::runtime_error("Unexpected error: " + message); | 
| } | 
| @@ -45,16 +46,63 @@ class ThrowingFileSystem : public Adbloc | 
| class ThrowingWebRequest : public AdblockPlus::WebRequest | 
| { | 
| AdblockPlus::ServerResponse GET(const std::string& url, const AdblockPlus::HeaderList& requestHeaders) const | 
| { | 
| throw std::runtime_error("Unexpected GET: " + url); | 
| } | 
| }; | 
|  | 
| +class LazyFileSystem : public AdblockPlus::FileSystem | 
| +{ | 
| +  std::tr1::shared_ptr<std::istream> Read(const std::string& path) const | 
| +  { | 
| +    while (true) | 
| +      AdblockPlus::Sleep(100000); | 
| +    return std::tr1::shared_ptr<std::istream>(); | 
| +  } | 
| + | 
| +  void Write(const std::string& path, | 
| +             std::tr1::shared_ptr<std::ostream> content) | 
| +  { | 
| +    while (true) | 
| +      AdblockPlus::Sleep(100000); | 
| +  } | 
| + | 
| +  void Move(const std::string& fromPath, const std::string& toPath) | 
| +  { | 
| +    while (true) | 
| +      AdblockPlus::Sleep(100000); | 
| +  } | 
| + | 
| +  void Remove(const std::string& path) | 
| +  { | 
| +    while (true) | 
| +      AdblockPlus::Sleep(100000); | 
| +  } | 
| + | 
| +  StatResult Stat(const std::string& path) const | 
| +  { | 
| +    while (true) | 
| +      AdblockPlus::Sleep(100000); | 
| +    return StatResult(); | 
| +  } | 
| +}; | 
| + | 
| +class LazyWebRequest : public AdblockPlus::WebRequest | 
| +{ | 
| +  AdblockPlus::ServerResponse GET(const std::string& url, const AdblockPlus::HeaderList& requestHeaders) const | 
| +  { | 
| +    while (true) | 
| +      AdblockPlus::Sleep(100000); | 
| +    return AdblockPlus::ServerResponse(); | 
| +  } | 
| +}; | 
| + | 
| + | 
| class BaseJsTest : public ::testing::Test | 
| { | 
| protected: | 
| AdblockPlus::JsEnginePtr jsEngine; | 
|  | 
| virtual void SetUp() | 
| { | 
| jsEngine = AdblockPlus::JsEngine::New(); | 
|  |