| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "o3d/gpu_plugin/np_utils/base_np_object_mock.h" | 5 #include "o3d/gpu_plugin/np_utils/np_object_mock.h" |
| 6 #include "o3d/gpu_plugin/np_utils/np_browser_stub.h" | 6 #include "o3d/gpu_plugin/np_utils/np_browser_stub.h" |
| 7 #include "o3d/gpu_plugin/np_utils/np_utils.h" | 7 #include "o3d/gpu_plugin/np_utils/np_utils.h" |
| 8 #include "testing/gmock/include/gmock/gmock.h" | 8 #include "testing/gmock/include/gmock/gmock.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| 11 using testing::_; | 11 using testing::_; |
| 12 using testing::DoAll; | 12 using testing::DoAll; |
| 13 using testing::MakeMatcher; | 13 using testing::MakeMatcher; |
| 14 using testing::Matcher; | 14 using testing::Matcher; |
| 15 using testing::Pointee; | 15 using testing::Pointee; |
| 16 using testing::Return; | 16 using testing::Return; |
| 17 using testing::SetArgumentPointee; | 17 using testing::SetArgumentPointee; |
| 18 using testing::StrictMock; | 18 using testing::StrictMock; |
| 19 | 19 |
| 20 namespace o3d { | 20 namespace o3d { |
| 21 namespace gpu_plugin { | 21 namespace gpu_plugin { |
| 22 | 22 |
| 23 class NPUtilsTest : public testing::Test { | 23 class NPUtilsTest : public testing::Test { |
| 24 protected: | 24 protected: |
| 25 virtual void SetUp() { | |
| 26 // Make sure no MockBaseNPObject objects exist before test. | |
| 27 ASSERT_EQ(0, MockBaseNPObject::count()); | |
| 28 } | |
| 29 | |
| 30 virtual void TearDown() { | |
| 31 // Make sure no MockBaseNPObject leaked an object. | |
| 32 ASSERT_EQ(0, MockBaseNPObject::count()); | |
| 33 } | |
| 34 | |
| 35 StubNPBrowser stub_browser_; | 25 StubNPBrowser stub_browser_; |
| 36 NPP_t npp_; | 26 NPP_t npp_; |
| 37 NPVariant variant_; | 27 NPVariant variant_; |
| 38 }; | 28 }; |
| 39 | 29 |
| 40 TEST_F(NPUtilsTest, TestBoolNPVariantToValue) { | 30 TEST_F(NPUtilsTest, TestBoolNPVariantToValue) { |
| 41 bool v; | 31 bool v; |
| 42 | 32 |
| 43 BOOLEAN_TO_NPVARIANT(false, variant_); | 33 BOOLEAN_TO_NPVARIANT(false, variant_); |
| 44 EXPECT_TRUE(NPVariantToValue(&v, variant_)); | 34 EXPECT_TRUE(NPVariantToValue(&v, variant_)); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 STRINGZ_TO_NPVARIANT("hello", variant_); | 89 STRINGZ_TO_NPVARIANT("hello", variant_); |
| 100 EXPECT_TRUE(NPVariantToValue(&v, variant_)); | 90 EXPECT_TRUE(NPVariantToValue(&v, variant_)); |
| 101 EXPECT_EQ(std::string("hello"), v); | 91 EXPECT_EQ(std::string("hello"), v); |
| 102 | 92 |
| 103 BOOLEAN_TO_NPVARIANT(false, variant_); | 93 BOOLEAN_TO_NPVARIANT(false, variant_); |
| 104 EXPECT_FALSE(NPVariantToValue(&v, variant_)); | 94 EXPECT_FALSE(NPVariantToValue(&v, variant_)); |
| 105 } | 95 } |
| 106 | 96 |
| 107 TEST_F(NPUtilsTest, TestObjectNPVariantToValue) { | 97 TEST_F(NPUtilsTest, TestObjectNPVariantToValue) { |
| 108 NPObjectPointer<NPObject> object = | 98 NPObjectPointer<NPObject> object = |
| 109 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 99 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 110 NPObjectPointer<NPObject> v; | 100 NPObjectPointer<NPObject> v; |
| 111 | 101 |
| 112 OBJECT_TO_NPVARIANT(object.Get(), variant_); | 102 OBJECT_TO_NPVARIANT(object.Get(), variant_); |
| 113 EXPECT_TRUE(NPVariantToValue(&v, variant_)); | 103 EXPECT_TRUE(NPVariantToValue(&v, variant_)); |
| 114 EXPECT_EQ(object, v); | 104 EXPECT_EQ(object, v); |
| 115 | 105 |
| 116 BOOLEAN_TO_NPVARIANT(false, variant_); | 106 BOOLEAN_TO_NPVARIANT(false, variant_); |
| 117 EXPECT_FALSE(NPVariantToValue(&v, variant_)); | 107 EXPECT_FALSE(NPVariantToValue(&v, variant_)); |
| 118 } | 108 } |
| 119 | 109 |
| 120 TEST_F(NPUtilsTest, TestNullNPVariantToValue) { | 110 TEST_F(NPUtilsTest, TestNullNPVariantToValue) { |
| 121 NPObjectPointer<NPObject> v; | 111 NPObjectPointer<NPObject> v; |
| 122 | 112 |
| 123 NULL_TO_NPVARIANT(variant_); | 113 NULL_TO_NPVARIANT(variant_); |
| 124 EXPECT_TRUE(NPVariantToValue(&v, variant_)); | 114 EXPECT_TRUE(NPVariantToValue(&v, variant_)); |
| 125 EXPECT_TRUE(NPObjectPointer<NPObject>() == v); | 115 EXPECT_TRUE(NPObjectPointer<NPObject>() == v); |
| 126 | 116 |
| 127 BOOLEAN_TO_NPVARIANT(false, variant_); | 117 BOOLEAN_TO_NPVARIANT(false, variant_); |
| 128 EXPECT_FALSE(NPVariantToValue(&v, variant_)); | 118 EXPECT_FALSE(NPVariantToValue(&v, variant_)); |
| 129 } | 119 } |
| 130 | 120 |
| 131 TEST_F(NPUtilsTest, TestDerivedObjectNPVariantToValue) { | 121 TEST_F(NPUtilsTest, TestDerivedObjectNPVariantToValue) { |
| 132 NPObjectPointer<NPObject> object = | 122 NPObjectPointer<NPObject> object = |
| 133 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 123 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 134 NPObjectPointer<StrictMock<MockBaseNPObject> > v; | 124 NPObjectPointer<StrictMock<MockNPObject> > v; |
| 135 | 125 |
| 136 OBJECT_TO_NPVARIANT(object.Get(), variant_); | 126 OBJECT_TO_NPVARIANT(object.Get(), variant_); |
| 137 EXPECT_TRUE(NPVariantToValue(&v, variant_)); | 127 EXPECT_TRUE(NPVariantToValue(&v, variant_)); |
| 138 EXPECT_EQ(object, v); | 128 EXPECT_EQ(object, v); |
| 139 } | 129 } |
| 140 | 130 |
| 141 TEST_F(NPUtilsTest, | 131 TEST_F(NPUtilsTest, |
| 142 TestDerivedObjectNPVariantToValueFailsIfValueHasDifferentType) { | 132 TestDerivedObjectNPVariantToValueFailsIfValueHasDifferentType) { |
| 143 NPObjectPointer<NPObject> object = | 133 NPObjectPointer<NPObject> object = |
| 144 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 134 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 145 NPObjectPointer<MockBaseNPObject> v; | 135 NPObjectPointer<MockNPObject> v; |
| 146 | 136 |
| 147 OBJECT_TO_NPVARIANT(object.Get(), variant_); | 137 OBJECT_TO_NPVARIANT(object.Get(), variant_); |
| 148 EXPECT_FALSE(NPVariantToValue(&v, variant_)); | 138 EXPECT_FALSE(NPVariantToValue(&v, variant_)); |
| 149 } | 139 } |
| 150 | 140 |
| 151 TEST_F(NPUtilsTest, TestBoolValueToNPVariant) { | 141 TEST_F(NPUtilsTest, TestBoolValueToNPVariant) { |
| 152 ValueToNPVariant(true, &variant_); | 142 ValueToNPVariant(true, &variant_); |
| 153 EXPECT_TRUE(NPVARIANT_IS_BOOLEAN(variant_)); | 143 EXPECT_TRUE(NPVARIANT_IS_BOOLEAN(variant_)); |
| 154 EXPECT_TRUE(NPVARIANT_TO_BOOLEAN(variant_)); | 144 EXPECT_TRUE(NPVARIANT_TO_BOOLEAN(variant_)); |
| 155 | 145 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 179 TEST_F(NPUtilsTest, TestStringValueToNPVariant) { | 169 TEST_F(NPUtilsTest, TestStringValueToNPVariant) { |
| 180 ValueToNPVariant(std::string("hello"), &variant_); | 170 ValueToNPVariant(std::string("hello"), &variant_); |
| 181 EXPECT_TRUE(NPVARIANT_IS_STRING(variant_)); | 171 EXPECT_TRUE(NPVARIANT_IS_STRING(variant_)); |
| 182 EXPECT_EQ(std::string("hello"), | 172 EXPECT_EQ(std::string("hello"), |
| 183 std::string(variant_.value.stringValue.UTF8Characters, | 173 std::string(variant_.value.stringValue.UTF8Characters, |
| 184 variant_.value.stringValue.UTF8Length)); | 174 variant_.value.stringValue.UTF8Length)); |
| 185 } | 175 } |
| 186 | 176 |
| 187 TEST_F(NPUtilsTest, TestObjectValueToNPVariant) { | 177 TEST_F(NPUtilsTest, TestObjectValueToNPVariant) { |
| 188 NPObjectPointer<NPObject> object = | 178 NPObjectPointer<NPObject> object = |
| 189 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 179 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 190 | 180 |
| 191 ValueToNPVariant(object, &variant_); | 181 ValueToNPVariant(object, &variant_); |
| 192 EXPECT_TRUE(NPVARIANT_IS_OBJECT(variant_)); | 182 EXPECT_TRUE(NPVARIANT_IS_OBJECT(variant_)); |
| 193 EXPECT_EQ(object.Get(), NPVARIANT_TO_OBJECT(variant_)); | 183 EXPECT_EQ(object.Get(), NPVARIANT_TO_OBJECT(variant_)); |
| 194 | 184 |
| 195 NPBrowser::get()->ReleaseVariantValue(&variant_); | 185 NPBrowser::get()->ReleaseVariantValue(&variant_); |
| 196 } | 186 } |
| 197 | 187 |
| 198 TEST_F(NPUtilsTest, TestNullValueToNPVariant) { | 188 TEST_F(NPUtilsTest, TestNullValueToNPVariant) { |
| 199 ValueToNPVariant(NPObjectPointer<NPObject>(), &variant_); | 189 ValueToNPVariant(NPObjectPointer<NPObject>(), &variant_); |
| 200 EXPECT_TRUE(NPVARIANT_IS_NULL(variant_)); | 190 EXPECT_TRUE(NPVARIANT_IS_NULL(variant_)); |
| 201 } | 191 } |
| 202 | 192 |
| 203 TEST_F(NPUtilsTest, CanCopyObjectSmartVariant) { | 193 TEST_F(NPUtilsTest, CanCopyObjectSmartVariant) { |
| 204 NPObjectPointer<NPObject> object = | 194 NPObjectPointer<NPObject> object = |
| 205 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 195 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 206 EXPECT_EQ(1, object->referenceCount); | 196 EXPECT_EQ(1, object->referenceCount); |
| 207 { | 197 { |
| 208 SmartNPVariant v1(object); | 198 SmartNPVariant v1(object); |
| 209 EXPECT_EQ(2, object->referenceCount); | 199 EXPECT_EQ(2, object->referenceCount); |
| 210 { | 200 { |
| 211 SmartNPVariant v2(v1); | 201 SmartNPVariant v2(v1); |
| 212 EXPECT_EQ(3, object->referenceCount); | 202 EXPECT_EQ(3, object->referenceCount); |
| 213 } | 203 } |
| 214 EXPECT_EQ(2, object->referenceCount); | 204 EXPECT_EQ(2, object->referenceCount); |
| 215 } | 205 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 T value_; | 246 T value_; |
| 257 }; | 247 }; |
| 258 | 248 |
| 259 template <typename T> | 249 template <typename T> |
| 260 Matcher<const NPVariant&> VariantMatches(const T& value) { | 250 Matcher<const NPVariant&> VariantMatches(const T& value) { |
| 261 return MakeMatcher(new VariantMatcher<T>(value)); | 251 return MakeMatcher(new VariantMatcher<T>(value)); |
| 262 } | 252 } |
| 263 | 253 |
| 264 TEST_F(NPUtilsTest, CanDetermineIfObjectHasMethod) { | 254 TEST_F(NPUtilsTest, CanDetermineIfObjectHasMethod) { |
| 265 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 255 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 266 NPObjectPointer<MockBaseNPObject> object = | 256 NPObjectPointer<MockNPObject> object = |
| 267 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 257 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 268 | 258 |
| 269 EXPECT_CALL(*object, HasMethod(name)) | 259 EXPECT_CALL(*object, HasMethod(name)) |
| 270 .WillOnce(Return(true)); | 260 .WillOnce(Return(true)); |
| 271 | 261 |
| 272 EXPECT_TRUE(NPHasMethod(NULL, object, "foo")); | 262 EXPECT_TRUE(NPHasMethod(NULL, object, "foo")); |
| 273 } | 263 } |
| 274 | 264 |
| 275 TEST_F(NPUtilsTest, CanInvokeVoidMethodWithNativeTypes) { | 265 TEST_F(NPUtilsTest, CanInvokeVoidMethodWithNativeTypes) { |
| 276 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 266 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 277 NPObjectPointer<MockBaseNPObject> object = | 267 NPObjectPointer<MockNPObject> object = |
| 278 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 268 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 279 | 269 |
| 280 VOID_TO_NPVARIANT(variant_); | 270 VOID_TO_NPVARIANT(variant_); |
| 281 | 271 |
| 282 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) | 272 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) |
| 283 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), | 273 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), |
| 284 Return(true))); | 274 Return(true))); |
| 285 | 275 |
| 286 EXPECT_TRUE(NPInvokeVoid(NULL, object, "foo", 7)); | 276 EXPECT_TRUE(NPInvokeVoid(NULL, object, "foo", 7)); |
| 287 } | 277 } |
| 288 | 278 |
| 289 TEST_F(NPUtilsTest, InvokeVoidMethodCanFail) { | 279 TEST_F(NPUtilsTest, InvokeVoidMethodCanFail) { |
| 290 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 280 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 291 NPObjectPointer<MockBaseNPObject> object = | 281 NPObjectPointer<MockNPObject> object = |
| 292 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 282 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 293 | 283 |
| 294 VOID_TO_NPVARIANT(variant_); | 284 VOID_TO_NPVARIANT(variant_); |
| 295 | 285 |
| 296 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) | 286 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) |
| 297 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), | 287 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), |
| 298 Return(false))); | 288 Return(false))); |
| 299 | 289 |
| 300 EXPECT_FALSE(NPInvokeVoid(NULL, object, "foo", 7)); | 290 EXPECT_FALSE(NPInvokeVoid(NULL, object, "foo", 7)); |
| 301 } | 291 } |
| 302 | 292 |
| 303 TEST_F(NPUtilsTest, CanInvokeNonVoidMethodWithNativeTypes) { | 293 TEST_F(NPUtilsTest, CanInvokeNonVoidMethodWithNativeTypes) { |
| 304 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 294 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 305 NPObjectPointer<MockBaseNPObject> object = | 295 NPObjectPointer<MockNPObject> object = |
| 306 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 296 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 307 | 297 |
| 308 DOUBLE_TO_NPVARIANT(1.5, variant_); | 298 DOUBLE_TO_NPVARIANT(1.5, variant_); |
| 309 | 299 |
| 310 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) | 300 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) |
| 311 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), | 301 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), |
| 312 Return(true))); | 302 Return(true))); |
| 313 | 303 |
| 314 double r; | 304 double r; |
| 315 EXPECT_TRUE(NPInvoke(NULL, object, "foo", 7, &r)); | 305 EXPECT_TRUE(NPInvoke(NULL, object, "foo", 7, &r)); |
| 316 EXPECT_EQ(1.5, r); | 306 EXPECT_EQ(1.5, r); |
| 317 } | 307 } |
| 318 | 308 |
| 319 TEST_F(NPUtilsTest, InvokeNonVoidMethodCanFail) { | 309 TEST_F(NPUtilsTest, InvokeNonVoidMethodCanFail) { |
| 320 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 310 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 321 NPObjectPointer<MockBaseNPObject> object = | 311 NPObjectPointer<MockNPObject> object = |
| 322 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 312 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 323 | 313 |
| 324 DOUBLE_TO_NPVARIANT(1.5, variant_); | 314 DOUBLE_TO_NPVARIANT(1.5, variant_); |
| 325 | 315 |
| 326 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) | 316 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) |
| 327 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), | 317 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), |
| 328 Return(false))); | 318 Return(false))); |
| 329 | 319 |
| 330 double r; | 320 double r; |
| 331 EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r)); | 321 EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r)); |
| 332 } | 322 } |
| 333 | 323 |
| 334 TEST_F(NPUtilsTest, InvokeNonVoidMethodFailsIfResultIsIncompatible) { | 324 TEST_F(NPUtilsTest, InvokeNonVoidMethodFailsIfResultIsIncompatible) { |
| 335 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 325 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 336 NPObjectPointer<MockBaseNPObject> object = | 326 NPObjectPointer<MockNPObject> object = |
| 337 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 327 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 338 | 328 |
| 339 DOUBLE_TO_NPVARIANT(1.5, variant_); | 329 DOUBLE_TO_NPVARIANT(1.5, variant_); |
| 340 | 330 |
| 341 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) | 331 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _)) |
| 342 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), | 332 .WillOnce(DoAll(SetArgumentPointee<3>(variant_), |
| 343 Return(true))); | 333 Return(true))); |
| 344 | 334 |
| 345 int r; | 335 int r; |
| 346 EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r)); | 336 EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r)); |
| 347 } | 337 } |
| 348 | 338 |
| 349 TEST_F(NPUtilsTest, CanDetermineIfObjectHasProperty) { | 339 TEST_F(NPUtilsTest, CanDetermineIfObjectHasProperty) { |
| 350 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 340 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 351 NPObjectPointer<MockBaseNPObject> object = | 341 NPObjectPointer<MockNPObject> object = |
| 352 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 342 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 353 | 343 |
| 354 EXPECT_CALL(*object, HasProperty(name)) | 344 EXPECT_CALL(*object, HasProperty(name)) |
| 355 .WillOnce(Return(true)); | 345 .WillOnce(Return(true)); |
| 356 | 346 |
| 357 EXPECT_TRUE(NPHasProperty(NULL, object, "foo")); | 347 EXPECT_TRUE(NPHasProperty(NULL, object, "foo")); |
| 358 } | 348 } |
| 359 | 349 |
| 360 TEST_F(NPUtilsTest, CanGetPropertyValue) { | 350 TEST_F(NPUtilsTest, CanGetPropertyValue) { |
| 361 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 351 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 362 NPObjectPointer<MockBaseNPObject> object = | 352 NPObjectPointer<MockNPObject> object = |
| 363 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 353 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 364 | 354 |
| 365 DOUBLE_TO_NPVARIANT(1.5, variant_); | 355 DOUBLE_TO_NPVARIANT(1.5, variant_); |
| 366 | 356 |
| 367 EXPECT_CALL(*object, GetProperty(name, _)) | 357 EXPECT_CALL(*object, GetProperty(name, _)) |
| 368 .WillOnce(DoAll(SetArgumentPointee<1>(variant_), | 358 .WillOnce(DoAll(SetArgumentPointee<1>(variant_), |
| 369 Return(true))); | 359 Return(true))); |
| 370 | 360 |
| 371 double r; | 361 double r; |
| 372 EXPECT_TRUE(NPGetProperty(NULL, object, "foo", &r)); | 362 EXPECT_TRUE(NPGetProperty(NULL, object, "foo", &r)); |
| 373 } | 363 } |
| 374 | 364 |
| 375 TEST_F(NPUtilsTest, NPGetPropertyReportsFailureIfResultTypeIsDifferent) { | 365 TEST_F(NPUtilsTest, NPGetPropertyReportsFailureIfResultTypeIsDifferent) { |
| 376 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 366 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 377 NPObjectPointer<MockBaseNPObject> object = | 367 NPObjectPointer<MockNPObject> object = |
| 378 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 368 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 379 | 369 |
| 380 DOUBLE_TO_NPVARIANT(1.5, variant_); | 370 DOUBLE_TO_NPVARIANT(1.5, variant_); |
| 381 | 371 |
| 382 EXPECT_CALL(*object, GetProperty(name, _)) | 372 EXPECT_CALL(*object, GetProperty(name, _)) |
| 383 .WillOnce(DoAll(SetArgumentPointee<1>(variant_), | 373 .WillOnce(DoAll(SetArgumentPointee<1>(variant_), |
| 384 Return(true))); | 374 Return(true))); |
| 385 | 375 |
| 386 bool r; | 376 bool r; |
| 387 EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r)); | 377 EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r)); |
| 388 } | 378 } |
| 389 | 379 |
| 390 TEST_F(NPUtilsTest, NPGetPropertyReportsFailureFromGetProperty) { | 380 TEST_F(NPUtilsTest, NPGetPropertyReportsFailureFromGetProperty) { |
| 391 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 381 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 392 NPObjectPointer<MockBaseNPObject> object = | 382 NPObjectPointer<MockNPObject> object = |
| 393 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 383 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 394 | 384 |
| 395 EXPECT_CALL(*object, GetProperty(name, _)) | 385 EXPECT_CALL(*object, GetProperty(name, _)) |
| 396 .WillOnce(Return(false)); | 386 .WillOnce(Return(false)); |
| 397 | 387 |
| 398 double r; | 388 double r; |
| 399 EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r)); | 389 EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r)); |
| 400 } | 390 } |
| 401 | 391 |
| 402 TEST_F(NPUtilsTest, CanSetPropertyValue) { | 392 TEST_F(NPUtilsTest, CanSetPropertyValue) { |
| 403 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 393 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 404 NPObjectPointer<MockBaseNPObject> object = | 394 NPObjectPointer<MockNPObject> object = |
| 405 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 395 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 406 | 396 |
| 407 EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5)))) | 397 EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5)))) |
| 408 .WillOnce(Return(true)); | 398 .WillOnce(Return(true)); |
| 409 | 399 |
| 410 EXPECT_TRUE(NPSetProperty(NULL, object, "foo", 1.5)); | 400 EXPECT_TRUE(NPSetProperty(NULL, object, "foo", 1.5)); |
| 411 } | 401 } |
| 412 | 402 |
| 413 TEST_F(NPUtilsTest, NPSetPropertyReportsFailureFromSetProperty) { | 403 TEST_F(NPUtilsTest, NPSetPropertyReportsFailureFromSetProperty) { |
| 414 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 404 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 415 NPObjectPointer<MockBaseNPObject> object = | 405 NPObjectPointer<MockNPObject> object = |
| 416 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 406 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 417 | 407 |
| 418 EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5)))) | 408 EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5)))) |
| 419 .WillOnce(Return(false)); | 409 .WillOnce(Return(false)); |
| 420 | 410 |
| 421 EXPECT_FALSE(NPSetProperty(NULL, object, "foo", 1.5)); | 411 EXPECT_FALSE(NPSetProperty(NULL, object, "foo", 1.5)); |
| 422 } | 412 } |
| 423 | 413 |
| 424 TEST_F(NPUtilsTest, CanRemovePropertyValue) { | 414 TEST_F(NPUtilsTest, CanRemovePropertyValue) { |
| 425 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); | 415 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo"); |
| 426 NPObjectPointer<MockBaseNPObject> object = | 416 NPObjectPointer<MockNPObject> object = |
| 427 NPCreateObject<StrictMock<MockBaseNPObject> >(NULL); | 417 NPCreateObject<StrictMock<MockNPObject> >(NULL); |
| 428 | 418 |
| 429 EXPECT_CALL(*object, RemoveProperty(name)) | 419 EXPECT_CALL(*object, RemoveProperty(name)) |
| 430 .WillOnce(Return(true)); | 420 .WillOnce(Return(true)); |
| 431 | 421 |
| 432 EXPECT_TRUE(NPRemoveProperty(NULL, object, "foo")); | 422 EXPECT_TRUE(NPRemoveProperty(NULL, object, "foo")); |
| 433 } | 423 } |
| 434 | 424 |
| 435 } // namespace gpu_plugin | 425 } // namespace gpu_plugin |
| 436 } // namespace o3d | 426 } // namespace o3d |
| OLD | NEW |