static void JNICALL JniSetLogSystem(JNIEnv* env, jclass clazz, jlong ptr, jlong logSystemPtr) { AdblockPlus::JsEnginePtr& engine = *JniLongToTypePtr<AdblockPlus::JsEnginePtr>(ptr); try { AdblockPlus::LogSystemPtr logSystem(JniLongToTypePtr<JniLogSystemCallback>(logSystemPtr)); engine->SetLogSystem(logSystem); } CATCH_AND_THROW(env) }
TEST(NewJsEngineTest, CallbackGetSet) { AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New()); ASSERT_TRUE(jsEngine->GetLogSystem()); ASSERT_ANY_THROW(jsEngine->SetLogSystem(AdblockPlus::LogSystemPtr())); AdblockPlus::LogSystemPtr logSystem(new AdblockPlus::DefaultLogSystem()); jsEngine->SetLogSystem(logSystem); ASSERT_EQ(logSystem, jsEngine->GetLogSystem()); ASSERT_TRUE(jsEngine->GetFileSystem()); ASSERT_ANY_THROW(jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr())); AdblockPlus::FileSystemPtr fileSystem(new AdblockPlus::DefaultFileSystem()); jsEngine->SetFileSystem(fileSystem); ASSERT_EQ(fileSystem, jsEngine->GetFileSystem()); ASSERT_TRUE(jsEngine->GetWebRequest()); ASSERT_ANY_THROW(jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr())); AdblockPlus::WebRequestPtr webRequest(new AdblockPlus::DefaultWebRequest()); jsEngine->SetWebRequest(webRequest); ASSERT_EQ(webRequest, jsEngine->GetWebRequest()); }