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

Side by Side Diff: content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc

Issue 2808093006: [Device Service] Move Gamepad Blink headers to be part of the Gamepad client library (Closed)
Patch Set: rebase and address comments Created 3 years, 8 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
« no previous file with comments | « content/browser/renderer_host/pepper/pepper_gamepad_host.h ('k') | content/common/DEPS » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/renderer_host/pepper/pepper_gamepad_host.h" 5 #include "content/browser/renderer_host/pepper/pepper_gamepad_host.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <string.h> 8 #include <string.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 16 matching lines...) Expand all
27 namespace content { 27 namespace content {
28 28
29 namespace { 29 namespace {
30 30
31 class PepperGamepadHostTest : public testing::Test, 31 class PepperGamepadHostTest : public testing::Test,
32 public BrowserPpapiHostTest { 32 public BrowserPpapiHostTest {
33 public: 33 public:
34 PepperGamepadHostTest() {} 34 PepperGamepadHostTest() {}
35 ~PepperGamepadHostTest() override {} 35 ~PepperGamepadHostTest() override {}
36 36
37 void ConstructService(const blink::WebGamepads& test_data) { 37 void ConstructService(const device::Gamepads& test_data) {
38 service_.reset(new device::GamepadServiceTestConstructor(test_data)); 38 service_.reset(new device::GamepadServiceTestConstructor(test_data));
39 } 39 }
40 40
41 device::GamepadService* gamepad_service() { 41 device::GamepadService* gamepad_service() {
42 return service_->gamepad_service(); 42 return service_->gamepad_service();
43 } 43 }
44 44
45 protected: 45 protected:
46 std::unique_ptr<device::GamepadServiceTestConstructor> service_; 46 std::unique_ptr<device::GamepadServiceTestConstructor> service_;
47 47
(...skipping 17 matching lines...) Expand all
65 ppapi::ContentGamepadHardwareBuffer ppapi_buf; 65 ppapi::ContentGamepadHardwareBuffer ppapi_buf;
66 device::GamepadHardwareBuffer content_buf; 66 device::GamepadHardwareBuffer content_buf;
67 EXPECT_EQ(AddressDiff(&content_buf.seqlock, &content_buf), 67 EXPECT_EQ(AddressDiff(&content_buf.seqlock, &content_buf),
68 AddressDiff(&ppapi_buf.sequence, &ppapi_buf)); 68 AddressDiff(&ppapi_buf.sequence, &ppapi_buf));
69 EXPECT_EQ(AddressDiff(&content_buf.data, &content_buf), 69 EXPECT_EQ(AddressDiff(&content_buf.data, &content_buf),
70 AddressDiff(&ppapi_buf.buffer, &ppapi_buf)); 70 AddressDiff(&ppapi_buf.buffer, &ppapi_buf));
71 } 71 }
72 72
73 TEST_F(PepperGamepadHostTest, ValidateGamepadsMatch) { 73 TEST_F(PepperGamepadHostTest, ValidateGamepadsMatch) {
74 // Gamepads. 74 // Gamepads.
75 static_assert(sizeof(ppapi::WebKitGamepads) == sizeof(blink::WebGamepads), 75 static_assert(sizeof(ppapi::WebKitGamepads) == sizeof(device::Gamepads),
76 "gamepads data must match"); 76 "gamepads data must match");
77 ppapi::WebKitGamepads ppapi_gamepads; 77 ppapi::WebKitGamepads ppapi_gamepads;
78 blink::WebGamepads web_gamepads; 78 device::Gamepads web_gamepads;
79 79
80 // See comment below on storage & the EXPECT macro. 80 // See comment below on storage & the EXPECT macro.
81 size_t webkit_items_length_cap = blink::WebGamepads::kItemsLengthCap; 81 size_t webkit_items_length_cap = device::Gamepads::kItemsLengthCap;
82 size_t ppapi_items_length_cap = ppapi::WebKitGamepads::kItemsLengthCap; 82 size_t ppapi_items_length_cap = ppapi::WebKitGamepads::kItemsLengthCap;
83 EXPECT_EQ(webkit_items_length_cap, ppapi_items_length_cap); 83 EXPECT_EQ(webkit_items_length_cap, ppapi_items_length_cap);
84 84
85 for (size_t i = 0; i < webkit_items_length_cap; i++) { 85 for (size_t i = 0; i < webkit_items_length_cap; i++) {
86 EXPECT_EQ(AddressDiff(&web_gamepads.items[0], &web_gamepads), 86 EXPECT_EQ(AddressDiff(&web_gamepads.items[0], &web_gamepads),
87 AddressDiff(&ppapi_gamepads.items[0], &ppapi_gamepads)); 87 AddressDiff(&ppapi_gamepads.items[0], &ppapi_gamepads));
88 } 88 }
89 } 89 }
90 90
91 TEST_F(PepperGamepadHostTest, ValidateGamepadMatch) { 91 TEST_F(PepperGamepadHostTest, ValidateGamepadMatch) {
92 // Gamepad. 92 // Gamepad.
93 static_assert(sizeof(ppapi::WebKitGamepad) == sizeof(blink::WebGamepad), 93 static_assert(sizeof(ppapi::WebKitGamepad) == sizeof(device::Gamepad),
94 "gamepad data must match"); 94 "gamepad data must match");
95 ppapi::WebKitGamepad ppapi_gamepad; 95 ppapi::WebKitGamepad ppapi_gamepad;
96 blink::WebGamepad web_gamepad; 96 device::Gamepad web_gamepad;
97 97
98 // Using EXPECT seems to force storage for the parameter, which the constants 98 // Using EXPECT seems to force storage for the parameter, which the constants
99 // in the WebKit/PPAPI headers don't have. So we have to use temporaries 99 // in the WebKit/PPAPI headers don't have. So we have to use temporaries
100 // before comparing them. 100 // before comparing them.
101 size_t webkit_id_length_cap = blink::WebGamepad::kIdLengthCap; 101 size_t webkit_id_length_cap = device::Gamepad::kIdLengthCap;
102 size_t ppapi_id_length_cap = ppapi::WebKitGamepad::kIdLengthCap; 102 size_t ppapi_id_length_cap = ppapi::WebKitGamepad::kIdLengthCap;
103 EXPECT_EQ(webkit_id_length_cap, ppapi_id_length_cap); 103 EXPECT_EQ(webkit_id_length_cap, ppapi_id_length_cap);
104 104
105 size_t webkit_axes_length_cap = blink::WebGamepad::kAxesLengthCap; 105 size_t webkit_axes_length_cap = device::Gamepad::kAxesLengthCap;
106 size_t ppapi_axes_length_cap = ppapi::WebKitGamepad::kAxesLengthCap; 106 size_t ppapi_axes_length_cap = ppapi::WebKitGamepad::kAxesLengthCap;
107 EXPECT_EQ(webkit_axes_length_cap, ppapi_axes_length_cap); 107 EXPECT_EQ(webkit_axes_length_cap, ppapi_axes_length_cap);
108 108
109 size_t webkit_buttons_length_cap = blink::WebGamepad::kButtonsLengthCap; 109 size_t webkit_buttons_length_cap = device::Gamepad::kButtonsLengthCap;
110 size_t ppapi_buttons_length_cap = ppapi::WebKitGamepad::kButtonsLengthCap; 110 size_t ppapi_buttons_length_cap = ppapi::WebKitGamepad::kButtonsLengthCap;
111 EXPECT_EQ(webkit_buttons_length_cap, ppapi_buttons_length_cap); 111 EXPECT_EQ(webkit_buttons_length_cap, ppapi_buttons_length_cap);
112 112
113 EXPECT_EQ(AddressDiff(&web_gamepad.connected, &web_gamepad), 113 EXPECT_EQ(AddressDiff(&web_gamepad.connected, &web_gamepad),
114 AddressDiff(&ppapi_gamepad.connected, &ppapi_gamepad)); 114 AddressDiff(&ppapi_gamepad.connected, &ppapi_gamepad));
115 EXPECT_EQ(AddressDiff(&web_gamepad.id, &web_gamepad), 115 EXPECT_EQ(AddressDiff(&web_gamepad.id, &web_gamepad),
116 AddressDiff(&ppapi_gamepad.id, &ppapi_gamepad)); 116 AddressDiff(&ppapi_gamepad.id, &ppapi_gamepad));
117 EXPECT_EQ(AddressDiff(&web_gamepad.timestamp, &web_gamepad), 117 EXPECT_EQ(AddressDiff(&web_gamepad.timestamp, &web_gamepad),
118 AddressDiff(&ppapi_gamepad.timestamp, &ppapi_gamepad)); 118 AddressDiff(&ppapi_gamepad.timestamp, &ppapi_gamepad));
119 EXPECT_EQ(AddressDiff(&web_gamepad.axes_length, &web_gamepad), 119 EXPECT_EQ(AddressDiff(&web_gamepad.axes_length, &web_gamepad),
120 AddressDiff(&ppapi_gamepad.axes_length, &ppapi_gamepad)); 120 AddressDiff(&ppapi_gamepad.axes_length, &ppapi_gamepad));
121 EXPECT_EQ(AddressDiff(&web_gamepad.axes, &web_gamepad), 121 EXPECT_EQ(AddressDiff(&web_gamepad.axes, &web_gamepad),
122 AddressDiff(&ppapi_gamepad.axes, &ppapi_gamepad)); 122 AddressDiff(&ppapi_gamepad.axes, &ppapi_gamepad));
123 EXPECT_EQ(AddressDiff(&web_gamepad.buttons_length, &web_gamepad), 123 EXPECT_EQ(AddressDiff(&web_gamepad.buttons_length, &web_gamepad),
124 AddressDiff(&ppapi_gamepad.buttons_length, &ppapi_gamepad)); 124 AddressDiff(&ppapi_gamepad.buttons_length, &ppapi_gamepad));
125 EXPECT_EQ(AddressDiff(&web_gamepad.buttons, &web_gamepad), 125 EXPECT_EQ(AddressDiff(&web_gamepad.buttons, &web_gamepad),
126 AddressDiff(&ppapi_gamepad.buttons, &ppapi_gamepad)); 126 AddressDiff(&ppapi_gamepad.buttons, &ppapi_gamepad));
127 } 127 }
128 128
129 TEST_F(PepperGamepadHostTest, WaitForReply) { 129 TEST_F(PepperGamepadHostTest, WaitForReply) {
130 blink::WebGamepads default_data; 130 device::Gamepads default_data;
131 memset(&default_data, 0, sizeof(blink::WebGamepads)); 131 memset(&default_data, 0, sizeof(device::Gamepads));
132 default_data.items[0].connected = true; 132 default_data.items[0].connected = true;
133 default_data.items[0].buttons_length = 1; 133 default_data.items[0].buttons_length = 1;
134 ConstructService(default_data); 134 ConstructService(default_data);
135 135
136 PP_Instance pp_instance = 12345; 136 PP_Instance pp_instance = 12345;
137 PP_Resource pp_resource = 67890; 137 PP_Resource pp_resource = 67890;
138 PepperGamepadHost gamepad_host( 138 PepperGamepadHost gamepad_host(
139 gamepad_service(), GetBrowserPpapiHost(), pp_instance, pp_resource); 139 gamepad_service(), GetBrowserPpapiHost(), pp_instance, pp_resource);
140 140
141 // Synthesize a request for gamepad data. 141 // Synthesize a request for gamepad data.
142 ppapi::host::HostMessageContext context( 142 ppapi::host::HostMessageContext context(
143 ppapi::proxy::ResourceMessageCallParams(pp_resource, 1)); 143 ppapi::proxy::ResourceMessageCallParams(pp_resource, 1));
144 EXPECT_EQ(PP_OK_COMPLETIONPENDING, 144 EXPECT_EQ(PP_OK_COMPLETIONPENDING,
145 gamepad_host.OnResourceMessageReceived( 145 gamepad_host.OnResourceMessageReceived(
146 PpapiHostMsg_Gamepad_RequestMemory(), &context)); 146 PpapiHostMsg_Gamepad_RequestMemory(), &context));
147 147
148 device::MockGamepadDataFetcher* fetcher = service_->data_fetcher(); 148 device::MockGamepadDataFetcher* fetcher = service_->data_fetcher();
149 fetcher->WaitForDataReadAndCallbacksIssued(); 149 fetcher->WaitForDataReadAndCallbacksIssued();
150 150
151 // It should not have sent the callback message. 151 // It should not have sent the callback message.
152 base::RunLoop().RunUntilIdle(); 152 base::RunLoop().RunUntilIdle();
153 EXPECT_EQ(0u, sink().message_count()); 153 EXPECT_EQ(0u, sink().message_count());
154 154
155 // Set a button down and wait for it to be read twice. 155 // Set a button down and wait for it to be read twice.
156 blink::WebGamepads button_down_data = default_data; 156 device::Gamepads button_down_data = default_data;
157 button_down_data.items[0].buttons[0].value = 1.f; 157 button_down_data.items[0].buttons[0].value = 1.f;
158 button_down_data.items[0].buttons[0].pressed = true; 158 button_down_data.items[0].buttons[0].pressed = true;
159 fetcher->SetTestData(button_down_data); 159 fetcher->SetTestData(button_down_data);
160 fetcher->WaitForDataReadAndCallbacksIssued(); 160 fetcher->WaitForDataReadAndCallbacksIssued();
161 161
162 // It should have sent a callback. 162 // It should have sent a callback.
163 base::RunLoop().RunUntilIdle(); 163 base::RunLoop().RunUntilIdle();
164 ppapi::proxy::ResourceMessageReplyParams reply_params; 164 ppapi::proxy::ResourceMessageReplyParams reply_params;
165 IPC::Message reply_msg; 165 IPC::Message reply_msg;
166 ASSERT_TRUE(sink().GetFirstResourceReplyMatching( 166 ASSERT_TRUE(sink().GetFirstResourceReplyMatching(
(...skipping 18 matching lines...) Expand all
185 buffer->buffer.items[0].buttons[i].pressed); 185 buffer->buffer.items[0].buttons[i].pressed);
186 } 186 }
187 187
188 // Duplicate requests should be denied. 188 // Duplicate requests should be denied.
189 EXPECT_EQ(PP_ERROR_FAILED, 189 EXPECT_EQ(PP_ERROR_FAILED,
190 gamepad_host.OnResourceMessageReceived( 190 gamepad_host.OnResourceMessageReceived(
191 PpapiHostMsg_Gamepad_RequestMemory(), &context)); 191 PpapiHostMsg_Gamepad_RequestMemory(), &context));
192 } 192 }
193 193
194 } // namespace content 194 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/pepper/pepper_gamepad_host.h ('k') | content/common/DEPS » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698