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

Unified Diff: content/browser/device_sensors/device_inertial_sensor_browsertest.cc

Issue 292693004: [DeviceLight] Browser+java part (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Forgot some light bits removal from device_inertial_sensor_diagnostics.html Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/device_sensors/device_inertial_sensor_browsertest.cc
diff --git a/content/browser/device_sensors/device_inertial_sensor_browsertest.cc b/content/browser/device_sensors/device_inertial_sensor_browsertest.cc
index 373907e1347f19806cb213ced85aebe5faad09db..9c1bd6b91689b905d2e633226ce514b0d2294a17 100644
--- a/content/browser/device_sensors/device_inertial_sensor_browsertest.cc
+++ b/content/browser/device_sensors/device_inertial_sensor_browsertest.cc
@@ -2,14 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "base/command_line.h"
#include "base/synchronization/waitable_event.h"
#include "base/threading/platform_thread.h"
#include "content/browser/device_sensors/data_fetcher_shared_memory.h"
#include "content/browser/device_sensors/device_inertial_sensor_service.h"
+#include "content/common/device_sensors/device_light_hardware_buffer.h"
#include "content/common/device_sensors/device_motion_hardware_buffer.h"
#include "content/common/device_sensors/device_orientation_hardware_buffer.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
+#include "content/public/common/content_switches.h"
#include "content/public/test/content_browser_test.h"
#include "content/public/test/content_browser_test_utils.h"
#include "content/public/test/test_navigation_observer.h"
@@ -28,8 +31,9 @@ class FakeDataFetcher : public DataFetcherSharedMemory {
stopped_orientation_(false, false),
started_motion_(false, false),
stopped_motion_(false, false),
- sensor_data_available_(true) {
- }
+ started_light_(false, false),
+ stopped_light_(false, false),
+ sensor_data_available_(true) {}
virtual ~FakeDataFetcher() { }
virtual bool Start(ConsumerType consumer_type, void* buffer) OVERRIDE {
@@ -56,6 +60,17 @@ class FakeDataFetcher : public DataFetcherSharedMemory {
started_orientation_.Signal();
}
break;
+ case CONSUMER_TYPE_LIGHT:
+ {
+ DeviceLightHardwareBuffer* light_buffer =
+ static_cast<DeviceLightHardwareBuffer*>(buffer);
+ UpdateLight(light_buffer,
+ sensor_data_available_
+ ? 100
+ : std::numeric_limits<double>::infinity());
+ started_light_.Signal();
+ }
+ break;
default:
return false;
}
@@ -70,6 +85,9 @@ class FakeDataFetcher : public DataFetcherSharedMemory {
case CONSUMER_TYPE_ORIENTATION:
stopped_orientation_.Signal();
break;
+ case CONSUMER_TYPE_LIGHT:
+ stopped_light_.Signal();
+ break;
default:
return false;
}
@@ -140,10 +158,18 @@ class FakeDataFetcher : public DataFetcherSharedMemory {
buffer->seqlock.WriteEnd();
}
+ void UpdateLight(DeviceLightHardwareBuffer* buffer, double lux) {
+ buffer->seqlock.WriteBegin();
+ buffer->data.value = lux;
+ buffer->seqlock.WriteEnd();
+ }
+
base::WaitableEvent started_orientation_;
base::WaitableEvent stopped_orientation_;
base::WaitableEvent started_motion_;
base::WaitableEvent stopped_motion_;
+ base::WaitableEvent started_light_;
+ base::WaitableEvent stopped_light_;
bool sensor_data_available_;
private:
@@ -195,13 +221,11 @@ class DeviceInertialSensorBrowserTest : public ContentBrowserTest {
base::WaitableEvent io_loop_finished_event_;
};
-
IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest, OrientationTest) {
// The test page will register an event handler for orientation events,
// expects to get an event with fake values, then removes the event
// handler and navigates to #pass.
- GURL test_url = GetTestUrl(
- "device_orientation", "device_orientation_test.html");
+ GURL test_url = GetTestUrl("device_sensors", "device_orientation_test.html");
NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2);
EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref());
@@ -209,12 +233,29 @@ IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest, OrientationTest) {
fetcher_->stopped_orientation_.Wait();
}
+IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest, LightTest) {
+ // The test page will register an event handler for light events,
+ // expects to get an event with fake values, then removes the event
+ // handler and navigates to #pass.
+ GURL test_url = GetTestUrl("device_sensors", "device_light_test.html");
+ // TODO(riju): remove command line args when the feature goes stable
timvolodine 2014/09/08 15:20:19 this looks a bit dense, could you add white line?
timvolodine 2014/09/08 15:20:19 nit "." at eol.
riju_ 2014/09/09 14:01:17 Done.
riju_ 2014/09/09 14:01:17 Done.
+ if (!CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures))
timvolodine 2014/09/08 15:20:19 this still looks weird to me, I think indent +4sp
timvolodine 2014/09/08 15:20:19 also { } required when multiline
riju_ 2014/09/09 14:01:17 Done.
riju_ 2014/09/09 14:01:17 Done.
+ CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures);
+
+ NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2);
+
+ EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref());
+ fetcher_->started_light_.Wait();
+ fetcher_->stopped_light_.Wait();
+}
+
IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest, MotionTest) {
// The test page will register an event handler for motion events,
// expects to get an event with fake values, then removes the event
// handler and navigates to #pass.
- GURL test_url = GetTestUrl(
- "device_orientation", "device_motion_test.html");
+ GURL test_url = GetTestUrl("device_sensors", "device_motion_test.html");
NavigateToURLBlockUntilNavigationsComplete(shell(), test_url, 2);
EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref());
@@ -222,6 +263,31 @@ IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest, MotionTest) {
fetcher_->stopped_motion_.Wait();
}
+IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest, LightNullTest) {
+ // The test page will register an event handler for light events,
+ // expects to get an event with null(Inf) values. This tests that the one-off
+ // null-event still propagates to window after the alert is dismissed and
+ // the callback is invoked which navigates to #pass.
+ fetcher_->SetSensorDataAvailable(false);
timvolodine 2014/09/08 15:20:19 nit : add empty line for readability?
riju_ 2014/09/09 14:01:18 Done.
+ // TODO(riju): remove command line args when the feature goes stable
+ if (!CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures))
timvolodine 2014/09/08 15:20:19 { .. }
riju_ 2014/09/09 14:01:17 Done.
+ CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures);
+
+ TestNavigationObserver same_tab_observer(shell()->web_contents(), 2);
+
+ GURL test_url = GetTestUrl("device_sensors", "device_light_null_test.html");
+ shell()->LoadURL(test_url);
+
+ WaitForAlertDialogAndQuitAfterDelay(base::TimeDelta::FromMilliseconds(1000));
+
+ fetcher_->started_light_.Wait();
+ fetcher_->stopped_light_.Wait();
+ same_tab_observer.Wait();
+ EXPECT_EQ("pass", shell()->web_contents()->GetLastCommittedURL().ref());
+}
+
// Flaking in the android try bot. See http://crbug.com/360578.
#if defined(OS_ANDROID)
#define MAYBE_OrientationNullTestWithAlert DISABLED_OrientationNullTestWithAlert
@@ -238,8 +304,8 @@ IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest,
fetcher_->SetSensorDataAvailable(false);
TestNavigationObserver same_tab_observer(shell()->web_contents(), 2);
- GURL test_url = GetTestUrl(
- "device_orientation", "device_orientation_null_test_with_alert.html");
+ GURL test_url = GetTestUrl("device_sensors",
+ "device_orientation_null_test_with_alert.html");
shell()->LoadURL(test_url);
// TODO(timvolodine): investigate if it is possible to test this without
@@ -268,8 +334,8 @@ IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest,
fetcher_->SetSensorDataAvailable(false);
TestNavigationObserver same_tab_observer(shell()->web_contents(), 2);
- GURL test_url = GetTestUrl(
- "device_orientation", "device_motion_null_test_with_alert.html");
+ GURL test_url =
+ GetTestUrl("device_sensors", "device_motion_null_test_with_alert.html");
shell()->LoadURL(test_url);
// TODO(timvolodine): investigate if it is possible to test this without

Powered by Google App Engine
This is Rietveld 408576698