Ejemplo n.º 1
0
void PrefsCommand::operator()(const std::string& arguments)
{
    std::istringstream argumentStream(arguments);
    std::string action;
    argumentStream >> action;
    if (!action.size())
    {
        ShowUsage();
        return;
    }

    if (action == "show")
    {
        std::string pref;
        argumentStream >> pref;

        AdblockPlus::JsValuePtr value = filterEngine.GetPref(pref);
        if (value->IsUndefined())
            std::cout << "No such preference" << std::endl;
        else
        {
            if (value->IsString())
                std::cout << "(string) ";
            else if (value->IsNumber())
                std::cout << "(number) ";
            else if (value->IsBool())
                std::cout << "(bool) ";
            else
                std::cout << "(unknown type) ";
            std::cout << value->AsString() << std::endl;
        }
    }
Ejemplo n.º 2
0
TEST_F(JsEngineTest, Evaluate)
{
  jsEngine->Evaluate("function hello() { return 'Hello'; }");
  AdblockPlus::JsValuePtr result = jsEngine->Evaluate("hello()");
  ASSERT_TRUE(result->IsString());
  ASSERT_EQ("Hello", result->AsString());
}
Ejemplo n.º 3
0
TEST_F(JsValueTest, NullValue)
{
  AdblockPlus::JsValuePtr value = jsEngine->Evaluate("null");
  ASSERT_FALSE(value->IsUndefined());
  ASSERT_TRUE(value->IsNull());
  ASSERT_FALSE(value->IsString());
  ASSERT_FALSE(value->IsBool());
  ASSERT_FALSE(value->IsNumber());
  ASSERT_FALSE(value->IsObject());
  ASSERT_FALSE(value->IsArray());
  ASSERT_FALSE(value->IsFunction());
  ASSERT_EQ("null", value->AsString());
  ASSERT_FALSE(value->AsBool());
  ASSERT_ANY_THROW(value->AsList());
  ASSERT_ANY_THROW(value->GetProperty("foo"));
  ASSERT_ANY_THROW(value->SetProperty("foo", false));
  ASSERT_ANY_THROW(value->GetClass());
  ASSERT_ANY_THROW(value->GetOwnPropertyNames());
  ASSERT_ANY_THROW(value->Call());
}
Ejemplo n.º 4
0
TEST_F(JsEngineTest, ValueCreation)
{
  AdblockPlus::JsValuePtr value;

  value = jsEngine->NewValue("foo");
  ASSERT_TRUE(value->IsString());
  ASSERT_EQ("foo", value->AsString());

  value = jsEngine->NewValue(12345678901234);
  ASSERT_TRUE(value->IsNumber());
  ASSERT_EQ(12345678901234, value->AsInt());

  value = jsEngine->NewValue(true);
  ASSERT_TRUE(value->IsBool());
  ASSERT_TRUE(value->AsBool());

  value = jsEngine->NewObject();
  ASSERT_TRUE(value->IsObject());
  ASSERT_EQ(0u, value->GetOwnPropertyNames().size());
}