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

Side by Side Diff: ppapi/native_client/tests/ppapi_browser/ppb_fullscreen/ppapi_ppb_fullscreen.cc

Issue 8291002: PPAPI Fullscreen: move out of Dev. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 months 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // Tests PPB_Fullscreen_Dev. 5 // Tests PPB_Fullscreen.
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "native_client/src/shared/platform/nacl_check.h" 9 #include "native_client/src/shared/platform/nacl_check.h"
10 #include "native_client/tests/ppapi_test_lib/get_browser_interface.h" 10 #include "native_client/tests/ppapi_test_lib/get_browser_interface.h"
11 #include "native_client/tests/ppapi_test_lib/test_interface.h" 11 #include "native_client/tests/ppapi_test_lib/test_interface.h"
12 #include "native_client/tests/ppapi_test_lib/testable_callback.h" 12 #include "native_client/tests/ppapi_test_lib/testable_callback.h"
13 13
14 #include "ppapi/c/dev/ppb_fullscreen_dev.h"
15 #include "ppapi/c/ppb_core.h" 14 #include "ppapi/c/ppb_core.h"
15 #include "ppapi/c/ppb_fullscreen.h"
16 #include "ppapi/c/ppb_graphics_2d.h" 16 #include "ppapi/c/ppb_graphics_2d.h"
17 #include "ppapi/c/ppb_input_event.h" 17 #include "ppapi/c/ppb_input_event.h"
18 #include "ppapi/c/ppb_instance.h" 18 #include "ppapi/c/ppb_instance.h"
19 #include "ppapi/c/ppp_input_event.h" 19 #include "ppapi/c/ppp_input_event.h"
20 #include "ppapi/c/ppp_instance.h" 20 #include "ppapi/c/ppp_instance.h"
21 #include "ppapi/c/pp_errors.h" 21 #include "ppapi/c/pp_errors.h"
22 #include "ppapi/c/pp_rect.h" 22 #include "ppapi/c/pp_rect.h"
23 #include "ppapi/c/pp_size.h" 23 #include "ppapi/c/pp_size.h"
24 24
25 namespace { 25 namespace {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 PP_Bool not_always_opaque = PP_FALSE; 59 PP_Bool not_always_opaque = PP_FALSE;
60 *graphics2d = 60 *graphics2d =
61 PPBGraphics2D()->Create(pp_instance(), &size, not_always_opaque); 61 PPBGraphics2D()->Create(pp_instance(), &size, not_always_opaque);
62 return (*graphics2d != kInvalidResource); 62 return (*graphics2d != kInvalidResource);
63 } 63 }
64 64
65 //////////////////////////////////////////////////////////////////////////////// 65 ////////////////////////////////////////////////////////////////////////////////
66 // Test cases 66 // Test cases
67 //////////////////////////////////////////////////////////////////////////////// 67 ////////////////////////////////////////////////////////////////////////////////
68 68
69 // Test for the availability of PPB_FULLSCREEN_DEV_INTERFACE.
70 void TestGetInterface() {
71 printf("--- TestGetInterface\n");
72 EXPECT(PPBFullscreenDev() != NULL);
73 TEST_PASSED;
74 }
75
76 // Test 69 // Test
77 // PP_Bool (*IsFullscreen)(PP_Instance instance); 70 // PP_Bool (*IsFullscreen)(PP_Instance instance);
78 void TestIsFullscreenTrue() { 71 void TestIsFullscreenTrue() {
79 printf("--- TestIsFullscreenTrue\n"); 72 printf("--- TestIsFullscreenTrue\n");
80 EXPECT(PPBFullscreenDev()->IsFullscreen(pp_instance()) == PP_TRUE); 73 EXPECT(PPBFullscreen()->IsFullscreen(pp_instance()) == PP_TRUE);
81 TEST_PASSED; 74 TEST_PASSED;
82 } 75 }
83 76
84 void TestIsFullscreenFalse() { 77 void TestIsFullscreenFalse() {
85 printf("--- TestIsFullscreenFalse\n"); 78 printf("--- TestIsFullscreenFalse\n");
86 EXPECT(PPBFullscreenDev()->IsFullscreen(pp_instance()) == PP_FALSE); 79 EXPECT(PPBFullscreen()->IsFullscreen(pp_instance()) == PP_FALSE);
87 TEST_PASSED; 80 TEST_PASSED;
88 } 81 }
89 82
90 // Test 83 // Test
91 // PP_Bool (*SetFullscreen)(PP_Instance instance, PP_Bool fullscreen); 84 // PP_Bool (*SetFullscreen)(PP_Instance instance, PP_Bool fullscreen);
92 bool g_fullscreen_pending = false; 85 bool g_fullscreen_pending = false;
93 bool g_normal_pending = false; 86 bool g_normal_pending = false;
94 87
95 void TestSetFullscreenTrue() { 88 void TestSetFullscreenTrue() {
96 printf("--- TestSetFullscreenTrue\n"); 89 printf("--- TestSetFullscreenTrue\n");
97 const PPB_Fullscreen_Dev* ppb = PPBFullscreenDev(); 90 const PPB_Fullscreen* ppb = PPBFullscreen();
98 if (ppb->IsFullscreen(pp_instance()) == PP_FALSE) { 91 if (ppb->IsFullscreen(pp_instance()) == PP_FALSE) {
99 // Transition to fullscreen. 92 // Transition to fullscreen.
100 // This can only be done when processing a user gesture - 93 // This can only be done when processing a user gesture -
101 // see HandleInputEvent(). 94 // see HandleInputEvent().
102 EXPECT(ppb->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE); 95 EXPECT(ppb->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE);
103 EXPECT(PPBInputEvent()-> 96 EXPECT(PPBInputEvent()->
104 RequestInputEvents(pp_instance(), 97 RequestInputEvents(pp_instance(),
105 PP_INPUTEVENT_CLASS_MOUSE) == PP_OK); 98 PP_INPUTEVENT_CLASS_MOUSE) == PP_OK);
106 } else { 99 } else {
107 // No change. 100 // No change.
108 EXPECT(ppb->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE); 101 EXPECT(ppb->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE);
109 EXPECT(ppb->IsFullscreen(pp_instance()) == PP_TRUE); 102 EXPECT(ppb->IsFullscreen(pp_instance()) == PP_TRUE);
110 TEST_PASSED; 103 TEST_PASSED;
111 } 104 }
112 } 105 }
113 106
114 void TestSetFullscreenFalse() { 107 void TestSetFullscreenFalse() {
115 printf("--- TestSetFullscreenFalse\n"); 108 printf("--- TestSetFullscreenFalse\n");
116 const PPB_Fullscreen_Dev* ppb = PPBFullscreenDev(); 109 const PPB_Fullscreen* ppb = PPBFullscreen();
117 if (ppb->IsFullscreen(pp_instance()) == PP_TRUE) { 110 if (ppb->IsFullscreen(pp_instance()) == PP_TRUE) {
118 // Transition out of fullscreen. 111 // Transition out of fullscreen.
119 EXPECT(CreateGraphics2D(&g_graphics2d)); 112 EXPECT(CreateGraphics2D(&g_graphics2d));
120 // The transition is asynchronous and ends at the next DidChangeView(). 113 // The transition is asynchronous and ends at the next DidChangeView().
121 EXPECT(ppb->SetFullscreen(pp_instance(), PP_FALSE) == PP_TRUE); 114 EXPECT(ppb->SetFullscreen(pp_instance(), PP_FALSE) == PP_TRUE);
122 g_normal_pending = true; 115 g_normal_pending = true;
123 // Transition is pending, so additional requests fail. 116 // Transition is pending, so additional requests fail.
124 EXPECT(ppb->SetFullscreen(pp_instance(), PP_FALSE) == PP_FALSE); 117 EXPECT(ppb->SetFullscreen(pp_instance(), PP_FALSE) == PP_FALSE);
125 EXPECT(ppb->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE); 118 EXPECT(ppb->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE);
126 EXPECT(ppb->IsFullscreen(pp_instance()) == PP_TRUE); 119 EXPECT(ppb->IsFullscreen(pp_instance()) == PP_TRUE);
127 // No 2D or 3D device can be bound during transition. 120 // No 2D or 3D device can be bound during transition.
128 EXPECT(PPBGraphics2D()->IsGraphics2D(g_graphics2d) == PP_TRUE); 121 EXPECT(PPBGraphics2D()->IsGraphics2D(g_graphics2d) == PP_TRUE);
129 EXPECT(PPBInstance()->BindGraphics(pp_instance(), g_graphics2d) == 122 EXPECT(PPBInstance()->BindGraphics(pp_instance(), g_graphics2d) ==
130 PP_FALSE); 123 PP_FALSE);
131 // The transition ends at the next DidChangeView(). 124 // The transition ends at the next DidChangeView().
132 } else { 125 } else {
133 // No change. 126 // No change.
134 EXPECT(ppb->SetFullscreen(pp_instance(), PP_FALSE) == PP_FALSE); 127 EXPECT(ppb->SetFullscreen(pp_instance(), PP_FALSE) == PP_FALSE);
135 EXPECT(ppb->IsFullscreen(pp_instance()) == PP_FALSE); 128 EXPECT(ppb->IsFullscreen(pp_instance()) == PP_FALSE);
136 TEST_PASSED; 129 TEST_PASSED;
137 } 130 }
138 } 131 }
139 132
140 // Test 133 // Test
141 // PP_Bool (*GetScreenSize)(PP_Instance instance, struct PP_Size* size); 134 // PP_Bool (*GetScreenSize)(PP_Instance instance, struct PP_Size* size);
142 135
143 void TestGetScreenSizeHelper(PP_Size min_size, PP_Size max_size) { 136 void TestGetScreenSizeHelper(PP_Size min_size, PP_Size max_size) {
144 PP_Size size = PP_MakeSize(0, 0); 137 PP_Size size = PP_MakeSize(0, 0);
145 EXPECT(PPBFullscreenDev()->GetScreenSize(pp_instance(), &size) == PP_TRUE); 138 EXPECT(PPBFullscreen()->GetScreenSize(pp_instance(), &size) == PP_TRUE);
146 EXPECT(IsSizeInRange(size, min_size, max_size)); 139 EXPECT(IsSizeInRange(size, min_size, max_size));
147 } 140 }
148 141
149 void TestGetScreenSize() { 142 void TestGetScreenSize() {
150 printf("--- TestGetScreenSize\n"); 143 printf("--- TestGetScreenSize\n");
151 TestGetScreenSizeHelper(kSize320x200, kSize2560x2048); 144 TestGetScreenSizeHelper(kSize320x200, kSize2560x2048);
152 TEST_PASSED; 145 TEST_PASSED;
153 } 146 }
154 147
155 void TestGetScreenSize2560x1600() { 148 void TestGetScreenSize2560x1600() {
(...skipping 16 matching lines...) Expand all
172 // gesture (e.g. mouse click). 165 // gesture (e.g. mouse click).
173 PP_Bool HandleInputEvent(PP_Instance instance, PP_Resource event) { 166 PP_Bool HandleInputEvent(PP_Instance instance, PP_Resource event) {
174 PP_InputEvent_Type event_type = PPBInputEvent()->GetType(event); 167 PP_InputEvent_Type event_type = PPBInputEvent()->GetType(event);
175 if (event_type != PP_INPUTEVENT_TYPE_MOUSEDOWN && 168 if (event_type != PP_INPUTEVENT_TYPE_MOUSEDOWN &&
176 event_type != PP_INPUTEVENT_TYPE_MOUSEUP) 169 event_type != PP_INPUTEVENT_TYPE_MOUSEUP)
177 return PP_FALSE; // Not a mouse click. 170 return PP_FALSE; // Not a mouse click.
178 printf("--- PPP_InputEvent::HandleInputEvent\n"); 171 printf("--- PPP_InputEvent::HandleInputEvent\n");
179 // We got the user gesture we needed, no need to handle events anymore. 172 // We got the user gesture we needed, no need to handle events anymore.
180 PPBInputEvent()->ClearInputEventRequest(pp_instance(), 173 PPBInputEvent()->ClearInputEventRequest(pp_instance(),
181 PP_INPUTEVENT_CLASS_MOUSE); 174 PP_INPUTEVENT_CLASS_MOUSE);
182 EXPECT(PPBFullscreenDev()->IsFullscreen(pp_instance()) == PP_FALSE); 175 EXPECT(PPBFullscreen()->IsFullscreen(pp_instance()) == PP_FALSE);
183 EXPECT(CreateGraphics2D(&g_graphics2d)); 176 EXPECT(CreateGraphics2D(&g_graphics2d));
184 EXPECT(PPBFullscreenDev()->SetFullscreen(pp_instance(), PP_TRUE) == PP_TRUE); 177 EXPECT(PPBFullscreen()->SetFullscreen(pp_instance(), PP_TRUE) == PP_TRUE);
185 g_fullscreen_pending = true; 178 g_fullscreen_pending = true;
186 // Transition is pending, so additional requests fail. 179 // Transition is pending, so additional requests fail.
187 EXPECT(PPBFullscreenDev()->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE); 180 EXPECT(PPBFullscreen()->SetFullscreen(pp_instance(), PP_TRUE) == PP_FALSE);
188 EXPECT(PPBFullscreenDev()->SetFullscreen(pp_instance(), PP_FALSE) == 181 EXPECT(PPBFullscreen()->SetFullscreen(pp_instance(), PP_FALSE) ==
189 PP_FALSE); 182 PP_FALSE);
190 EXPECT(PPBFullscreenDev()->IsFullscreen(pp_instance()) == PP_FALSE); 183 EXPECT(PPBFullscreen()->IsFullscreen(pp_instance()) == PP_FALSE);
191 // No 2D or 3D device can be bound during transition. 184 // No 2D or 3D device can be bound during transition.
192 EXPECT(PPBGraphics2D()->IsGraphics2D(g_graphics2d) == PP_TRUE); 185 EXPECT(PPBGraphics2D()->IsGraphics2D(g_graphics2d) == PP_TRUE);
193 EXPECT(PPBInstance()->BindGraphics(pp_instance(), g_graphics2d) == 186 EXPECT(PPBInstance()->BindGraphics(pp_instance(), g_graphics2d) ==
194 PP_FALSE); 187 PP_FALSE);
195 // The transition ends at the next DidChangeView(). 188 // The transition ends at the next DidChangeView().
196 return PP_FALSE; 189 return PP_FALSE;
197 } 190 }
198 191
199 const PPP_InputEvent ppp_input_event_interface = { 192 const PPP_InputEvent ppp_input_event_interface = {
200 &HandleInputEvent 193 &HandleInputEvent
201 }; 194 };
202 195
203 //////////////////////////////////////////////////////////////////////////////// 196 ////////////////////////////////////////////////////////////////////////////////
204 // PPP_Instance 197 // PPP_Instance
205 //////////////////////////////////////////////////////////////////////////////// 198 ////////////////////////////////////////////////////////////////////////////////
206 199
207 PP_Size GetScreenSize() { 200 PP_Size GetScreenSize() {
208 PP_Size screen_size = PP_MakeSize(0, 0); 201 PP_Size screen_size = PP_MakeSize(0, 0);
209 CHECK(PPBFullscreenDev()->GetScreenSize(pp_instance(), &screen_size)); 202 CHECK(PPBFullscreen()->GetScreenSize(pp_instance(), &screen_size));
210 return screen_size; 203 return screen_size;
211 } 204 }
212 205
213 bool HasMidScreen(const PP_Rect* position) { 206 bool HasMidScreen(const PP_Rect* position) {
214 static PP_Size screen_size = GetScreenSize(); 207 static PP_Size screen_size = GetScreenSize();
215 static int32_t mid_x = screen_size.width / 2; 208 static int32_t mid_x = screen_size.width / 2;
216 static int32_t mid_y = screen_size.height / 2; 209 static int32_t mid_y = screen_size.height / 2;
217 PP_Point origin = position->point; 210 PP_Point origin = position->point;
218 PP_Size size = position->size; 211 PP_Size size = position->size;
219 return (origin.x < mid_x && mid_x < origin.x + size.width && 212 return (origin.x < mid_x && mid_x < origin.x + size.width &&
(...skipping 18 matching lines...) Expand all
238 // Remember the original position on the first DidChangeView. 231 // Remember the original position on the first DidChangeView.
239 if (g_normal_position.size.width == 0 && g_normal_position.size.height == 0) { 232 if (g_normal_position.size.width == 0 && g_normal_position.size.height == 0) {
240 g_normal_position = PP_MakeRectFromXYWH(position->point.x, 233 g_normal_position = PP_MakeRectFromXYWH(position->point.x,
241 position->point.y, 234 position->point.y,
242 position->size.width, 235 position->size.width,
243 position->size.height); 236 position->size.height);
244 } 237 }
245 238
246 const char* test = NULL; 239 const char* test = NULL;
247 PP_Size screen_size = GetScreenSize(); 240 PP_Size screen_size = GetScreenSize();
248 if (g_fullscreen_pending && PPBFullscreenDev()->IsFullscreen(pp_instance())) { 241 if (g_fullscreen_pending && PPBFullscreen()->IsFullscreen(pp_instance())) {
249 test = "TestSetFullscreenTrue"; 242 test = "TestSetFullscreenTrue";
250 g_fullscreen_pending = false; 243 g_fullscreen_pending = false;
251 EXPECT(IsSizeEqual(position->size, screen_size)); 244 EXPECT(IsSizeEqual(position->size, screen_size));
252 // NOTE: we cannot reliably test for clip size being equal to the screen 245 // NOTE: we cannot reliably test for clip size being equal to the screen
253 // because it might be affected by JS console, info bars, etc. 246 // because it might be affected by JS console, info bars, etc.
254 } else if (g_normal_pending && 247 } else if (g_normal_pending &&
255 !PPBFullscreenDev()->IsFullscreen(pp_instance())) { 248 !PPBFullscreen()->IsFullscreen(pp_instance())) {
256 test = "TestSetFullscreenFalse"; 249 test = "TestSetFullscreenFalse";
257 g_normal_pending = false; 250 g_normal_pending = false;
258 EXPECT(IsRectEqual(*position, g_normal_position)); 251 EXPECT(IsRectEqual(*position, g_normal_position));
259 } 252 }
260 if (test != NULL) { 253 if (test != NULL) {
261 // We should now be able to bind 2D and 3D devices. 254 // We should now be able to bind 2D and 3D devices.
262 EXPECT(PPBGraphics2D()->IsGraphics2D(g_graphics2d) == PP_TRUE); 255 EXPECT(PPBGraphics2D()->IsGraphics2D(g_graphics2d) == PP_TRUE);
263 EXPECT(PPBInstance()->BindGraphics(pp_instance(), g_graphics2d) == PP_TRUE); 256 EXPECT(PPBInstance()->BindGraphics(pp_instance(), g_graphics2d) == PP_TRUE);
264 PPBCore()->ReleaseResource(g_graphics2d); 257 PPBCore()->ReleaseResource(g_graphics2d);
265 PostTestMessage(test, "PASSED"); 258 PostTestMessage(test, "PASSED");
266 } 259 }
267 } 260 }
268 261
269 const PPP_Instance ppp_instance_interface = { 262 const PPP_Instance ppp_instance_interface = {
270 DidCreateDefault, 263 DidCreateDefault,
271 DidDestroyDefault, 264 DidDestroyDefault,
272 DidChangeView, 265 DidChangeView,
273 DidChangeFocusDefault, 266 DidChangeFocusDefault,
274 HandleDocumentLoadDefault 267 HandleDocumentLoadDefault
275 }; 268 };
276 269
277 } // namespace 270 } // namespace
278 271
279 void SetupTests() { 272 void SetupTests() {
280 RegisterTest("TestGetInterface", TestGetInterface);
281 RegisterTest("TestIsFullscreenTrue", TestIsFullscreenTrue); 273 RegisterTest("TestIsFullscreenTrue", TestIsFullscreenTrue);
282 RegisterTest("TestIsFullscreenFalse", TestIsFullscreenFalse); 274 RegisterTest("TestIsFullscreenFalse", TestIsFullscreenFalse);
283 RegisterTest("TestSetFullscreenTrue", TestSetFullscreenTrue); 275 RegisterTest("TestSetFullscreenTrue", TestSetFullscreenTrue);
284 RegisterTest("TestSetFullscreenFalse", TestSetFullscreenFalse); 276 RegisterTest("TestSetFullscreenFalse", TestSetFullscreenFalse);
285 RegisterTest("TestGetScreenSize", TestGetScreenSize); 277 RegisterTest("TestGetScreenSize", TestGetScreenSize);
286 RegisterTest("TestGetScreenSize2560x1600", TestGetScreenSize2560x1600); 278 RegisterTest("TestGetScreenSize2560x1600", TestGetScreenSize2560x1600);
287 RegisterTest("TestGetScreenSize1920x1200", TestGetScreenSize1920x1200); 279 RegisterTest("TestGetScreenSize1920x1200", TestGetScreenSize1920x1200);
288 } 280 }
289 281
290 void SetupPluginInterfaces() { 282 void SetupPluginInterfaces() {
291 RegisterPluginInterface(PPP_INSTANCE_INTERFACE, &ppp_instance_interface); 283 RegisterPluginInterface(PPP_INSTANCE_INTERFACE, &ppp_instance_interface);
292 RegisterPluginInterface(PPP_INPUT_EVENT_INTERFACE, 284 RegisterPluginInterface(PPP_INPUT_EVENT_INTERFACE,
293 &ppp_input_event_interface); 285 &ppp_input_event_interface);
294 } 286 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698