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

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

Issue 292693004: [DeviceLight] Browser+java part (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase 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/data_fetcher_shared_memory_base_unittest.cc
diff --git a/content/browser/device_sensors/data_fetcher_shared_memory_base_unittest.cc b/content/browser/device_sensors/data_fetcher_shared_memory_base_unittest.cc
index 3a86108b7b58c19e1dfe1cca5fda1b63e0ff16f4..1b62abab137ada058178e45301d81331c5179df0 100644
--- a/content/browser/device_sensors/data_fetcher_shared_memory_base_unittest.cc
+++ b/content/browser/device_sensors/data_fetcher_shared_memory_base_unittest.cc
@@ -8,6 +8,7 @@
#include "base/process/process_handle.h"
#include "base/synchronization/waitable_event.h"
#include "base/threading/thread.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 "testing/gtest/include/gtest/gtest.h"
@@ -19,15 +20,18 @@ namespace {
class FakeDataFetcher : public DataFetcherSharedMemoryBase {
public:
FakeDataFetcher()
- : start_motion_(false, false),
+ : start_light_(false, false),
+ start_motion_(false, false),
start_orientation_(false, false),
+ stop_light_(false, false),
stop_motion_(false, false),
stop_orientation_(false, false),
+ updated_light_(false, false),
updated_motion_(false, false),
updated_orientation_(false, false),
+ light_buffer_(NULL),
motion_buffer_(NULL),
- orientation_buffer_(NULL) {
- }
+ orientation_buffer_(NULL) {}
virtual ~FakeDataFetcher() { }
bool Init(ConsumerType consumer_type, void* buffer) {
@@ -41,12 +45,24 @@ class FakeDataFetcher : public DataFetcherSharedMemoryBase {
orientation_buffer_ =
static_cast<DeviceOrientationHardwareBuffer*>(buffer);
break;
+ case CONSUMER_TYPE_LIGHT:
+ light_buffer_ = static_cast<DeviceLightHardwareBuffer*>(buffer);
+ break;
default:
return false;
}
return true;
}
+ void UpdateLight() {
+ DeviceLightHardwareBuffer* buffer = GetLightBuffer();
+ ASSERT_TRUE(buffer);
+ buffer->seqlock.WriteBegin();
+ buffer->data.value = 100;
+ buffer->seqlock.WriteEnd();
+ updated_light_.Signal();
+ }
+
void UpdateMotion() {
DeviceMotionHardwareBuffer* buffer = GetMotionBuffer();
ASSERT_TRUE(buffer);
@@ -65,6 +81,8 @@ class FakeDataFetcher : public DataFetcherSharedMemoryBase {
updated_orientation_.Signal();
}
+ DeviceLightHardwareBuffer* GetLightBuffer() const { return light_buffer_; }
+
DeviceMotionHardwareBuffer* GetMotionBuffer() const {
return motion_buffer_;
}
@@ -81,6 +99,9 @@ class FakeDataFetcher : public DataFetcherSharedMemoryBase {
case CONSUMER_TYPE_ORIENTATION:
start_orientation_.Wait();
break;
+ case CONSUMER_TYPE_LIGHT:
+ start_light_.Wait();
+ break;
}
}
@@ -92,6 +113,9 @@ class FakeDataFetcher : public DataFetcherSharedMemoryBase {
case CONSUMER_TYPE_ORIENTATION:
stop_orientation_.Wait();
break;
+ case CONSUMER_TYPE_LIGHT:
+ stop_light_.Wait();
+ break;
}
}
@@ -103,18 +127,25 @@ class FakeDataFetcher : public DataFetcherSharedMemoryBase {
case CONSUMER_TYPE_ORIENTATION:
updated_orientation_.Wait();
break;
+ case CONSUMER_TYPE_LIGHT:
+ updated_light_.Wait();
+ break;
}
}
protected:
+ base::WaitableEvent start_light_;
base::WaitableEvent start_motion_;
base::WaitableEvent start_orientation_;
+ base::WaitableEvent stop_light_;
base::WaitableEvent stop_motion_;
base::WaitableEvent stop_orientation_;
+ base::WaitableEvent updated_light_;
base::WaitableEvent updated_motion_;
base::WaitableEvent updated_orientation_;
private:
+ DeviceLightHardwareBuffer* light_buffer_;
DeviceMotionHardwareBuffer* motion_buffer_;
DeviceOrientationHardwareBuffer* orientation_buffer_;
@@ -137,6 +168,10 @@ class FakeNonPollingDataFetcher : public FakeDataFetcher {
UpdateOrientation();
start_orientation_.Signal();
break;
+ case CONSUMER_TYPE_LIGHT:
+ UpdateLight();
+ start_light_.Signal();
+ break;
default:
return false;
}
@@ -151,6 +186,9 @@ class FakeNonPollingDataFetcher : public FakeDataFetcher {
case CONSUMER_TYPE_ORIENTATION:
stop_orientation_.Signal();
break;
+ case CONSUMER_TYPE_LIGHT:
+ stop_light_.Signal();
+ break;
default:
return false;
}
@@ -186,6 +224,9 @@ class FakePollingDataFetcher : public FakeDataFetcher {
case CONSUMER_TYPE_ORIENTATION:
start_orientation_.Signal();
break;
+ case CONSUMER_TYPE_LIGHT:
+ start_light_.Signal();
+ break;
default:
return false;
}
@@ -202,6 +243,9 @@ class FakePollingDataFetcher : public FakeDataFetcher {
case CONSUMER_TYPE_ORIENTATION:
stop_orientation_.Signal();
break;
+ case CONSUMER_TYPE_LIGHT:
+ stop_light_.Signal();
+ break;
default:
return false;
}
@@ -211,12 +255,15 @@ class FakePollingDataFetcher : public FakeDataFetcher {
virtual void Fetch(unsigned consumer_bitmask) OVERRIDE {
EXPECT_TRUE(base::MessageLoop::current() == GetPollingMessageLoop());
EXPECT_TRUE(consumer_bitmask & CONSUMER_TYPE_ORIENTATION ||
- consumer_bitmask & CONSUMER_TYPE_MOTION);
+ consumer_bitmask & CONSUMER_TYPE_MOTION ||
+ consumer_bitmask & CONSUMER_TYPE_LIGHT);
if (consumer_bitmask & CONSUMER_TYPE_ORIENTATION)
UpdateOrientation();
if (consumer_bitmask & CONSUMER_TYPE_MOTION)
UpdateMotion();
+ if (consumer_bitmask & CONSUMER_TYPE_LIGHT)
+ UpdateLight();
}
virtual FetcherType GetType() const OVERRIDE {
@@ -243,6 +290,9 @@ class FakeZeroDelayPollingDataFetcher : public FakeDataFetcher {
case CONSUMER_TYPE_ORIENTATION:
start_orientation_.Signal();
break;
+ case CONSUMER_TYPE_LIGHT:
+ start_light_.Signal();
+ break;
default:
return false;
}
@@ -259,6 +309,9 @@ class FakeZeroDelayPollingDataFetcher : public FakeDataFetcher {
case CONSUMER_TYPE_ORIENTATION:
stop_orientation_.Signal();
break;
+ case CONSUMER_TYPE_LIGHT:
+ stop_light_.Signal();
+ break;
default:
return false;
}
@@ -312,6 +365,20 @@ TEST(DataFetcherSharedMemoryBaseTest, DoesStartOrientation) {
fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION);
}
+TEST(DataFetcherSharedMemoryBaseTest, DoesStartLight) {
+ FakeNonPollingDataFetcher fake_data_fetcher;
+ EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_DEFAULT,
+ fake_data_fetcher.GetType());
+
+ EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_LIGHT));
+ fake_data_fetcher.WaitForStart(CONSUMER_TYPE_LIGHT);
+
+ EXPECT_EQ(100, fake_data_fetcher.GetLightBuffer()->data.value);
+
+ fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_LIGHT);
+ fake_data_fetcher.WaitForStop(CONSUMER_TYPE_LIGHT);
+}
+
TEST(DataFetcherSharedMemoryBaseTest, DoesPollMotion) {
FakePollingDataFetcher fake_data_fetcher;
EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK,
@@ -344,6 +411,21 @@ TEST(DataFetcherSharedMemoryBaseTest, DoesPollOrientation) {
fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION);
}
+TEST(DataFetcherSharedMemoryBaseTest, DoesPollLight) {
+ FakePollingDataFetcher fake_data_fetcher;
+ EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK,
+ fake_data_fetcher.GetType());
+
+ EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_LIGHT));
+ fake_data_fetcher.WaitForStart(CONSUMER_TYPE_LIGHT);
+ fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_LIGHT);
+
+ EXPECT_EQ(100, fake_data_fetcher.GetLightBuffer()->data.value);
+
+ fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_LIGHT);
+ fake_data_fetcher.WaitForStop(CONSUMER_TYPE_LIGHT);
+}
+
TEST(DataFetcherSharedMemoryBaseTest, DoesPollMotionAndOrientation) {
FakePollingDataFetcher fake_data_fetcher;
EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK,

Powered by Google App Engine
This is Rietveld 408576698