Index: gpu/np_utils/dispatched_np_object_unittest.cc |
=================================================================== |
--- gpu/np_utils/dispatched_np_object_unittest.cc (revision 34090) |
+++ gpu/np_utils/dispatched_np_object_unittest.cc (working copy) |
@@ -1,403 +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 <string> |
- |
-#include "gpu/np_utils/default_np_object.h" |
-#include "gpu/np_utils/np_browser_stub.h" |
-#include "gpu/np_utils/np_dispatcher.h" |
-#include "gpu/np_utils/np_object_mock.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using testing::Return; |
-using testing::StrictMock; |
- |
-namespace np_utils { |
- |
-// This mock class has a dispatcher chain with an entry for each mocked |
-// function. The tests that follow that invoking an NPAPI method calls the |
-// corresponding mocked member function. |
-class MockDispatchedNPObject : public DefaultNPObject<NPObject> { |
- public: |
- explicit MockDispatchedNPObject(NPP npp) { |
- } |
- |
- MOCK_METHOD0(VoidReturnNoParams, void()); |
- MOCK_METHOD1(VoidReturnBoolParam, void(bool)); |
- MOCK_METHOD1(VoidReturnIntParam, void(int)); |
- MOCK_METHOD1(VoidReturnFloatParam, void(float)); |
- MOCK_METHOD1(VoidReturnDoubleParam, void(double)); |
- MOCK_METHOD1(VoidReturnStringParam, void(std::string)); |
- MOCK_METHOD1(VoidReturnObjectParam, void(NPObjectPointer<NPObject>)); |
- MOCK_METHOD2(VoidReturnTwoParams, void(bool, int)); |
- MOCK_METHOD0(Overloaded, void()); |
- MOCK_METHOD1(Overloaded, void(bool)); |
- MOCK_METHOD1(Overloaded, void(std::string)); |
- MOCK_METHOD0(BoolReturn, bool()); |
- MOCK_METHOD0(IntReturn, int()); |
- MOCK_METHOD0(FloatReturn, float()); |
- MOCK_METHOD0(DoubleReturn, double()); |
- MOCK_METHOD0(StringReturn, std::string()); |
- MOCK_METHOD0(ObjectReturn, NPObjectPointer<NPObject>()); |
- |
- NP_UTILS_BEGIN_DISPATCHER_CHAIN(MockDispatchedNPObject, DefaultNPObject<NPObject>) |
- NP_UTILS_DISPATCHER(VoidReturnNoParams, void()) |
- NP_UTILS_DISPATCHER(VoidReturnBoolParam, void(bool)) |
- NP_UTILS_DISPATCHER(VoidReturnIntParam, void(int)) |
- NP_UTILS_DISPATCHER(VoidReturnFloatParam, void(float)) |
- NP_UTILS_DISPATCHER(VoidReturnDoubleParam, void(double)) |
- NP_UTILS_DISPATCHER(VoidReturnStringParam, void(std::string)) |
- NP_UTILS_DISPATCHER(VoidReturnObjectParam, void(NPObjectPointer<NPObject>)) |
- NP_UTILS_DISPATCHER(VoidReturnTwoParams, void(bool, int)) |
- NP_UTILS_DISPATCHER(Overloaded, void()) |
- NP_UTILS_DISPATCHER(Overloaded, void(bool)) |
- NP_UTILS_DISPATCHER(Overloaded, void(std::string)) |
- NP_UTILS_DISPATCHER(BoolReturn, bool()) |
- NP_UTILS_DISPATCHER(IntReturn, int()) |
- NP_UTILS_DISPATCHER(FloatReturn, float()) |
- NP_UTILS_DISPATCHER(DoubleReturn, double()) |
- NP_UTILS_DISPATCHER(StringReturn, std::string()) |
- NP_UTILS_DISPATCHER(ObjectReturn, NPObjectPointer<NPObject>()); |
- NP_UTILS_END_DISPATCHER_CHAIN |
-}; |
- |
-class DispatchedNPObjectTest : public testing::Test { |
- protected: |
- virtual void SetUp() { |
- object_ = NPCreateObject<StrictMock<MockDispatchedNPObject> >(NULL); |
- passed_object_ = NPCreateObject<MockNPObject>(NULL); |
- |
- for (int i = 0; i != arraysize(args_); ++i) { |
- NULL_TO_NPVARIANT(args_[i]); |
- } |
- NULL_TO_NPVARIANT(result_); |
- } |
- |
- StubNPBrowser stub_browser_; |
- NPVariant args_[3]; |
- NPVariant result_; |
- NPObjectPointer<MockDispatchedNPObject> object_; |
- NPObjectPointer<NPObject> passed_object_; |
-}; |
- |
-TEST_F(DispatchedNPObjectTest, CannotInvokeMissingFunction) { |
- EXPECT_FALSE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("missing"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnNoParams) { |
- EXPECT_CALL(*object_, VoidReturnNoParams()); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnNoParams"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, |
- CannotInvokeVoidReturnNoParamsWithTooManyParams) { |
- EXPECT_FALSE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnNoParams"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnIntParam) { |
- EXPECT_CALL(*object_, VoidReturnIntParam(7)); |
- |
- INT32_TO_NPVARIANT(7, args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnIntParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnBoolParam) { |
- EXPECT_CALL(*object_, VoidReturnBoolParam(true)); |
- |
- BOOLEAN_TO_NPVARIANT(true, args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnBoolParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnFloatParamWithDoubleParam) { |
- EXPECT_CALL(*object_, VoidReturnFloatParam(7.0f)); |
- |
- DOUBLE_TO_NPVARIANT(7.0, args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnFloatParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnFloatParamWithIntParam) { |
- EXPECT_CALL(*object_, VoidReturnFloatParam(7.0f)); |
- |
- INT32_TO_NPVARIANT(7, args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnFloatParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnDoubleParamWithDoubleParam) { |
- EXPECT_CALL(*object_, VoidReturnDoubleParam(7.0)); |
- |
- DOUBLE_TO_NPVARIANT(7.0, args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnDoubleParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnDoubleParamWithIntParam) { |
- EXPECT_CALL(*object_, VoidReturnDoubleParam(7.0f)); |
- |
- INT32_TO_NPVARIANT(7, args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnDoubleParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnStringParam) { |
- EXPECT_CALL(*object_, VoidReturnStringParam(std::string("hello"))); |
- |
- STRINGZ_TO_NPVARIANT("hello", args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnStringParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnObjectParamWithObject) { |
- EXPECT_CALL(*object_, VoidReturnObjectParam(passed_object_)); |
- |
- OBJECT_TO_NPVARIANT(passed_object_.Get(), args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnObjectParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnObjectParamWithNull) { |
- EXPECT_CALL( |
- *object_, |
- VoidReturnObjectParam(NPObjectPointer<NPObject>())); |
- |
- NULL_TO_NPVARIANT(args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnObjectParam"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeVoidReturnTwoParams) { |
- EXPECT_CALL(*object_, VoidReturnTwoParams(false, 7)); |
- |
- BOOLEAN_TO_NPVARIANT(false, args_[0]); |
- INT32_TO_NPVARIANT(7, args_[1]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("voidReturnTwoParams"), |
- args_, |
- 2, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeOverloadedWithNoParams) { |
- EXPECT_CALL(*object_, Overloaded()); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("overloaded"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeOverloadedWithOneStringParam) { |
- EXPECT_CALL(*object_, Overloaded(std::string("hello"))); |
- |
- STRINGZ_TO_NPVARIANT("hello", args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("overloaded"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeOverloadedWithOneBoolParam) { |
- EXPECT_CALL(*object_, Overloaded(true)); |
- |
- BOOLEAN_TO_NPVARIANT(true, args_[0]); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("overloaded"), |
- args_, |
- 1, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_VOID(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeBoolReturn) { |
- EXPECT_CALL(*object_, BoolReturn()).WillOnce(Return(true)); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("boolReturn"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_BOOLEAN(result_)); |
- EXPECT_TRUE(NPVARIANT_TO_BOOLEAN(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeIntReturn) { |
- EXPECT_CALL(*object_, IntReturn()).WillOnce(Return(7)); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("intReturn"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_INT32(result_)); |
- EXPECT_EQ(7, NPVARIANT_TO_INT32(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeFloatReturn) { |
- EXPECT_CALL(*object_, FloatReturn()).WillOnce(Return(7.0f)); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("floatReturn"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_DOUBLE(result_)); |
- EXPECT_EQ(7.0, NPVARIANT_TO_DOUBLE(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeDoubleReturn) { |
- EXPECT_CALL(*object_, DoubleReturn()).WillOnce(Return(7.0)); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("doubleReturn"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_DOUBLE(result_)); |
- EXPECT_EQ(7.0, NPVARIANT_TO_DOUBLE(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeStringReturn) { |
- EXPECT_CALL(*object_, StringReturn()).WillOnce(Return(std::string("hello"))); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("stringReturn"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_STRING(result_)); |
- |
- NPString& str = NPVARIANT_TO_STRING(result_); |
- EXPECT_EQ(std::string("hello"), |
- std::string(str.UTF8Characters, str.UTF8Length)); |
- |
- // Callee is responsible for releasing string. |
- NPBrowser::get()->ReleaseVariantValue(&result_); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeObjectReturnWithObject) { |
- EXPECT_CALL(*object_, ObjectReturn()).WillOnce(Return(passed_object_)); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("objectReturn"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_OBJECT(result_)); |
- EXPECT_EQ(passed_object_.Get(), NPVARIANT_TO_OBJECT(result_)); |
- |
- NPBrowser::get()->ReleaseVariantValue(&result_); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, CanInvokeObjectReturnWithNull) { |
- EXPECT_CALL(*object_, ObjectReturn()) |
- .WillOnce(Return(NPObjectPointer<NPObject>())); |
- |
- EXPECT_TRUE(object_->Invoke( |
- NPBrowser::get()->GetStringIdentifier("objectReturn"), |
- NULL, |
- 0, |
- &result_)); |
- EXPECT_TRUE(NPVARIANT_IS_NULL(result_)); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, HasMethodReturnsTrueIfMatchingMemberVariable) { |
- EXPECT_TRUE(object_->HasMethod( |
- NPBrowser::get()->GetStringIdentifier("objectReturn"))); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, HasMethodReturnsTrueIfNoMatchingMemberVariable) { |
- EXPECT_FALSE(object_->HasMethod( |
- NPBrowser::get()->GetStringIdentifier("missing"))); |
-} |
- |
-TEST_F(DispatchedNPObjectTest, EnumeratesAllAvailableMethods) { |
- NPIdentifier* names; |
- uint32_t num_names; |
- ASSERT_TRUE(object_->Enumerate(&names, &num_names)); |
- |
- // Don't compare all of them; this test would need to change every time new |
- // dispatchers were added to the test NPObject class. Just compare the first |
- // registered (last in the dispatcher chain) and that more than one is |
- // returned. |
- EXPECT_GT(num_names, 1u); |
- EXPECT_EQ(NPBrowser::get()->GetStringIdentifier("voidReturnNoParams"), |
- names[num_names - 1]); |
- |
- NPBrowser::get()->MemFree(names); |
-} |
- |
-} // namespace np_utils |