| Index: gpu/np_utils/np_utils_unittest.cc
|
| ===================================================================
|
| --- gpu/np_utils/np_utils_unittest.cc (revision 34090)
|
| +++ gpu/np_utils/np_utils_unittest.cc (working copy)
|
| @@ -1,424 +0,0 @@
|
| -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "gpu/np_utils/np_object_mock.h"
|
| -#include "gpu/np_utils/np_browser_stub.h"
|
| -#include "gpu/np_utils/np_utils.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using testing::_;
|
| -using testing::DoAll;
|
| -using testing::MakeMatcher;
|
| -using testing::Matcher;
|
| -using testing::Pointee;
|
| -using testing::Return;
|
| -using testing::SetArgumentPointee;
|
| -using testing::StrictMock;
|
| -
|
| -namespace np_utils {
|
| -
|
| -class NPUtilsTest : public testing::Test {
|
| - protected:
|
| - StubNPBrowser stub_browser_;
|
| - NPP_t npp_;
|
| - NPVariant variant_;
|
| -};
|
| -
|
| -TEST_F(NPUtilsTest, TestBoolNPVariantToValue) {
|
| - bool v;
|
| -
|
| - BOOLEAN_TO_NPVARIANT(false, variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_FALSE(v);
|
| -
|
| - BOOLEAN_TO_NPVARIANT(true, variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_TRUE(v);
|
| -
|
| - INT32_TO_NPVARIANT(7, variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestIntNPVariantToValue) {
|
| - INT32_TO_NPVARIANT(7, variant_);
|
| -
|
| - int v1;
|
| - EXPECT_TRUE(NPVariantToValue(&v1, variant_));
|
| - EXPECT_EQ(7, v1);
|
| -
|
| - float v2;
|
| - EXPECT_TRUE(NPVariantToValue(&v2, variant_));
|
| - EXPECT_EQ(7.0f, v2);
|
| -
|
| - double v3;
|
| - EXPECT_TRUE(NPVariantToValue(&v3, variant_));
|
| - EXPECT_EQ(7.0, v3);
|
| -
|
| - BOOLEAN_TO_NPVARIANT(false, variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v1, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestFloatNPVariantToValue) {
|
| - float v;
|
| -
|
| - DOUBLE_TO_NPVARIANT(7.0, variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_EQ(7.0f, v);
|
| -
|
| - BOOLEAN_TO_NPVARIANT(false, variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestDoubleNPVariantToValue) {
|
| - double v;
|
| -
|
| - DOUBLE_TO_NPVARIANT(7.0, variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_EQ(7.0, v);
|
| -
|
| - BOOLEAN_TO_NPVARIANT(false, variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestStringNPVariantToValue) {
|
| - std::string v;
|
| -
|
| - STRINGZ_TO_NPVARIANT("hello", variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_EQ(std::string("hello"), v);
|
| -
|
| - BOOLEAN_TO_NPVARIANT(false, variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestObjectNPVariantToValue) {
|
| - NPObjectPointer<NPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| - NPObjectPointer<NPObject> v;
|
| -
|
| - OBJECT_TO_NPVARIANT(object.Get(), variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_EQ(object, v);
|
| -
|
| - BOOLEAN_TO_NPVARIANT(false, variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestNullNPVariantToValue) {
|
| - NPObjectPointer<NPObject> v;
|
| -
|
| - NULL_TO_NPVARIANT(variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_TRUE(NPObjectPointer<NPObject>() == v);
|
| -
|
| - BOOLEAN_TO_NPVARIANT(false, variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestDerivedObjectNPVariantToValue) {
|
| - NPObjectPointer<NPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| - NPObjectPointer<StrictMock<MockNPObject> > v;
|
| -
|
| - OBJECT_TO_NPVARIANT(object.Get(), variant_);
|
| - EXPECT_TRUE(NPVariantToValue(&v, variant_));
|
| - EXPECT_EQ(object, v);
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest,
|
| - TestDerivedObjectNPVariantToValueFailsIfValueHasDifferentType) {
|
| - NPObjectPointer<NPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| - NPObjectPointer<MockNPObject> v;
|
| -
|
| - OBJECT_TO_NPVARIANT(object.Get(), variant_);
|
| - EXPECT_FALSE(NPVariantToValue(&v, variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestBoolValueToNPVariant) {
|
| - ValueToNPVariant(true, &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_BOOLEAN(variant_));
|
| - EXPECT_TRUE(NPVARIANT_TO_BOOLEAN(variant_));
|
| -
|
| - ValueToNPVariant(false, &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_BOOLEAN(variant_));
|
| - EXPECT_FALSE(NPVARIANT_TO_BOOLEAN(variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestIntValueToNPVariant) {
|
| - ValueToNPVariant(7, &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_INT32(variant_));
|
| - EXPECT_EQ(7, NPVARIANT_TO_INT32(variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestFloatValueToNPVariant) {
|
| - ValueToNPVariant(7.0f, &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_DOUBLE(variant_));
|
| - EXPECT_EQ(7.0, NPVARIANT_TO_DOUBLE(variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestDoubleValueToNPVariant) {
|
| - ValueToNPVariant(7.0, &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_DOUBLE(variant_));
|
| - EXPECT_EQ(7.0, NPVARIANT_TO_DOUBLE(variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestStringValueToNPVariant) {
|
| - ValueToNPVariant(std::string("hello"), &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_STRING(variant_));
|
| - EXPECT_EQ(std::string("hello"),
|
| - std::string(variant_.value.stringValue.UTF8Characters,
|
| - variant_.value.stringValue.UTF8Length));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestObjectValueToNPVariant) {
|
| - NPObjectPointer<NPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - ValueToNPVariant(object, &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_OBJECT(variant_));
|
| - EXPECT_EQ(object.Get(), NPVARIANT_TO_OBJECT(variant_));
|
| -
|
| - NPBrowser::get()->ReleaseVariantValue(&variant_);
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, TestNullValueToNPVariant) {
|
| - ValueToNPVariant(NPObjectPointer<NPObject>(), &variant_);
|
| - EXPECT_TRUE(NPVARIANT_IS_NULL(variant_));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanCopyObjectSmartVariant) {
|
| - NPObjectPointer<NPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| - EXPECT_EQ(1, object->referenceCount);
|
| - {
|
| - SmartNPVariant v1(object);
|
| - EXPECT_EQ(2, object->referenceCount);
|
| - {
|
| - SmartNPVariant v2(v1);
|
| - EXPECT_EQ(3, object->referenceCount);
|
| - }
|
| - EXPECT_EQ(2, object->referenceCount);
|
| - }
|
| - EXPECT_EQ(1, object->referenceCount);
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanCopyStringSmartVariant) {
|
| - SmartNPVariant v1(std::string("hello"));
|
| - SmartNPVariant v2(v1);
|
| - std::string r;
|
| - EXPECT_TRUE(NPVariantToValue(&r, v2));
|
| - EXPECT_EQ(std::string("hello"), r);
|
| - EXPECT_NE(v1.value.stringValue.UTF8Characters,
|
| - v2.value.stringValue.UTF8Characters);
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanReleaseSmartVariant) {
|
| - SmartNPVariant variant(std::string("hello"));
|
| - EXPECT_FALSE(variant.IsVoid());
|
| - variant.Release();
|
| - EXPECT_TRUE(variant.IsVoid());
|
| -}
|
| -
|
| -template <typename T>
|
| -class VariantMatcher : public testing::MatcherInterface<const NPVariant&> {
|
| - public:
|
| - explicit VariantMatcher(const T& value) : value_(value) {
|
| - }
|
| -
|
| - virtual bool Matches(const NPVariant& variant) const {
|
| - T other_value;
|
| - return NPVariantToValue(&other_value, variant) && other_value == value_;
|
| - }
|
| -
|
| - virtual void DescribeTo(::std::ostream* os) const {
|
| - *os << "equals " << value_;
|
| - }
|
| -
|
| - virtual void DescribeNegationTo(::std::ostream* os) const {
|
| - *os << "does not equal " << value_;
|
| - }
|
| -
|
| - private:
|
| - T value_;
|
| -};
|
| -
|
| -template <typename T>
|
| -Matcher<const NPVariant&> VariantMatches(const T& value) {
|
| - return MakeMatcher(new VariantMatcher<T>(value));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanDetermineIfObjectHasMethod) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - EXPECT_CALL(*object, HasMethod(name))
|
| - .WillOnce(Return(true));
|
| -
|
| - EXPECT_TRUE(NPHasMethod(NULL, object, "foo"));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanInvokeVoidMethodWithNativeTypes) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - VOID_TO_NPVARIANT(variant_);
|
| -
|
| - EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
|
| - .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
|
| - Return(true)));
|
| -
|
| - EXPECT_TRUE(NPInvokeVoid(NULL, object, "foo", 7));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, InvokeVoidMethodCanFail) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - VOID_TO_NPVARIANT(variant_);
|
| -
|
| - EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
|
| - .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
|
| - Return(false)));
|
| -
|
| - EXPECT_FALSE(NPInvokeVoid(NULL, object, "foo", 7));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanInvokeNonVoidMethodWithNativeTypes) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - DOUBLE_TO_NPVARIANT(1.5, variant_);
|
| -
|
| - EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
|
| - .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
|
| - Return(true)));
|
| -
|
| - double r;
|
| - EXPECT_TRUE(NPInvoke(NULL, object, "foo", 7, &r));
|
| - EXPECT_EQ(1.5, r);
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, InvokeNonVoidMethodCanFail) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - DOUBLE_TO_NPVARIANT(1.5, variant_);
|
| -
|
| - EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
|
| - .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
|
| - Return(false)));
|
| -
|
| - double r;
|
| - EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, InvokeNonVoidMethodFailsIfResultIsIncompatible) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - DOUBLE_TO_NPVARIANT(1.5, variant_);
|
| -
|
| - EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
|
| - .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
|
| - Return(true)));
|
| -
|
| - int r;
|
| - EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanDetermineIfObjectHasProperty) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - EXPECT_CALL(*object, HasProperty(name))
|
| - .WillOnce(Return(true));
|
| -
|
| - EXPECT_TRUE(NPHasProperty(NULL, object, "foo"));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanGetPropertyValue) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - DOUBLE_TO_NPVARIANT(1.5, variant_);
|
| -
|
| - EXPECT_CALL(*object, GetProperty(name, _))
|
| - .WillOnce(DoAll(SetArgumentPointee<1>(variant_),
|
| - Return(true)));
|
| -
|
| - double r;
|
| - EXPECT_TRUE(NPGetProperty(NULL, object, "foo", &r));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, NPGetPropertyReportsFailureIfResultTypeIsDifferent) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - DOUBLE_TO_NPVARIANT(1.5, variant_);
|
| -
|
| - EXPECT_CALL(*object, GetProperty(name, _))
|
| - .WillOnce(DoAll(SetArgumentPointee<1>(variant_),
|
| - Return(true)));
|
| -
|
| - bool r;
|
| - EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, NPGetPropertyReportsFailureFromGetProperty) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - EXPECT_CALL(*object, GetProperty(name, _))
|
| - .WillOnce(Return(false));
|
| -
|
| - double r;
|
| - EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanSetPropertyValue) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5))))
|
| - .WillOnce(Return(true));
|
| -
|
| - EXPECT_TRUE(NPSetProperty(NULL, object, "foo", 1.5));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, NPSetPropertyReportsFailureFromSetProperty) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5))))
|
| - .WillOnce(Return(false));
|
| -
|
| - EXPECT_FALSE(NPSetProperty(NULL, object, "foo", 1.5));
|
| -}
|
| -
|
| -TEST_F(NPUtilsTest, CanRemovePropertyValue) {
|
| - NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
|
| - NPObjectPointer<MockNPObject> object =
|
| - NPCreateObject<StrictMock<MockNPObject> >(NULL);
|
| -
|
| - EXPECT_CALL(*object, RemoveProperty(name))
|
| - .WillOnce(Return(true));
|
| -
|
| - EXPECT_TRUE(NPRemoveProperty(NULL, object, "foo"));
|
| -}
|
| -
|
| -} // namespace np_utils
|
|
|