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 |
deleted file mode 100644 |
index 54e76be43b3df4527d056820b9b97452ce4c7dfb..0000000000000000000000000000000000000000 |
--- a/content/browser/device_sensors/data_fetcher_shared_memory_base_unittest.cc |
+++ /dev/null |
@@ -1,609 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "content/browser/device_sensors/data_fetcher_shared_memory_base.h" |
- |
-#include "base/logging.h" |
-#include "base/macros.h" |
-#include "base/process/process_handle.h" |
-#include "base/single_thread_task_runner.h" |
-#include "base/synchronization/waitable_event.h" |
-#include "base/threading/thread.h" |
-#include "device/sensors/public/cpp/device_light_hardware_buffer.h" |
-#include "device/sensors/public/cpp/device_motion_hardware_buffer.h" |
-#include "device/sensors/public/cpp/device_orientation_hardware_buffer.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace content { |
- |
-namespace { |
- |
-class FakeDataFetcher : public DataFetcherSharedMemoryBase { |
- public: |
- FakeDataFetcher() |
- : start_light_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- start_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- start_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- start_orientation_absolute_( |
- base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- stop_light_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- stop_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- stop_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- stop_orientation_absolute_( |
- base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- updated_light_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- updated_motion_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- updated_orientation_(base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- updated_orientation_absolute_( |
- base::WaitableEvent::ResetPolicy::AUTOMATIC, |
- base::WaitableEvent::InitialState::NOT_SIGNALED), |
- light_buffer_(nullptr), |
- motion_buffer_(nullptr), |
- orientation_buffer_(nullptr), |
- orientation_absolute_buffer_(nullptr) {} |
- ~FakeDataFetcher() override {} |
- |
- bool Init(ConsumerType consumer_type, void* buffer) { |
- EXPECT_TRUE(buffer); |
- |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- motion_buffer_ = static_cast<DeviceMotionHardwareBuffer*>(buffer); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- orientation_buffer_ = |
- static_cast<DeviceOrientationHardwareBuffer*>(buffer); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- orientation_absolute_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); |
- buffer->seqlock.WriteBegin(); |
- buffer->data.interval = kDeviceSensorIntervalMicroseconds / 1000.; |
- buffer->seqlock.WriteEnd(); |
- updated_motion_.Signal(); |
- } |
- |
- void UpdateOrientation() { |
- DeviceOrientationHardwareBuffer* buffer = GetOrientationBuffer(); |
- ASSERT_TRUE(buffer); |
- buffer->seqlock.WriteBegin(); |
- buffer->data.alpha = 1; |
- buffer->seqlock.WriteEnd(); |
- updated_orientation_.Signal(); |
- } |
- |
- void UpdateOrientationAbsolute() { |
- DeviceOrientationHardwareBuffer* buffer = GetOrientationAbsoluteBuffer(); |
- ASSERT_TRUE(buffer); |
- buffer->seqlock.WriteBegin(); |
- buffer->data.alpha = 1; |
- buffer->data.absolute = true; |
- buffer->seqlock.WriteEnd(); |
- updated_orientation_absolute_.Signal(); |
- } |
- |
- DeviceLightHardwareBuffer* GetLightBuffer() const { return light_buffer_; } |
- |
- DeviceMotionHardwareBuffer* GetMotionBuffer() const { |
- return motion_buffer_; |
- } |
- |
- DeviceOrientationHardwareBuffer* GetOrientationBuffer() const { |
- return orientation_buffer_; |
- } |
- |
- DeviceOrientationHardwareBuffer* GetOrientationAbsoluteBuffer() const { |
- return orientation_absolute_buffer_; |
- } |
- |
- void WaitForStart(ConsumerType consumer_type) { |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- start_motion_.Wait(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- start_orientation_.Wait(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- start_orientation_absolute_.Wait(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- start_light_.Wait(); |
- break; |
- } |
- } |
- |
- void WaitForStop(ConsumerType consumer_type) { |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- stop_motion_.Wait(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- stop_orientation_.Wait(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- stop_orientation_absolute_.Wait(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- stop_light_.Wait(); |
- break; |
- } |
- } |
- |
- void WaitForUpdate(ConsumerType consumer_type) { |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- updated_motion_.Wait(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- updated_orientation_.Wait(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- updated_orientation_absolute_.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 start_orientation_absolute_; |
- base::WaitableEvent stop_light_; |
- base::WaitableEvent stop_motion_; |
- base::WaitableEvent stop_orientation_; |
- base::WaitableEvent stop_orientation_absolute_; |
- base::WaitableEvent updated_light_; |
- base::WaitableEvent updated_motion_; |
- base::WaitableEvent updated_orientation_; |
- base::WaitableEvent updated_orientation_absolute_; |
- |
- private: |
- DeviceLightHardwareBuffer* light_buffer_; |
- DeviceMotionHardwareBuffer* motion_buffer_; |
- DeviceOrientationHardwareBuffer* orientation_buffer_; |
- DeviceOrientationHardwareBuffer* orientation_absolute_buffer_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FakeDataFetcher); |
-}; |
- |
-class FakeNonPollingDataFetcher : public FakeDataFetcher { |
- public: |
- FakeNonPollingDataFetcher() : update_(true) {} |
- ~FakeNonPollingDataFetcher() override {} |
- |
- bool Start(ConsumerType consumer_type, void* buffer) override { |
- Init(consumer_type, buffer); |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- if (update_) UpdateMotion(); |
- start_motion_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- if (update_) UpdateOrientation(); |
- start_orientation_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- if (update_) UpdateOrientationAbsolute(); |
- start_orientation_absolute_.Signal(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- if (update_) UpdateLight(); |
- start_light_.Signal(); |
- break; |
- default: |
- return false; |
- } |
- return true; |
- } |
- |
- bool Stop(ConsumerType consumer_type) override { |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- stop_motion_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- stop_orientation_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- stop_orientation_absolute_.Signal(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- stop_light_.Signal(); |
- break; |
- default: |
- return false; |
- } |
- return true; |
- } |
- |
- void Fetch(unsigned consumer_bitmask) override { |
- FAIL() << "fetch should not be called, " |
- << "because this is a non-polling fetcher"; |
- } |
- |
- FetcherType GetType() const override { return FakeDataFetcher::GetType(); } |
- void set_update(bool update) { update_ = update; } |
- |
- private: |
- bool update_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FakeNonPollingDataFetcher); |
-}; |
- |
-class FakePollingDataFetcher : public FakeDataFetcher { |
- public: |
- FakePollingDataFetcher() { } |
- ~FakePollingDataFetcher() override {} |
- |
- bool Start(ConsumerType consumer_type, void* buffer) override { |
- EXPECT_TRUE( |
- GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); |
- |
- Init(consumer_type, buffer); |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- start_motion_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- start_orientation_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- start_orientation_absolute_.Signal(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- start_light_.Signal(); |
- break; |
- default: |
- return false; |
- } |
- return true; |
- } |
- |
- bool Stop(ConsumerType consumer_type) override { |
- EXPECT_TRUE( |
- GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); |
- |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- stop_motion_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- stop_orientation_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- stop_orientation_absolute_.Signal(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- stop_light_.Signal(); |
- break; |
- default: |
- return false; |
- } |
- return true; |
- } |
- |
- void Fetch(unsigned consumer_bitmask) override { |
- EXPECT_TRUE( |
- GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); |
- EXPECT_TRUE(consumer_bitmask & CONSUMER_TYPE_ORIENTATION || |
- consumer_bitmask & CONSUMER_TYPE_ORIENTATION_ABSOLUTE || |
- consumer_bitmask & CONSUMER_TYPE_MOTION || |
- consumer_bitmask & CONSUMER_TYPE_LIGHT); |
- |
- if (consumer_bitmask & CONSUMER_TYPE_ORIENTATION) |
- UpdateOrientation(); |
- if (consumer_bitmask & CONSUMER_TYPE_ORIENTATION_ABSOLUTE) |
- UpdateOrientationAbsolute(); |
- if (consumer_bitmask & CONSUMER_TYPE_MOTION) |
- UpdateMotion(); |
- if (consumer_bitmask & CONSUMER_TYPE_LIGHT) |
- UpdateLight(); |
- } |
- |
- FetcherType GetType() const override { return FETCHER_TYPE_POLLING_CALLBACK; } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(FakePollingDataFetcher); |
-}; |
- |
-class FakeZeroDelayPollingDataFetcher : public FakeDataFetcher { |
- public: |
- FakeZeroDelayPollingDataFetcher() { } |
- ~FakeZeroDelayPollingDataFetcher() override {} |
- |
- bool Start(ConsumerType consumer_type, void* buffer) override { |
- EXPECT_TRUE( |
- GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); |
- |
- Init(consumer_type, buffer); |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- start_motion_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- start_orientation_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- start_orientation_absolute_.Signal(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- start_light_.Signal(); |
- break; |
- default: |
- return false; |
- } |
- return true; |
- } |
- |
- bool Stop(ConsumerType consumer_type) override { |
- EXPECT_TRUE( |
- GetPollingMessageLoop()->task_runner()->BelongsToCurrentThread()); |
- |
- switch (consumer_type) { |
- case CONSUMER_TYPE_MOTION: |
- stop_motion_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION: |
- stop_orientation_.Signal(); |
- break; |
- case CONSUMER_TYPE_ORIENTATION_ABSOLUTE: |
- stop_orientation_absolute_.Signal(); |
- break; |
- case CONSUMER_TYPE_LIGHT: |
- stop_light_.Signal(); |
- break; |
- default: |
- return false; |
- } |
- return true; |
- } |
- |
- void Fetch(unsigned consumer_bitmask) override { |
- FAIL() << "fetch should not be called"; |
- } |
- |
- FetcherType GetType() const override { return FETCHER_TYPE_SEPARATE_THREAD; } |
- |
- bool IsPollingTimerRunningForTesting() const { |
- return FakeDataFetcher::IsPollingTimerRunningForTesting(); |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(FakeZeroDelayPollingDataFetcher); |
-}; |
- |
- |
-TEST(DataFetcherSharedMemoryBaseTest, DoesStartMotion) { |
- FakeNonPollingDataFetcher fake_data_fetcher; |
- EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_DEFAULT, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_MOTION)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_MOTION); |
- |
- EXPECT_EQ(kDeviceSensorIntervalMicroseconds / 1000., |
- fake_data_fetcher.GetMotionBuffer()->data.interval); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_MOTION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_MOTION); |
-} |
- |
-TEST(DataFetcherSharedMemoryBaseTest, DoesStartOrientation) { |
- FakeNonPollingDataFetcher fake_data_fetcher; |
- EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_DEFAULT, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION); |
- |
- EXPECT_EQ(1, fake_data_fetcher.GetOrientationBuffer()->data.alpha); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION); |
-} |
- |
-TEST(DataFetcherSharedMemoryBaseTest, DoesStartOrientationAbsolute) { |
- FakeNonPollingDataFetcher fake_data_fetcher; |
- EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_DEFAULT, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION_ABSOLUTE)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); |
- |
- EXPECT_EQ(1, fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.alpha); |
- EXPECT_TRUE(fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.absolute); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); |
-} |
- |
-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, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData(CONSUMER_TYPE_MOTION)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_MOTION); |
- fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_MOTION); |
- |
- EXPECT_EQ(kDeviceSensorIntervalMicroseconds / 1000., |
- fake_data_fetcher.GetMotionBuffer()->data.interval); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_MOTION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_MOTION); |
-} |
- |
-TEST(DataFetcherSharedMemoryBaseTest, DoesPollOrientation) { |
- FakePollingDataFetcher fake_data_fetcher; |
- EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_ORIENTATION); |
- |
- EXPECT_EQ(1, fake_data_fetcher.GetOrientationBuffer()->data.alpha); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION); |
-} |
- |
-TEST(DataFetcherSharedMemoryBaseTest, DoesPollOrientationAbsolute) { |
- FakePollingDataFetcher fake_data_fetcher; |
- EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_POLLING_CALLBACK, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION_ABSOLUTE)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); |
- fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); |
- |
- EXPECT_EQ(1, fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.alpha); |
- EXPECT_TRUE(fake_data_fetcher.GetOrientationAbsoluteBuffer()->data.absolute); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION_ABSOLUTE); |
-} |
- |
-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, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION)); |
- mojo::ScopedSharedBufferHandle handle_orientation = |
- fake_data_fetcher.GetSharedMemoryHandle(CONSUMER_TYPE_ORIENTATION); |
- EXPECT_TRUE(handle_orientation.is_valid()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_MOTION)); |
- mojo::ScopedSharedBufferHandle handle_motion = |
- fake_data_fetcher.GetSharedMemoryHandle(CONSUMER_TYPE_MOTION); |
- EXPECT_TRUE(handle_motion.is_valid()); |
- |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_MOTION); |
- |
- fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForUpdate(CONSUMER_TYPE_MOTION); |
- |
- EXPECT_EQ(1, fake_data_fetcher.GetOrientationBuffer()->data.alpha); |
- EXPECT_EQ(kDeviceSensorIntervalMicroseconds / 1000., |
- fake_data_fetcher.GetMotionBuffer()->data.interval); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_MOTION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_MOTION); |
-} |
- |
-TEST(DataFetcherSharedMemoryBaseTest, DoesNotPollZeroDelay) { |
- FakeZeroDelayPollingDataFetcher fake_data_fetcher; |
- EXPECT_EQ(DataFetcherSharedMemoryBase::FETCHER_TYPE_SEPARATE_THREAD, |
- fake_data_fetcher.GetType()); |
- |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION); |
- |
- EXPECT_FALSE(fake_data_fetcher.IsPollingTimerRunningForTesting()); |
- EXPECT_EQ(0, fake_data_fetcher.GetOrientationBuffer()->data.alpha); |
- |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION); |
-} |
- |
-TEST(DataFetcherSharedMemoryBaseTest, DoesClearBufferOnStart) { |
- FakeNonPollingDataFetcher fake_data_fetcher; |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION); |
- EXPECT_EQ(1, fake_data_fetcher.GetOrientationBuffer()->data.alpha); |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION); |
- |
- // Restart orientation without updating the memory buffer and check that |
- // it has been cleared to its initial state. |
- fake_data_fetcher.set_update(false); |
- EXPECT_TRUE(fake_data_fetcher.StartFetchingDeviceData( |
- CONSUMER_TYPE_ORIENTATION)); |
- fake_data_fetcher.WaitForStart(CONSUMER_TYPE_ORIENTATION); |
- EXPECT_EQ(0, fake_data_fetcher.GetOrientationBuffer()->data.alpha); |
- fake_data_fetcher.StopFetchingDeviceData(CONSUMER_TYPE_ORIENTATION); |
- fake_data_fetcher.WaitForStop(CONSUMER_TYPE_ORIENTATION); |
-} |
- |
-} // namespace |
- |
-} // namespace content |