TEST(AppInfoJsObjectTest, DefaultPropertyValues) { AdblockPlus::AppInfo appInfo; AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New(appInfo)); ASSERT_EQ("", jsEngine->Evaluate("_appInfo.id")->AsString()); ASSERT_EQ("", jsEngine->Evaluate("_appInfo.version")->AsString()); ASSERT_EQ("", jsEngine->Evaluate("_appInfo.name")->AsString()); ASSERT_EQ("", jsEngine->Evaluate("_appInfo.application")->AsString()); ASSERT_EQ("", jsEngine->Evaluate("_appInfo.applicationVersion")->AsString()); ASSERT_EQ("", jsEngine->Evaluate("_appInfo.locale")->AsString()); ASSERT_FALSE(jsEngine->Evaluate("_appInfo.developmentBuild")->AsBool()); }
JNIEXPORT void JNICALL Java_org_adblockplus_android_ABPEngine_initialize( JNIEnv *pEnv, jobject pObject, jstring basePath, jstring version, jstring sdkVersion, jstring locale, jboolean developmentBuild) { D(D_WARN, "nativeInitialize()"); try { int status = pEnv->GetJavaVM(&globalJvm); jniObject = pEnv->NewGlobalRef(pObject); AdblockPlus::AppInfo appInfo; appInfo.name = "adblockplusandroid"; appInfo.version = GetString(pEnv, version); appInfo.application = "android"; appInfo.applicationVersion = GetString(pEnv, sdkVersion); appInfo.locale = GetString(pEnv, locale); appInfo.developmentBuild = developmentBuild; D(D_INFO, "AppInfo: name=%s, version=%s, application=%s, applicationVersion=%s , locale=%s, developmentBuild=%s", appInfo.name.c_str(), appInfo.version.c_str(), appInfo.application.c_str(), appInfo.applicationVersion.c_str(), appInfo.locale.c_str(), appInfo.developmentBuild ? "true" : "false"); AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New(appInfo)); AdblockPlus::DefaultFileSystem* defaultFileSystem = new AdblockPlus::DefaultFileSystem(); AndroidLogSystem* androidLogSystem = new AndroidLogSystem(); AndroidWebRequest* androidWebRequest = new AndroidWebRequest(globalJvm); defaultFileSystem->SetBasePath(GetString(pEnv, basePath)); jsEngine->SetLogSystem(AdblockPlus::LogSystemPtr(androidLogSystem)); jsEngine->SetFileSystem(AdblockPlus::FileSystemPtr(defaultFileSystem)); jsEngine->SetWebRequest(AdblockPlus::WebRequestPtr(androidWebRequest)); jsEngine->SetEventCallback("updateAvailable", std::tr1::bind(&UpdateAvailableCallback, std::tr1::placeholders::_1)); filterEngine = new AdblockPlus::FilterEngine(jsEngine); filterEngine->SetFilterChangeCallback(&FilterChangedCallback); } catch (const std::exception& e) { ThrowJavaException(pEnv, e); } catch (...) { ThrowJavaException(pEnv); } }
void VersionInfoInterface::appendBuildInfo(BSONObjBuilder* result) const { *result << "version" << version() << "gitVersion" << gitVersion() #if defined(_WIN32) << "targetMinOS" << targetMinOS() #endif << "modules" << modules() << "allocator" << allocator() << "javascriptEngine" << jsEngine() << "sysInfo" << "deprecated"; BSONArrayBuilder versionArray(result->subarrayStart("versionArray")); versionArray << majorVersion() << minorVersion() << patchVersion() << extraVersion(); versionArray.done(); BSONObjBuilder opensslInfo(result->subobjStart("openssl")); #ifdef MONGO_CONFIG_SSL #if MONGO_CONFIG_SSL_PROVIDER == MONGO_CONFIG_SSL_PROVIDER_OPENSSL opensslInfo << "running" << openSSLVersion() << "compiled" << OPENSSL_VERSION_TEXT; #elif MONGO_CONFIG_SSL_PROVIDER == MONGO_CONFIG_SSL_PROVIDER_WINDOWS opensslInfo << "running" << "Windows SChannel"; #elif MONGO_CONFIG_SSL_PROVIDER == MONGO_CONFIG_SSL_PROVIDER_APPLE opensslInfo << "running" << "Apple Secure Transport"; #else #error "Unknown SSL Provider" #endif // MONGO_CONFIG_SSL_PROVIDER #else opensslInfo << "running" << "disabled" << "compiled" << "disabled"; #endif opensslInfo.done(); BSONObjBuilder buildvarsInfo(result->subobjStart("buildEnvironment")); for (auto&& envDataEntry : buildInfo()) { if (std::get<2>(envDataEntry)) { buildvarsInfo << std::get<0>(envDataEntry) << std::get<1>(envDataEntry); } } buildvarsInfo.done(); *result << "bits" << (int)sizeof(void*) * 8; result->appendBool("debug", kDebugBuild); result->appendNumber("maxBsonObjectSize", BSONObjMaxUserSize); }
TEST(AppInfoJsObjectTest, AllProperties) { AdblockPlus::AppInfo appInfo; appInfo.id = "1"; appInfo.version = "2"; appInfo.name = "4"; appInfo.application = "5"; appInfo.applicationVersion = "6"; appInfo.locale = "3"; appInfo.developmentBuild = true; AdblockPlus::JsEnginePtr jsEngine(AdblockPlus::JsEngine::New(appInfo)); ASSERT_EQ("1", jsEngine->Evaluate("_appInfo.id")->AsString()); ASSERT_EQ("2", jsEngine->Evaluate("_appInfo.version")->AsString()); ASSERT_EQ("4", jsEngine->Evaluate("_appInfo.name")->AsString()); ASSERT_EQ("5", jsEngine->Evaluate("_appInfo.application")->AsString()); ASSERT_EQ("6", jsEngine->Evaluate("_appInfo.applicationVersion")->AsString()); ASSERT_EQ("3", jsEngine->Evaluate("_appInfo.locale")->AsString()); ASSERT_TRUE(jsEngine->Evaluate("_appInfo.developmentBuild")->AsBool()); }
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()); }