| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/macros.h" | 6 #include "base/macros.h" |
| 7 #include "base/synchronization/waitable_event.h" | 7 #include "base/synchronization/waitable_event.h" |
| 8 #include "base/threading/platform_thread.h" | 8 #include "base/threading/platform_thread.h" |
| 9 #include "build/build_config.h" | 9 #include "build/build_config.h" |
| 10 #include "content/browser/device_sensors/data_fetcher_shared_memory.h" | 10 #include "content/browser/device_sensors/data_fetcher_shared_memory.h" |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 if (!cmd_line->HasSwitch(switches::kEnableExperimentalWebPlatformFeatures)) | 219 if (!cmd_line->HasSwitch(switches::kEnableExperimentalWebPlatformFeatures)) |
| 220 cmd_line->AppendSwitch(switches::kEnableExperimentalWebPlatformFeatures); | 220 cmd_line->AppendSwitch(switches::kEnableExperimentalWebPlatformFeatures); |
| 221 } | 221 } |
| 222 | 222 |
| 223 FakeDataFetcher* fetcher_; | 223 FakeDataFetcher* fetcher_; |
| 224 | 224 |
| 225 private: | 225 private: |
| 226 base::WaitableEvent io_loop_finished_event_; | 226 base::WaitableEvent io_loop_finished_event_; |
| 227 }; | 227 }; |
| 228 | 228 |
| 229 // Flaky test. See http://crbug.com/628527. | 229 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, OrientationTest) { |
| 230 #if defined(ADDRESS_SANITIZER) && defined(OS_LINUX) | |
| 231 #define MAYBE_OrientationTest DISABLED_OrientationTest | |
| 232 #else | |
| 233 #define MAYBE_OrientationTest OrientationTest | |
| 234 #endif | |
| 235 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, | |
| 236 MAYBE_OrientationTest) { | |
| 237 // The test page will register an event handler for orientation events, | 230 // The test page will register an event handler for orientation events, |
| 238 // expects to get an event with fake values, then removes the event | 231 // expects to get an event with fake values, then removes the event |
| 239 // handler and navigates to #pass. | 232 // handler and navigates to #pass. |
| 240 GURL test_url = GetTestUrl("device_sensors", "device_orientation_test.html"); | 233 GURL test_url = GetTestUrl("device_sensors", "device_orientation_test.html"); |
| 241 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); | 234 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); |
| 242 | 235 |
| 243 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); | 236 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); |
| 244 fetcher_->started_orientation_.Wait(); | 237 fetcher_->started_orientation_.Wait(); |
| 245 fetcher_->stopped_orientation_.Wait(); | 238 fetcher_->stopped_orientation_.Wait(); |
| 246 } | 239 } |
| 247 | 240 |
| 248 // Flaky test. See http://crbug.com/628527. | 241 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, LightTest) { |
| 249 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, DISABLED_LightTest) { | |
| 250 // The test page will register an event handler for light events, | 242 // The test page will register an event handler for light events, |
| 251 // expects to get an event with fake values, then removes the event | 243 // expects to get an event with fake values, then removes the event |
| 252 // handler and navigates to #pass. | 244 // handler and navigates to #pass. |
| 253 EnableExperimentalFeatures(); | 245 EnableExperimentalFeatures(); |
| 254 GURL test_url = GetTestUrl("device_sensors", "device_light_test.html"); | 246 GURL test_url = GetTestUrl("device_sensors", "device_light_test.html"); |
| 255 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); | 247 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); |
| 256 | 248 |
| 257 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); | 249 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); |
| 258 fetcher_->started_light_.Wait(); | 250 fetcher_->started_light_.Wait(); |
| 259 fetcher_->stopped_light_.Wait(); | 251 fetcher_->stopped_light_.Wait(); |
| 260 } | 252 } |
| 261 | 253 |
| 262 // Flaky test. See http://crbug.com/628527. | 254 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, MotionTest) { |
| 263 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, DISABLED_MotionTest) { | |
| 264 // The test page will register an event handler for motion events, | 255 // The test page will register an event handler for motion events, |
| 265 // expects to get an event with fake values, then removes the event | 256 // expects to get an event with fake values, then removes the event |
| 266 // handler and navigates to #pass. | 257 // handler and navigates to #pass. |
| 267 GURL test_url = GetTestUrl("device_sensors", "device_motion_test.html"); | 258 GURL test_url = GetTestUrl("device_sensors", "device_motion_test.html"); |
| 268 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); | 259 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); |
| 269 | 260 |
| 270 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); | 261 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); |
| 271 fetcher_->started_motion_.Wait(); | 262 fetcher_->started_motion_.Wait(); |
| 272 fetcher_->stopped_motion_.Wait(); | 263 fetcher_->stopped_motion_.Wait(); |
| 273 } | 264 } |
| 274 | 265 |
| 275 // Flaky test. See http://crbug.com/628527. | 266 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, LightOneOffInfintyTest) { |
| 276 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, | |
| 277 DISABLED_LightOneOffInfintyTest) { | |
| 278 // The test page registers an event handler for light events and expects | 267 // The test page registers an event handler for light events and expects |
| 279 // to get an event with value equal to infinity, because no sensor data can | 268 // to get an event with value equal to infinity, because no sensor data can |
| 280 // be provided. | 269 // be provided. |
| 281 EnableExperimentalFeatures(); | 270 EnableExperimentalFeatures(); |
| 282 fetcher_->SetSensorDataAvailable(false); | 271 fetcher_->SetSensorDataAvailable(false); |
| 283 GURL test_url = | 272 GURL test_url = |
| 284 GetTestUrl("device_sensors", "device_light_infinity_test.html"); | 273 GetTestUrl("device_sensors", "device_light_infinity_test.html"); |
| 285 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); | 274 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); |
| 286 | 275 |
| 287 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); | 276 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); |
| 288 fetcher_->started_light_.Wait(); | 277 fetcher_->started_light_.Wait(); |
| 289 fetcher_->stopped_light_.Wait(); | 278 fetcher_->stopped_light_.Wait(); |
| 290 } | 279 } |
| 291 | 280 |
| 292 // Flaky test. See http://crbug.com/628527. | 281 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, OrientationNullTest) { |
| 293 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, DISABLED_OrientationNullTest) { | |
| 294 // The test page registers an event handler for orientation events and | 282 // The test page registers an event handler for orientation events and |
| 295 // expects to get an event with null values, because no sensor data can be | 283 // expects to get an event with null values, because no sensor data can be |
| 296 // provided. | 284 // provided. |
| 297 fetcher_->SetSensorDataAvailable(false); | 285 fetcher_->SetSensorDataAvailable(false); |
| 298 GURL test_url = | 286 GURL test_url = |
| 299 GetTestUrl("device_sensors", "device_orientation_null_test.html"); | 287 GetTestUrl("device_sensors", "device_orientation_null_test.html"); |
| 300 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); | 288 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); |
| 301 | 289 |
| 302 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); | 290 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); |
| 303 fetcher_->started_orientation_.Wait(); | 291 fetcher_->started_orientation_.Wait(); |
| 304 fetcher_->stopped_orientation_.Wait(); | 292 fetcher_->stopped_orientation_.Wait(); |
| 305 } | 293 } |
| 306 | 294 |
| 307 // Flaky test. See http://crbug.com/628527. | 295 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, MotionNullTest) { |
| 308 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, DISABLED_MotionNullTest) { | |
| 309 // The test page registers an event handler for motion events and | 296 // The test page registers an event handler for motion events and |
| 310 // expects to get an event with null values, because no sensor data can be | 297 // expects to get an event with null values, because no sensor data can be |
| 311 // provided. | 298 // provided. |
| 312 fetcher_->SetSensorDataAvailable(false); | 299 fetcher_->SetSensorDataAvailable(false); |
| 313 GURL test_url = GetTestUrl("device_sensors", "device_motion_null_test.html"); | 300 GURL test_url = GetTestUrl("device_sensors", "device_motion_null_test.html"); |
| 314 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); | 301 NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2); |
| 315 | 302 |
| 316 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); | 303 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); |
| 317 fetcher_->started_motion_.Wait(); | 304 fetcher_->started_motion_.Wait(); |
| 318 fetcher_->stopped_motion_.Wait(); | 305 fetcher_->stopped_motion_.Wait(); |
| 319 } | 306 } |
| 320 | 307 |
| 321 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, DISABLED_NullTestWithAlert) { | 308 IN_PROC_BROWSER_TEST_F(DeviceSensorBrowserTest, NullTestWithAlert) { |
| 322 // The test page registers an event handlers for motion/orientation events | 309 // The test page registers an event handlers for motion/orientation events |
| 323 // and expects to get events with null values. The test raises a modal alert | 310 // and expects to get events with null values. The test raises a modal alert |
| 324 // dialog with a delay to test that the one-off null-events still propagate | 311 // dialog with a delay to test that the one-off null-events still propagate |
| 325 // to window after the alert is dismissed and the callbacks are invoked which | 312 // to window after the alert is dismissed and the callbacks are invoked which |
| 326 // eventually navigate to #pass. | 313 // eventually navigate to #pass. |
| 327 fetcher_->SetSensorDataAvailable(false); | 314 fetcher_->SetSensorDataAvailable(false); |
| 328 TestNavigationObserver same_tab_observer(shell()->web_contents(), 2); | 315 TestNavigationObserver same_tab_observer(shell()->web_contents(), 2); |
| 329 | 316 |
| 330 GURL test_url = | 317 GURL test_url = |
| 331 GetTestUrl("device_sensors", "device_sensors_null_test_with_alert.html"); | 318 GetTestUrl("device_sensors", "device_sensors_null_test_with_alert.html"); |
| 332 shell()->LoadURL(test_url); | 319 shell()->LoadURL(test_url); |
| 333 | 320 |
| 334 // TODO(timvolodine): investigate if it is possible to test this without | 321 // TODO(timvolodine): investigate if it is possible to test this without |
| 335 // delay, crbug.com/360044. | 322 // delay, crbug.com/360044. |
| 336 WaitForAlertDialogAndQuitAfterDelay(base::TimeDelta::FromMilliseconds(500)); | 323 WaitForAlertDialogAndQuitAfterDelay(base::TimeDelta::FromMilliseconds(500)); |
| 337 | 324 |
| 338 fetcher_->started_motion_.Wait(); | 325 fetcher_->started_motion_.Wait(); |
| 339 fetcher_->stopped_motion_.Wait(); | 326 fetcher_->stopped_motion_.Wait(); |
| 340 fetcher_->started_orientation_.Wait(); | 327 fetcher_->started_orientation_.Wait(); |
| 341 fetcher_->stopped_orientation_.Wait(); | 328 fetcher_->stopped_orientation_.Wait(); |
| 342 same_tab_observer.Wait(); | 329 same_tab_observer.Wait(); |
| 343 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); | 330 EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref()); |
| 344 } | 331 } |
| 345 | 332 |
| 346 } // namespace | 333 } // namespace |
| 347 | 334 |
| 348 } // namespace content | 335 } // namespace content |
| OLD | NEW |