OLD | NEW |
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 <string.h> | 5 #include <string.h> |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/memory/weak_ptr.h" | 8 #include "base/memory/weak_ptr.h" |
9 #include "content/browser/gamepad/gamepad_test_helpers.h" | 9 #include "content/browser/gamepad/gamepad_test_helpers.h" |
10 #include "content/browser/renderer_host/pepper/browser_ppapi_host_test.h" | 10 #include "content/browser/renderer_host/pepper/browser_ppapi_host_test.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 class PepperGamepadHostTest | 25 class PepperGamepadHostTest |
26 : public testing::Test, | 26 : public testing::Test, |
27 public BrowserPpapiHostTest { | 27 public BrowserPpapiHostTest { |
28 public: | 28 public: |
29 PepperGamepadHostTest() { | 29 PepperGamepadHostTest() { |
30 } | 30 } |
31 virtual ~PepperGamepadHostTest() { | 31 virtual ~PepperGamepadHostTest() { |
32 } | 32 } |
33 | 33 |
34 void ConstructService(const WebKit::WebGamepads& test_data) { | 34 void ConstructService(const blink::WebGamepads& test_data) { |
35 service_.reset(new GamepadServiceTestConstructor(test_data)); | 35 service_.reset(new GamepadServiceTestConstructor(test_data)); |
36 } | 36 } |
37 | 37 |
38 GamepadService* gamepad_service() { return service_->gamepad_service(); } | 38 GamepadService* gamepad_service() { return service_->gamepad_service(); } |
39 | 39 |
40 protected: | 40 protected: |
41 scoped_ptr<GamepadServiceTestConstructor> service_; | 41 scoped_ptr<GamepadServiceTestConstructor> service_; |
42 | 42 |
43 DISALLOW_COPY_AND_ASSIGN(PepperGamepadHostTest); | 43 DISALLOW_COPY_AND_ASSIGN(PepperGamepadHostTest); |
44 }; | 44 }; |
(...skipping 16 matching lines...) Expand all Loading... |
61 GamepadHardwareBuffer content_buf; | 61 GamepadHardwareBuffer content_buf; |
62 EXPECT_EQ(AddressDiff(&content_buf.sequence, &content_buf), | 62 EXPECT_EQ(AddressDiff(&content_buf.sequence, &content_buf), |
63 AddressDiff(&ppapi_buf.sequence, &ppapi_buf)); | 63 AddressDiff(&ppapi_buf.sequence, &ppapi_buf)); |
64 EXPECT_EQ(AddressDiff(&content_buf.buffer, &content_buf), | 64 EXPECT_EQ(AddressDiff(&content_buf.buffer, &content_buf), |
65 AddressDiff(&ppapi_buf.buffer, &ppapi_buf)); | 65 AddressDiff(&ppapi_buf.buffer, &ppapi_buf)); |
66 } | 66 } |
67 | 67 |
68 TEST_F(PepperGamepadHostTest, ValidateGamepadsMatch) { | 68 TEST_F(PepperGamepadHostTest, ValidateGamepadsMatch) { |
69 // Gamepads. | 69 // Gamepads. |
70 COMPILE_ASSERT(sizeof(ppapi::WebKitGamepads) == | 70 COMPILE_ASSERT(sizeof(ppapi::WebKitGamepads) == |
71 sizeof(WebKit::WebGamepads), | 71 sizeof(blink::WebGamepads), |
72 gamepads_data_must_match); | 72 gamepads_data_must_match); |
73 ppapi::WebKitGamepads ppapi_gamepads; | 73 ppapi::WebKitGamepads ppapi_gamepads; |
74 WebKit::WebGamepads web_gamepads; | 74 blink::WebGamepads web_gamepads; |
75 EXPECT_EQ(AddressDiff(&web_gamepads.length, &web_gamepads), | 75 EXPECT_EQ(AddressDiff(&web_gamepads.length, &web_gamepads), |
76 AddressDiff(&ppapi_gamepads.length, &ppapi_gamepads)); | 76 AddressDiff(&ppapi_gamepads.length, &ppapi_gamepads)); |
77 | 77 |
78 // See comment below on storage & the EXPECT macro. | 78 // See comment below on storage & the EXPECT macro. |
79 size_t webkit_items_length_cap = WebKit::WebGamepads::itemsLengthCap; | 79 size_t webkit_items_length_cap = blink::WebGamepads::itemsLengthCap; |
80 size_t ppapi_items_length_cap = ppapi::WebKitGamepads::kItemsLengthCap; | 80 size_t ppapi_items_length_cap = ppapi::WebKitGamepads::kItemsLengthCap; |
81 EXPECT_EQ(webkit_items_length_cap, ppapi_items_length_cap); | 81 EXPECT_EQ(webkit_items_length_cap, ppapi_items_length_cap); |
82 | 82 |
83 for (size_t i = 0; i < web_gamepads.itemsLengthCap; i++) { | 83 for (size_t i = 0; i < web_gamepads.itemsLengthCap; i++) { |
84 EXPECT_EQ(AddressDiff(&web_gamepads.items[0], &web_gamepads), | 84 EXPECT_EQ(AddressDiff(&web_gamepads.items[0], &web_gamepads), |
85 AddressDiff(&ppapi_gamepads.items[0], &ppapi_gamepads)); | 85 AddressDiff(&ppapi_gamepads.items[0], &ppapi_gamepads)); |
86 } | 86 } |
87 } | 87 } |
88 | 88 |
89 TEST_F(PepperGamepadHostTest, ValidateGamepadMatch) { | 89 TEST_F(PepperGamepadHostTest, ValidateGamepadMatch) { |
90 // Gamepad. | 90 // Gamepad. |
91 COMPILE_ASSERT(sizeof(ppapi::WebKitGamepad) == | 91 COMPILE_ASSERT(sizeof(ppapi::WebKitGamepad) == |
92 sizeof(WebKit::WebGamepad), | 92 sizeof(blink::WebGamepad), |
93 gamepad_data_must_match); | 93 gamepad_data_must_match); |
94 ppapi::WebKitGamepad ppapi_gamepad; | 94 ppapi::WebKitGamepad ppapi_gamepad; |
95 WebKit::WebGamepad web_gamepad; | 95 blink::WebGamepad web_gamepad; |
96 | 96 |
97 // Using EXPECT seems to force storage for the parameter, which the constants | 97 // Using EXPECT seems to force storage for the parameter, which the constants |
98 // in the WebKit/PPAPI headers don't have. So we have to use temporaries | 98 // in the WebKit/PPAPI headers don't have. So we have to use temporaries |
99 // before comparing them. | 99 // before comparing them. |
100 size_t webkit_id_length_cap = WebKit::WebGamepad::idLengthCap; | 100 size_t webkit_id_length_cap = blink::WebGamepad::idLengthCap; |
101 size_t ppapi_id_length_cap = ppapi::WebKitGamepad::kIdLengthCap; | 101 size_t ppapi_id_length_cap = ppapi::WebKitGamepad::kIdLengthCap; |
102 EXPECT_EQ(webkit_id_length_cap, ppapi_id_length_cap); | 102 EXPECT_EQ(webkit_id_length_cap, ppapi_id_length_cap); |
103 | 103 |
104 size_t webkit_axes_length_cap = WebKit::WebGamepad::axesLengthCap; | 104 size_t webkit_axes_length_cap = blink::WebGamepad::axesLengthCap; |
105 size_t ppapi_axes_length_cap = ppapi::WebKitGamepad::kAxesLengthCap; | 105 size_t ppapi_axes_length_cap = ppapi::WebKitGamepad::kAxesLengthCap; |
106 EXPECT_EQ(webkit_axes_length_cap, ppapi_axes_length_cap); | 106 EXPECT_EQ(webkit_axes_length_cap, ppapi_axes_length_cap); |
107 | 107 |
108 size_t webkit_buttons_length_cap = WebKit::WebGamepad::buttonsLengthCap; | 108 size_t webkit_buttons_length_cap = blink::WebGamepad::buttonsLengthCap; |
109 size_t ppapi_buttons_length_cap = ppapi::WebKitGamepad::kButtonsLengthCap; | 109 size_t ppapi_buttons_length_cap = ppapi::WebKitGamepad::kButtonsLengthCap; |
110 EXPECT_EQ(webkit_buttons_length_cap, ppapi_buttons_length_cap); | 110 EXPECT_EQ(webkit_buttons_length_cap, ppapi_buttons_length_cap); |
111 | 111 |
112 EXPECT_EQ(AddressDiff(&web_gamepad.connected, &web_gamepad), | 112 EXPECT_EQ(AddressDiff(&web_gamepad.connected, &web_gamepad), |
113 AddressDiff(&ppapi_gamepad.connected, &ppapi_gamepad)); | 113 AddressDiff(&ppapi_gamepad.connected, &ppapi_gamepad)); |
114 EXPECT_EQ(AddressDiff(&web_gamepad.id, &web_gamepad), | 114 EXPECT_EQ(AddressDiff(&web_gamepad.id, &web_gamepad), |
115 AddressDiff(&ppapi_gamepad.id, &ppapi_gamepad)); | 115 AddressDiff(&ppapi_gamepad.id, &ppapi_gamepad)); |
116 EXPECT_EQ(AddressDiff(&web_gamepad.timestamp, &web_gamepad), | 116 EXPECT_EQ(AddressDiff(&web_gamepad.timestamp, &web_gamepad), |
117 AddressDiff(&ppapi_gamepad.timestamp, &ppapi_gamepad)); | 117 AddressDiff(&ppapi_gamepad.timestamp, &ppapi_gamepad)); |
118 EXPECT_EQ(AddressDiff(&web_gamepad.axesLength, &web_gamepad), | 118 EXPECT_EQ(AddressDiff(&web_gamepad.axesLength, &web_gamepad), |
119 AddressDiff(&ppapi_gamepad.axes_length, &ppapi_gamepad)); | 119 AddressDiff(&ppapi_gamepad.axes_length, &ppapi_gamepad)); |
120 EXPECT_EQ(AddressDiff(&web_gamepad.axes, &web_gamepad), | 120 EXPECT_EQ(AddressDiff(&web_gamepad.axes, &web_gamepad), |
121 AddressDiff(&ppapi_gamepad.axes, &ppapi_gamepad)); | 121 AddressDiff(&ppapi_gamepad.axes, &ppapi_gamepad)); |
122 EXPECT_EQ(AddressDiff(&web_gamepad.buttonsLength, &web_gamepad), | 122 EXPECT_EQ(AddressDiff(&web_gamepad.buttonsLength, &web_gamepad), |
123 AddressDiff(&ppapi_gamepad.buttons_length, &ppapi_gamepad)); | 123 AddressDiff(&ppapi_gamepad.buttons_length, &ppapi_gamepad)); |
124 EXPECT_EQ(AddressDiff(&web_gamepad.buttons, &web_gamepad), | 124 EXPECT_EQ(AddressDiff(&web_gamepad.buttons, &web_gamepad), |
125 AddressDiff(&ppapi_gamepad.buttons, &ppapi_gamepad)); | 125 AddressDiff(&ppapi_gamepad.buttons, &ppapi_gamepad)); |
126 } | 126 } |
127 | 127 |
128 TEST_F(PepperGamepadHostTest, WaitForReply) { | 128 TEST_F(PepperGamepadHostTest, WaitForReply) { |
129 WebKit::WebGamepads default_data; | 129 blink::WebGamepads default_data; |
130 memset(&default_data, 0, sizeof(WebKit::WebGamepads)); | 130 memset(&default_data, 0, sizeof(blink::WebGamepads)); |
131 default_data.length = 1; | 131 default_data.length = 1; |
132 default_data.items[0].connected = true; | 132 default_data.items[0].connected = true; |
133 default_data.items[0].buttonsLength = 1; | 133 default_data.items[0].buttonsLength = 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(gamepad_service(), GetBrowserPpapiHost(), | 138 PepperGamepadHost gamepad_host(gamepad_service(), GetBrowserPpapiHost(), |
139 pp_instance, pp_resource); | 139 pp_instance, pp_resource); |
140 | 140 |
(...skipping 15 matching lines...) Expand all Loading... |
156 service_->message_loop().RunUntilIdle(); | 156 service_->message_loop().RunUntilIdle(); |
157 EXPECT_EQ(0u, sink().message_count()); | 157 EXPECT_EQ(0u, sink().message_count()); |
158 | 158 |
159 // Set a button down and wait for it to be read twice. | 159 // Set a button down and wait for it to be read twice. |
160 // | 160 // |
161 // We wait for two reads before calling RunAllPending because the provider | 161 // We wait for two reads before calling RunAllPending because the provider |
162 // will read the data on the background thread (setting the event) and *then* | 162 // will read the data on the background thread (setting the event) and *then* |
163 // will issue the callback on our thread. Waiting for it to read twice | 163 // will issue the callback on our thread. Waiting for it to read twice |
164 // ensures that it was able to issue callbacks for the first read (if it | 164 // ensures that it was able to issue callbacks for the first read (if it |
165 // issued one) before we try to check for it. | 165 // issued one) before we try to check for it. |
166 WebKit::WebGamepads button_down_data = default_data; | 166 blink::WebGamepads button_down_data = default_data; |
167 button_down_data.items[0].buttons[0] = 1.f; | 167 button_down_data.items[0].buttons[0] = 1.f; |
168 fetcher->SetTestData(button_down_data); | 168 fetcher->SetTestData(button_down_data); |
169 fetcher->WaitForDataRead(); | 169 fetcher->WaitForDataRead(); |
170 fetcher->WaitForDataRead(); | 170 fetcher->WaitForDataRead(); |
171 | 171 |
172 // It should have sent a callback. | 172 // It should have sent a callback. |
173 service_->message_loop().RunUntilIdle(); | 173 service_->message_loop().RunUntilIdle(); |
174 ppapi::proxy::ResourceMessageReplyParams reply_params; | 174 ppapi::proxy::ResourceMessageReplyParams reply_params; |
175 IPC::Message reply_msg; | 175 IPC::Message reply_msg; |
176 ASSERT_TRUE(sink().GetFirstResourceReplyMatching( | 176 ASSERT_TRUE(sink().GetFirstResourceReplyMatching( |
(...skipping 18 matching lines...) Expand all Loading... |
195 } | 195 } |
196 | 196 |
197 // Duplicate requests should be denied. | 197 // Duplicate requests should be denied. |
198 EXPECT_EQ(PP_ERROR_FAILED, | 198 EXPECT_EQ(PP_ERROR_FAILED, |
199 gamepad_host.OnResourceMessageReceived( | 199 gamepad_host.OnResourceMessageReceived( |
200 PpapiHostMsg_Gamepad_RequestMemory(), | 200 PpapiHostMsg_Gamepad_RequestMemory(), |
201 &context)); | 201 &context)); |
202 } | 202 } |
203 | 203 |
204 } // namespace content | 204 } // namespace content |
OLD | NEW |