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

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: change frequency in sensor_consts 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..77d3783a9023aba04c1f583c53f736c6a1656448 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,21 @@ class FakeDataFetcher : public DataFetcherSharedMemory {
started_orientation_.Signal();
}
break;
+ case CONSUMER_TYPE_LIGHT:
timvolodine 2014/09/04 17:16:57 indent -2
riju_ 2014/09/08 09:26:17 Done.
+ {
+ DeviceLightHardwareBuffer* light_buffer =
+ static_cast<DeviceLightHardwareBuffer*>(buffer);
+ if (sensor_data_available_)
+ UpdateLight(light_buffer);
+ else {
+ // Null event scenario
timvolodine 2014/09/04 17:16:57 if you allow UpdateLight to take a value as well t
riju_ 2014/09/08 09:26:17 Done.
+ light_buffer->seqlock.WriteBegin();
+ light_buffer->data.value = std::numeric_limits<double>::infinity();
+ light_buffer->seqlock.WriteEnd();
+ }
+ started_light_.Signal();
+ }
+ break;
default:
return false;
}
@@ -70,6 +89,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 +162,18 @@ class FakeDataFetcher : public DataFetcherSharedMemory {
buffer->seqlock.WriteEnd();
}
+ void UpdateLight(DeviceLightHardwareBuffer* buffer) {
+ buffer->seqlock.WriteBegin();
+ buffer->data.value = 100;
+ 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 +225,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 +237,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 later
timvolodine 2014/09/04 17:16:57 nit: later -> "when the feature goes stable"
riju_ 2014/09/08 09:26:17 Done.
+ if (!CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures))
timvolodine 2014/09/04 17:16:57 indentation?
riju_ 2014/09/08 09:26:17 git cl format tells me to keep it like this.
+ 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 +267,39 @@ IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest, MotionTest) {
fetcher_->stopped_motion_.Wait();
}
+#if defined(OS_ANDROID)
+#define MAYBE_LightNullTestWithAlert DISABLED_LightNullTestWithAlert
+#else
+#define MAYBE_LightNullTestWithAlert LightNullTestWithAlert
+#endif
+IN_PROC_BROWSER_TEST_F(DeviceInertialSensorBrowserTest,
+ MAYBE_LightNullTestWithAlert) {
timvolodine 2014/09/04 17:16:57 the test with alert is kind of involved, maybe jus
riju_ 2014/09/08 09:26:17 Let me take out #ifdef android and see its its fla
+ // The test page will register an event handler for light events,
+ // expects to get an event with null values. The test raises a modal alert
+ // dialog with a delay to test 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);
+ // TODO(riju): remove command line args later
+ if (!CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures))
timvolodine 2014/09/04 17:16:57 indent
riju_ 2014/09/08 09:26:17 git cl format tells me to keep it like this.
+ CommandLine::ForCurrentProcess()->AppendSwitch(
+ switches::kEnableExperimentalWebPlatformFeatures);
+
+ TestNavigationObserver same_tab_observer(shell()->web_contents(), 2);
+
+ GURL test_url =
+ GetTestUrl("device_sensors", "device_light_null_test_with_alert.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 +316,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 +346,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