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

Side by Side Diff: gpu/gpu_plugin/gpu_plugin_unittest.cc

Issue 465040: Added CommandBufferClient, CommandBufferStub and some IPC messages.... (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/gpu_plugin/gpu_plugin_object_win.cc ('k') | ipc/ipc_message_utils.h » ('j') | 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/gpu_plugin/gpu_plugin.h"
6 #include "gpu/gpu_plugin/gpu_plugin_object.h"
7 #include "gpu/np_utils/np_object_mock.h"
8 #include "gpu/np_utils/np_plugin_object_factory_mock.h"
9 #include "gpu/np_utils/np_plugin_object_mock.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "webkit/glue/plugins/nphostapi.h"
12
13 #if defined(OS_LINUX)
14 #define INITIALIZE_PLUGIN_FUNCS , &plugin_funcs_
15 #else
16 #define INITIALIZE_PLUGIN_FUNCS
17 #endif
18
19 using np_utils::MockPluginObject;
20 using np_utils::PluginObject;
21 using testing::_;
22 using testing::DoAll;
23 using testing::NiceMock;
24 using testing::Return;
25 using testing::SetArgumentPointee;
26 using testing::StrictMock;
27
28 namespace gpu_plugin {
29
30 class GPUPluginTest : public testing::Test {
31 protected:
32 virtual void SetUp() {
33 memset(&npp_, 0, sizeof(npp_));
34 memset(&browser_funcs_, 0, sizeof(browser_funcs_));
35 memset(&plugin_funcs_, 0, sizeof(plugin_funcs_));
36
37 plugin_object_factory_ = new StrictMock<np_utils::MockPluginObjectFactory>;
38
39 np_class_ = np_utils::NPGetClass<StrictMock<np_utils::MockNPObject> >();
40 }
41
42 virtual void TearDown() {
43 delete plugin_object_factory_;
44 }
45
46 NPP_t npp_;
47 NPNetscapeFuncs browser_funcs_;
48 NPPluginFuncs plugin_funcs_;
49 np_utils::MockPluginObjectFactory* plugin_object_factory_;
50 const NPClass* np_class_;
51 };
52
53 TEST_F(GPUPluginTest, GetEntryPointsSetsNeededFunctionPointers) {
54 #if defined(OS_LINUX)
55 NPError error = gpu_plugin::NP_Initialize(&browser_funcs_,
56 &plugin_funcs_);
57 gpu_plugin::NP_Shutdown();
58 #else
59 NPError error = gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
60 #endif
61
62 EXPECT_EQ(NPERR_NO_ERROR, error);
63 EXPECT_TRUE(NULL != plugin_funcs_.newp);
64 EXPECT_TRUE(NULL != plugin_funcs_.destroy);
65 EXPECT_TRUE(NULL != plugin_funcs_.setwindow);
66 EXPECT_TRUE(NULL != plugin_funcs_.event);
67 EXPECT_TRUE(NULL != plugin_funcs_.getvalue);
68 EXPECT_TRUE(NULL != plugin_funcs_.setvalue);
69 }
70
71 TEST_F(GPUPluginTest, CanInitializeAndShutdownPlugin) {
72 EXPECT_EQ(NPERR_NO_ERROR,
73 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS));
74 EXPECT_EQ(NPERR_NO_ERROR, gpu_plugin::NP_Shutdown());
75 }
76
77 TEST_F(GPUPluginTest, InitializeFailsIfBrowserFuncsIsNull) {
78 EXPECT_EQ(NPERR_INVALID_FUNCTABLE_ERROR,
79 gpu_plugin::NP_Initialize(NULL INITIALIZE_PLUGIN_FUNCS));
80 }
81
82 TEST_F(GPUPluginTest, InitializeFailsIfAlreadyInitialized) {
83 EXPECT_EQ(NPERR_NO_ERROR,
84 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS));
85 EXPECT_EQ(NPERR_GENERIC_ERROR,
86 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS));
87 EXPECT_EQ(NPERR_NO_ERROR, gpu_plugin::NP_Shutdown());
88 }
89
90 TEST_F(GPUPluginTest, ShutdownFailsIfNotInitialized) {
91 EXPECT_EQ(NPERR_GENERIC_ERROR, gpu_plugin::NP_Shutdown());
92 }
93
94 TEST_F(GPUPluginTest, NewReturnsErrorForInvalidInstance) {
95 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
96 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
97
98 EXPECT_EQ(NPERR_INVALID_INSTANCE_ERROR, plugin_funcs_.newp(
99 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
100 NULL, 0, 0, NULL, NULL, NULL));
101
102 gpu_plugin::NP_Shutdown();
103 }
104
105 TEST_F(GPUPluginTest, GetValueReturnsErrorForInvalidInstance) {
106 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
107 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
108
109 int* result = NULL;
110 EXPECT_EQ(NPERR_INVALID_INSTANCE_ERROR, plugin_funcs_.getvalue(
111 NULL, NPPVjavaClass, &result));
112
113 gpu_plugin::NP_Shutdown();
114 }
115
116 TEST_F(GPUPluginTest, DestroyReturnsErrorForInvalidInstance) {
117 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
118 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
119
120 EXPECT_EQ(NPERR_INVALID_INSTANCE_ERROR, plugin_funcs_.destroy(NULL, NULL));
121
122 gpu_plugin::NP_Shutdown();
123 }
124
125 TEST_F(GPUPluginTest, SetWindowReturnsErrorForInvalidInstance) {
126 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
127 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
128
129 EXPECT_EQ(NPERR_INVALID_INSTANCE_ERROR, plugin_funcs_.setwindow(NULL, NULL));
130
131 gpu_plugin::NP_Shutdown();
132 }
133
134 TEST_F(GPUPluginTest, HandleEventReturnsFalseForInvalidInstance) {
135 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
136 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
137
138 EXPECT_EQ(0, plugin_funcs_.event(NULL, NULL));
139
140 gpu_plugin::NP_Shutdown();
141 }
142
143 TEST_F(GPUPluginTest, NewCreatesAPluginObjectAndInitializesIt) {
144 StrictMock<np_utils::MockPluginObject> plugin_object;
145
146 EXPECT_CALL(*plugin_object_factory_, CreatePluginObject(
147 &npp_, const_cast<NPMIMEType>(GPUPluginObject::kPluginType)))
148 .WillOnce(Return(&plugin_object));
149
150 NPObject scriptable_object;
151
152 EXPECT_CALL(plugin_object, New(
153 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
154 0, NULL, NULL, NULL))
155 .WillOnce(Return(NPERR_NO_ERROR));
156
157 EXPECT_CALL(plugin_object, GetScriptableNPObject())
158 .WillOnce(Return(&scriptable_object));
159
160 EXPECT_CALL(plugin_object, Destroy(static_cast<NPSavedData**>(NULL)))
161 .WillOnce(Return(NPERR_NO_ERROR));
162
163 EXPECT_CALL(plugin_object, Release());
164
165 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
166 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
167
168 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.newp(
169 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
170 &npp_, 0, 0, NULL, NULL, NULL));
171
172 NPObject* result;
173 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.getvalue(
174 &npp_, NPPVpluginScriptableNPObject, &result));
175 EXPECT_EQ(&scriptable_object, result);
176
177 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.destroy(&npp_, NULL));
178
179 gpu_plugin::NP_Shutdown();
180 }
181
182 TEST_F(GPUPluginTest, NewFailsIfPluginObjectFactoryFails) {
183 EXPECT_CALL(*plugin_object_factory_, CreatePluginObject(
184 &npp_, const_cast<NPMIMEType>(GPUPluginObject::kPluginType)))
185 .WillOnce(Return(static_cast<PluginObject*>(NULL)));
186
187 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
188 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
189
190 EXPECT_EQ(NPERR_GENERIC_ERROR, plugin_funcs_.newp(
191 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
192 &npp_, 0, 0, NULL, NULL, NULL));
193
194 gpu_plugin::NP_Shutdown();
195 }
196
197 TEST_F(GPUPluginTest, SetWindowForwardsToPluginObject) {
198 StrictMock<MockPluginObject> plugin_object;
199
200 EXPECT_CALL(*plugin_object_factory_, CreatePluginObject(
201 &npp_, const_cast<NPMIMEType>(GPUPluginObject::kPluginType)))
202 .WillOnce(Return(&plugin_object));
203
204 EXPECT_CALL(plugin_object, New(
205 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
206 0, NULL, NULL, NULL))
207 .WillOnce(Return(NPERR_NO_ERROR));
208
209 NPWindow window = {0};
210
211 EXPECT_CALL(plugin_object, SetWindow(&window))
212 .WillOnce(Return(NPERR_NO_ERROR));
213
214 EXPECT_CALL(plugin_object, Destroy(static_cast<NPSavedData**>(NULL)))
215 .WillOnce(Return(NPERR_NO_ERROR));
216
217 EXPECT_CALL(plugin_object, Release());
218
219 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
220 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
221
222 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.newp(
223 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
224 &npp_, 0, 0, NULL, NULL, NULL));
225
226 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.setwindow(&npp_, &window));
227
228 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.destroy(&npp_, NULL));
229
230 gpu_plugin::NP_Shutdown();
231 }
232
233 TEST_F(GPUPluginTest, HandleEventForwardsToPluginObject) {
234 StrictMock<MockPluginObject> plugin_object;
235
236 EXPECT_CALL(*plugin_object_factory_, CreatePluginObject(
237 &npp_, const_cast<NPMIMEType>(GPUPluginObject::kPluginType)))
238 .WillOnce(Return(&plugin_object));
239
240 EXPECT_CALL(plugin_object, New(
241 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
242 0, NULL, NULL, NULL))
243 .WillOnce(Return(NPERR_NO_ERROR));
244
245 NPEvent event = {0};
246
247 EXPECT_CALL(plugin_object, HandleEvent(&event))
248 .WillOnce(Return(7));
249
250 EXPECT_CALL(plugin_object, Destroy(static_cast<NPSavedData**>(NULL)))
251 .WillOnce(Return(NPERR_NO_ERROR));
252
253 EXPECT_CALL(plugin_object, Release());
254
255 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
256 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
257
258 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.newp(
259 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
260 &npp_, 0, 0, NULL, NULL, NULL));
261
262 EXPECT_EQ(7, plugin_funcs_.event(&npp_, &event));
263
264 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.destroy(&npp_, NULL));
265
266 gpu_plugin::NP_Shutdown();
267 }
268
269 TEST_F(GPUPluginTest, GetValueReturnsErrorForUnknownVariable) {
270 StrictMock<MockPluginObject> plugin_object;
271
272 EXPECT_CALL(*plugin_object_factory_, CreatePluginObject(
273 &npp_, const_cast<NPMIMEType>(GPUPluginObject::kPluginType)))
274 .WillOnce(Return(&plugin_object));
275
276 EXPECT_CALL(plugin_object, New(
277 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
278 0, NULL, NULL, NULL))
279 .WillOnce(Return(NPERR_NO_ERROR));
280
281 EXPECT_CALL(plugin_object, Destroy(static_cast<NPSavedData**>(NULL)))
282 .WillOnce(Return(NPERR_NO_ERROR));
283
284 EXPECT_CALL(plugin_object, Release());
285
286 gpu_plugin::NP_GetEntryPoints(&plugin_funcs_);
287 gpu_plugin::NP_Initialize(&browser_funcs_ INITIALIZE_PLUGIN_FUNCS);
288
289 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.newp(
290 const_cast<NPMIMEType>(GPUPluginObject::kPluginType),
291 &npp_, 0, 0, NULL, NULL, NULL));
292
293 int* result = NULL;
294 EXPECT_EQ(NPERR_GENERIC_ERROR, plugin_funcs_.getvalue(
295 &npp_, NPPVjavaClass, &result));
296
297 EXPECT_EQ(NPERR_NO_ERROR, plugin_funcs_.destroy(&npp_, NULL));
298
299 gpu_plugin::NP_Shutdown();
300 }
301
302 } // namespace gpu_plugin
OLDNEW
« no previous file with comments | « gpu/gpu_plugin/gpu_plugin_object_win.cc ('k') | ipc/ipc_message_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698