From: svenpanne@chromium.org Date: Mon, 29 Jul 2013 12:37:55 +0000 (+0000) Subject: Added unit tests for the slightly confusing Boolean/BooleanObject API. X-Git-Tag: upstream/4.7.83~13159 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2fe3799b8f450946111a1d01ac8688b08f051ff0;p=platform%2Fupstream%2Fv8.git Added unit tests for the slightly confusing Boolean/BooleanObject API. Just for documenting the status quo. As discussed offline, we should probably rename/deprecate a few things: NumberObject::NumberValue() => NumberObject::ValueOf() BooleanObject::BooleanValue() => BooleanObject::ValueOf() StringObject::StringValue => StringObject::ValueOf() R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/21013003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc index 7cb3c04..e25642e 100644 --- a/test/cctest/test-api.cc +++ b/test/cctest/test-api.cc @@ -55,6 +55,8 @@ static const bool kLogThreading = false; using ::v8::AccessorInfo; using ::v8::Arguments; +using ::v8::Boolean; +using ::v8::BooleanObject; using ::v8::Context; using ::v8::Extension; using ::v8::Function; @@ -1544,6 +1546,54 @@ THREADED_TEST(BooleanObject) { } +THREADED_TEST(PrimitiveAndWrappedBooleans) { + LocalContext env; + v8::HandleScope scope(env->GetIsolate()); + + Local primitive_false = Boolean::New(false); + CHECK(primitive_false->IsBoolean()); + CHECK(!primitive_false->IsBooleanObject()); + CHECK(!primitive_false->BooleanValue()); + CHECK(!primitive_false->IsTrue()); + CHECK(primitive_false->IsFalse()); + + Local false_value = BooleanObject::New(false); + CHECK(!false_value->IsBoolean()); + CHECK(false_value->IsBooleanObject()); + CHECK(false_value->BooleanValue()); + CHECK(!false_value->IsTrue()); + CHECK(!false_value->IsFalse()); + + Local false_boolean_object = false_value.As(); + CHECK(!false_boolean_object->IsBoolean()); + CHECK(false_boolean_object->IsBooleanObject()); + CHECK(!false_boolean_object->BooleanValue()); + CHECK(!false_boolean_object->IsTrue()); + CHECK(!false_boolean_object->IsFalse()); + + Local primitive_true = Boolean::New(true); + CHECK(primitive_true->IsBoolean()); + CHECK(!primitive_true->IsBooleanObject()); + CHECK(primitive_true->BooleanValue()); + CHECK(primitive_true->IsTrue()); + CHECK(!primitive_true->IsFalse()); + + Local true_value = BooleanObject::New(true); + CHECK(!true_value->IsBoolean()); + CHECK(true_value->IsBooleanObject()); + CHECK(true_value->BooleanValue()); + CHECK(!true_value->IsTrue()); + CHECK(!true_value->IsFalse()); + + Local true_boolean_object = true_value.As(); + CHECK(!true_boolean_object->IsBoolean()); + CHECK(true_boolean_object->IsBooleanObject()); + CHECK(true_boolean_object->BooleanValue()); + CHECK(!true_boolean_object->IsTrue()); + CHECK(!true_boolean_object->IsFalse()); +} + + THREADED_TEST(Number) { LocalContext env; v8::HandleScope scope(env->GetIsolate());