Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Side by Side Diff: gpu/np_utils/np_utils_unittest.cc

Issue 481007: Deleted np_utils library. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « gpu/np_utils/np_utils.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "gpu/np_utils/np_object_mock.h"
6 #include "gpu/np_utils/np_browser_stub.h"
7 #include "gpu/np_utils/np_utils.h"
8 #include "testing/gmock/include/gmock/gmock.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 using testing::_;
12 using testing::DoAll;
13 using testing::MakeMatcher;
14 using testing::Matcher;
15 using testing::Pointee;
16 using testing::Return;
17 using testing::SetArgumentPointee;
18 using testing::StrictMock;
19
20 namespace np_utils {
21
22 class NPUtilsTest : public testing::Test {
23 protected:
24 StubNPBrowser stub_browser_;
25 NPP_t npp_;
26 NPVariant variant_;
27 };
28
29 TEST_F(NPUtilsTest, TestBoolNPVariantToValue) {
30 bool v;
31
32 BOOLEAN_TO_NPVARIANT(false, variant_);
33 EXPECT_TRUE(NPVariantToValue(&v, variant_));
34 EXPECT_FALSE(v);
35
36 BOOLEAN_TO_NPVARIANT(true, variant_);
37 EXPECT_TRUE(NPVariantToValue(&v, variant_));
38 EXPECT_TRUE(v);
39
40 INT32_TO_NPVARIANT(7, variant_);
41 EXPECT_FALSE(NPVariantToValue(&v, variant_));
42 }
43
44 TEST_F(NPUtilsTest, TestIntNPVariantToValue) {
45 INT32_TO_NPVARIANT(7, variant_);
46
47 int v1;
48 EXPECT_TRUE(NPVariantToValue(&v1, variant_));
49 EXPECT_EQ(7, v1);
50
51 float v2;
52 EXPECT_TRUE(NPVariantToValue(&v2, variant_));
53 EXPECT_EQ(7.0f, v2);
54
55 double v3;
56 EXPECT_TRUE(NPVariantToValue(&v3, variant_));
57 EXPECT_EQ(7.0, v3);
58
59 BOOLEAN_TO_NPVARIANT(false, variant_);
60 EXPECT_FALSE(NPVariantToValue(&v1, variant_));
61 }
62
63 TEST_F(NPUtilsTest, TestFloatNPVariantToValue) {
64 float v;
65
66 DOUBLE_TO_NPVARIANT(7.0, variant_);
67 EXPECT_TRUE(NPVariantToValue(&v, variant_));
68 EXPECT_EQ(7.0f, v);
69
70 BOOLEAN_TO_NPVARIANT(false, variant_);
71 EXPECT_FALSE(NPVariantToValue(&v, variant_));
72 }
73
74 TEST_F(NPUtilsTest, TestDoubleNPVariantToValue) {
75 double v;
76
77 DOUBLE_TO_NPVARIANT(7.0, variant_);
78 EXPECT_TRUE(NPVariantToValue(&v, variant_));
79 EXPECT_EQ(7.0, v);
80
81 BOOLEAN_TO_NPVARIANT(false, variant_);
82 EXPECT_FALSE(NPVariantToValue(&v, variant_));
83 }
84
85 TEST_F(NPUtilsTest, TestStringNPVariantToValue) {
86 std::string v;
87
88 STRINGZ_TO_NPVARIANT("hello", variant_);
89 EXPECT_TRUE(NPVariantToValue(&v, variant_));
90 EXPECT_EQ(std::string("hello"), v);
91
92 BOOLEAN_TO_NPVARIANT(false, variant_);
93 EXPECT_FALSE(NPVariantToValue(&v, variant_));
94 }
95
96 TEST_F(NPUtilsTest, TestObjectNPVariantToValue) {
97 NPObjectPointer<NPObject> object =
98 NPCreateObject<StrictMock<MockNPObject> >(NULL);
99 NPObjectPointer<NPObject> v;
100
101 OBJECT_TO_NPVARIANT(object.Get(), variant_);
102 EXPECT_TRUE(NPVariantToValue(&v, variant_));
103 EXPECT_EQ(object, v);
104
105 BOOLEAN_TO_NPVARIANT(false, variant_);
106 EXPECT_FALSE(NPVariantToValue(&v, variant_));
107 }
108
109 TEST_F(NPUtilsTest, TestNullNPVariantToValue) {
110 NPObjectPointer<NPObject> v;
111
112 NULL_TO_NPVARIANT(variant_);
113 EXPECT_TRUE(NPVariantToValue(&v, variant_));
114 EXPECT_TRUE(NPObjectPointer<NPObject>() == v);
115
116 BOOLEAN_TO_NPVARIANT(false, variant_);
117 EXPECT_FALSE(NPVariantToValue(&v, variant_));
118 }
119
120 TEST_F(NPUtilsTest, TestDerivedObjectNPVariantToValue) {
121 NPObjectPointer<NPObject> object =
122 NPCreateObject<StrictMock<MockNPObject> >(NULL);
123 NPObjectPointer<StrictMock<MockNPObject> > v;
124
125 OBJECT_TO_NPVARIANT(object.Get(), variant_);
126 EXPECT_TRUE(NPVariantToValue(&v, variant_));
127 EXPECT_EQ(object, v);
128 }
129
130 TEST_F(NPUtilsTest,
131 TestDerivedObjectNPVariantToValueFailsIfValueHasDifferentType) {
132 NPObjectPointer<NPObject> object =
133 NPCreateObject<StrictMock<MockNPObject> >(NULL);
134 NPObjectPointer<MockNPObject> v;
135
136 OBJECT_TO_NPVARIANT(object.Get(), variant_);
137 EXPECT_FALSE(NPVariantToValue(&v, variant_));
138 }
139
140 TEST_F(NPUtilsTest, TestBoolValueToNPVariant) {
141 ValueToNPVariant(true, &variant_);
142 EXPECT_TRUE(NPVARIANT_IS_BOOLEAN(variant_));
143 EXPECT_TRUE(NPVARIANT_TO_BOOLEAN(variant_));
144
145 ValueToNPVariant(false, &variant_);
146 EXPECT_TRUE(NPVARIANT_IS_BOOLEAN(variant_));
147 EXPECT_FALSE(NPVARIANT_TO_BOOLEAN(variant_));
148 }
149
150 TEST_F(NPUtilsTest, TestIntValueToNPVariant) {
151 ValueToNPVariant(7, &variant_);
152 EXPECT_TRUE(NPVARIANT_IS_INT32(variant_));
153 EXPECT_EQ(7, NPVARIANT_TO_INT32(variant_));
154 }
155
156 TEST_F(NPUtilsTest, TestFloatValueToNPVariant) {
157 ValueToNPVariant(7.0f, &variant_);
158 EXPECT_TRUE(NPVARIANT_IS_DOUBLE(variant_));
159 EXPECT_EQ(7.0, NPVARIANT_TO_DOUBLE(variant_));
160 }
161
162 TEST_F(NPUtilsTest, TestDoubleValueToNPVariant) {
163 ValueToNPVariant(7.0, &variant_);
164 EXPECT_TRUE(NPVARIANT_IS_DOUBLE(variant_));
165 EXPECT_EQ(7.0, NPVARIANT_TO_DOUBLE(variant_));
166 }
167
168 TEST_F(NPUtilsTest, TestStringValueToNPVariant) {
169 ValueToNPVariant(std::string("hello"), &variant_);
170 EXPECT_TRUE(NPVARIANT_IS_STRING(variant_));
171 EXPECT_EQ(std::string("hello"),
172 std::string(variant_.value.stringValue.UTF8Characters,
173 variant_.value.stringValue.UTF8Length));
174 }
175
176 TEST_F(NPUtilsTest, TestObjectValueToNPVariant) {
177 NPObjectPointer<NPObject> object =
178 NPCreateObject<StrictMock<MockNPObject> >(NULL);
179
180 ValueToNPVariant(object, &variant_);
181 EXPECT_TRUE(NPVARIANT_IS_OBJECT(variant_));
182 EXPECT_EQ(object.Get(), NPVARIANT_TO_OBJECT(variant_));
183
184 NPBrowser::get()->ReleaseVariantValue(&variant_);
185 }
186
187 TEST_F(NPUtilsTest, TestNullValueToNPVariant) {
188 ValueToNPVariant(NPObjectPointer<NPObject>(), &variant_);
189 EXPECT_TRUE(NPVARIANT_IS_NULL(variant_));
190 }
191
192 TEST_F(NPUtilsTest, CanCopyObjectSmartVariant) {
193 NPObjectPointer<NPObject> object =
194 NPCreateObject<StrictMock<MockNPObject> >(NULL);
195 EXPECT_EQ(1, object->referenceCount);
196 {
197 SmartNPVariant v1(object);
198 EXPECT_EQ(2, object->referenceCount);
199 {
200 SmartNPVariant v2(v1);
201 EXPECT_EQ(3, object->referenceCount);
202 }
203 EXPECT_EQ(2, object->referenceCount);
204 }
205 EXPECT_EQ(1, object->referenceCount);
206 }
207
208 TEST_F(NPUtilsTest, CanCopyStringSmartVariant) {
209 SmartNPVariant v1(std::string("hello"));
210 SmartNPVariant v2(v1);
211 std::string r;
212 EXPECT_TRUE(NPVariantToValue(&r, v2));
213 EXPECT_EQ(std::string("hello"), r);
214 EXPECT_NE(v1.value.stringValue.UTF8Characters,
215 v2.value.stringValue.UTF8Characters);
216 }
217
218 TEST_F(NPUtilsTest, CanReleaseSmartVariant) {
219 SmartNPVariant variant(std::string("hello"));
220 EXPECT_FALSE(variant.IsVoid());
221 variant.Release();
222 EXPECT_TRUE(variant.IsVoid());
223 }
224
225 template <typename T>
226 class VariantMatcher : public testing::MatcherInterface<const NPVariant&> {
227 public:
228 explicit VariantMatcher(const T& value) : value_(value) {
229 }
230
231 virtual bool Matches(const NPVariant& variant) const {
232 T other_value;
233 return NPVariantToValue(&other_value, variant) && other_value == value_;
234 }
235
236 virtual void DescribeTo(::std::ostream* os) const {
237 *os << "equals " << value_;
238 }
239
240 virtual void DescribeNegationTo(::std::ostream* os) const {
241 *os << "does not equal " << value_;
242 }
243
244 private:
245 T value_;
246 };
247
248 template <typename T>
249 Matcher<const NPVariant&> VariantMatches(const T& value) {
250 return MakeMatcher(new VariantMatcher<T>(value));
251 }
252
253 TEST_F(NPUtilsTest, CanDetermineIfObjectHasMethod) {
254 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
255 NPObjectPointer<MockNPObject> object =
256 NPCreateObject<StrictMock<MockNPObject> >(NULL);
257
258 EXPECT_CALL(*object, HasMethod(name))
259 .WillOnce(Return(true));
260
261 EXPECT_TRUE(NPHasMethod(NULL, object, "foo"));
262 }
263
264 TEST_F(NPUtilsTest, CanInvokeVoidMethodWithNativeTypes) {
265 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
266 NPObjectPointer<MockNPObject> object =
267 NPCreateObject<StrictMock<MockNPObject> >(NULL);
268
269 VOID_TO_NPVARIANT(variant_);
270
271 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
272 .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
273 Return(true)));
274
275 EXPECT_TRUE(NPInvokeVoid(NULL, object, "foo", 7));
276 }
277
278 TEST_F(NPUtilsTest, InvokeVoidMethodCanFail) {
279 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
280 NPObjectPointer<MockNPObject> object =
281 NPCreateObject<StrictMock<MockNPObject> >(NULL);
282
283 VOID_TO_NPVARIANT(variant_);
284
285 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
286 .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
287 Return(false)));
288
289 EXPECT_FALSE(NPInvokeVoid(NULL, object, "foo", 7));
290 }
291
292 TEST_F(NPUtilsTest, CanInvokeNonVoidMethodWithNativeTypes) {
293 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
294 NPObjectPointer<MockNPObject> object =
295 NPCreateObject<StrictMock<MockNPObject> >(NULL);
296
297 DOUBLE_TO_NPVARIANT(1.5, variant_);
298
299 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
300 .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
301 Return(true)));
302
303 double r;
304 EXPECT_TRUE(NPInvoke(NULL, object, "foo", 7, &r));
305 EXPECT_EQ(1.5, r);
306 }
307
308 TEST_F(NPUtilsTest, InvokeNonVoidMethodCanFail) {
309 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
310 NPObjectPointer<MockNPObject> object =
311 NPCreateObject<StrictMock<MockNPObject> >(NULL);
312
313 DOUBLE_TO_NPVARIANT(1.5, variant_);
314
315 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
316 .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
317 Return(false)));
318
319 double r;
320 EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r));
321 }
322
323 TEST_F(NPUtilsTest, InvokeNonVoidMethodFailsIfResultIsIncompatible) {
324 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
325 NPObjectPointer<MockNPObject> object =
326 NPCreateObject<StrictMock<MockNPObject> >(NULL);
327
328 DOUBLE_TO_NPVARIANT(1.5, variant_);
329
330 EXPECT_CALL(*object, Invoke(name, Pointee(VariantMatches<int32>(7)), 1, _))
331 .WillOnce(DoAll(SetArgumentPointee<3>(variant_),
332 Return(true)));
333
334 int r;
335 EXPECT_FALSE(NPInvoke(NULL, object, "foo", 7, &r));
336 }
337
338 TEST_F(NPUtilsTest, CanDetermineIfObjectHasProperty) {
339 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
340 NPObjectPointer<MockNPObject> object =
341 NPCreateObject<StrictMock<MockNPObject> >(NULL);
342
343 EXPECT_CALL(*object, HasProperty(name))
344 .WillOnce(Return(true));
345
346 EXPECT_TRUE(NPHasProperty(NULL, object, "foo"));
347 }
348
349 TEST_F(NPUtilsTest, CanGetPropertyValue) {
350 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
351 NPObjectPointer<MockNPObject> object =
352 NPCreateObject<StrictMock<MockNPObject> >(NULL);
353
354 DOUBLE_TO_NPVARIANT(1.5, variant_);
355
356 EXPECT_CALL(*object, GetProperty(name, _))
357 .WillOnce(DoAll(SetArgumentPointee<1>(variant_),
358 Return(true)));
359
360 double r;
361 EXPECT_TRUE(NPGetProperty(NULL, object, "foo", &r));
362 }
363
364 TEST_F(NPUtilsTest, NPGetPropertyReportsFailureIfResultTypeIsDifferent) {
365 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
366 NPObjectPointer<MockNPObject> object =
367 NPCreateObject<StrictMock<MockNPObject> >(NULL);
368
369 DOUBLE_TO_NPVARIANT(1.5, variant_);
370
371 EXPECT_CALL(*object, GetProperty(name, _))
372 .WillOnce(DoAll(SetArgumentPointee<1>(variant_),
373 Return(true)));
374
375 bool r;
376 EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r));
377 }
378
379 TEST_F(NPUtilsTest, NPGetPropertyReportsFailureFromGetProperty) {
380 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
381 NPObjectPointer<MockNPObject> object =
382 NPCreateObject<StrictMock<MockNPObject> >(NULL);
383
384 EXPECT_CALL(*object, GetProperty(name, _))
385 .WillOnce(Return(false));
386
387 double r;
388 EXPECT_FALSE(NPGetProperty(NULL, object, "foo", &r));
389 }
390
391 TEST_F(NPUtilsTest, CanSetPropertyValue) {
392 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
393 NPObjectPointer<MockNPObject> object =
394 NPCreateObject<StrictMock<MockNPObject> >(NULL);
395
396 EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5))))
397 .WillOnce(Return(true));
398
399 EXPECT_TRUE(NPSetProperty(NULL, object, "foo", 1.5));
400 }
401
402 TEST_F(NPUtilsTest, NPSetPropertyReportsFailureFromSetProperty) {
403 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
404 NPObjectPointer<MockNPObject> object =
405 NPCreateObject<StrictMock<MockNPObject> >(NULL);
406
407 EXPECT_CALL(*object, SetProperty(name, Pointee(VariantMatches(1.5))))
408 .WillOnce(Return(false));
409
410 EXPECT_FALSE(NPSetProperty(NULL, object, "foo", 1.5));
411 }
412
413 TEST_F(NPUtilsTest, CanRemovePropertyValue) {
414 NPIdentifier name = NPBrowser::get()->GetStringIdentifier("foo");
415 NPObjectPointer<MockNPObject> object =
416 NPCreateObject<StrictMock<MockNPObject> >(NULL);
417
418 EXPECT_CALL(*object, RemoveProperty(name))
419 .WillOnce(Return(true));
420
421 EXPECT_TRUE(NPRemoveProperty(NULL, object, "foo"));
422 }
423
424 } // namespace np_utils
OLDNEW
« no previous file with comments | « gpu/np_utils/np_utils.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698