示例#1
0
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);
    }
}
示例#3
0
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);
}
示例#4
0
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());
}
示例#5
0
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());
}