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

Unified Diff: content/browser/device_orientation/provider_unittest.cc

Issue 10755002: Refactors DeviceOrientation to make it more extensible (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Removing unused function IsEmpty Created 8 years, 5 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_orientation/provider_unittest.cc
diff --git a/content/browser/device_orientation/provider_unittest.cc b/content/browser/device_orientation/provider_unittest.cc
index be49dfde9cb38265dacdb7f187ac33b570882ccc..ffeb0fcf9929d267b069936471faa8d4ffaf4d7e 100644
--- a/content/browser/device_orientation/provider_unittest.cc
+++ b/content/browser/device_orientation/provider_unittest.cc
@@ -7,6 +7,7 @@
#include "base/message_loop.h"
#include "base/synchronization/lock.h"
#include "content/browser/device_orientation/data_fetcher.h"
+#include "content/browser/device_orientation/device_data.h"
#include "content/browser/device_orientation/orientation.h"
#include "content/browser/device_orientation/provider.h"
#include "content/browser/device_orientation/provider_impl.h"
@@ -16,34 +17,43 @@ namespace device_orientation {
namespace {
// Class for checking expectations on orientation updates from the Provider.
-class UpdateChecker : public Provider::Observer {
+class OrientationUpdateChecker : public Provider::Observer {
public:
- explicit UpdateChecker(int* expectations_count_ptr)
- : expectations_count_ptr_(expectations_count_ptr) {
+ explicit OrientationUpdateChecker(int* expectations_count_ptr)
+ : Observer(DeviceData::kTypeOrientation),
+ expectations_count_ptr_(expectations_count_ptr) {
}
- virtual ~UpdateChecker() {}
+ virtual ~OrientationUpdateChecker() {}
// From Provider::Observer.
- virtual void OnOrientationUpdate(const Orientation& orientation) {
+ virtual void OnDeviceDataUpdate(const DeviceData* device_data,
+ DeviceData::Type device_data_type) {
ASSERT_FALSE(expectations_queue_.empty());
- Orientation expected = expectations_queue_.front();
+ scoped_refptr<const Orientation> orientation(
+ static_cast<const Orientation*>(device_data));
+ if (orientation == NULL && device_data_type == DeviceData::kTypeOrientation)
+ orientation = new Orientation();
+ else
+ ASSERT_FALSE(orientation == NULL);
+
+ scoped_refptr<const Orientation> expected = expectations_queue_.front();
expectations_queue_.pop();
- EXPECT_EQ(expected.can_provide_alpha(), orientation.can_provide_alpha());
- EXPECT_EQ(expected.can_provide_beta(), orientation.can_provide_beta());
- EXPECT_EQ(expected.can_provide_gamma(), orientation.can_provide_gamma());
- EXPECT_EQ(expected.can_provide_absolute(),
- orientation.can_provide_absolute());
- if (expected.can_provide_alpha())
- EXPECT_EQ(expected.alpha(), orientation.alpha());
- if (expected.can_provide_beta())
- EXPECT_EQ(expected.beta(), orientation.beta());
- if (expected.can_provide_gamma())
- EXPECT_EQ(expected.gamma(), orientation.gamma());
- if (expected.can_provide_absolute())
- EXPECT_EQ(expected.absolute(), orientation.absolute());
+ EXPECT_EQ(expected->can_provide_alpha(), orientation->can_provide_alpha());
+ EXPECT_EQ(expected->can_provide_beta(), orientation->can_provide_beta());
+ EXPECT_EQ(expected->can_provide_gamma(), orientation->can_provide_gamma());
+ EXPECT_EQ(expected->can_provide_absolute(),
+ orientation->can_provide_absolute());
+ if (expected->can_provide_alpha())
+ EXPECT_EQ(expected->alpha(), orientation->alpha());
+ if (expected->can_provide_beta())
+ EXPECT_EQ(expected->beta(), orientation->beta());
+ if (expected->can_provide_gamma())
+ EXPECT_EQ(expected->gamma(), orientation->gamma());
+ if (expected->can_provide_absolute())
+ EXPECT_EQ(expected->absolute(), orientation->absolute());
--(*expectations_count_ptr_);
@@ -52,8 +62,9 @@ class UpdateChecker : public Provider::Observer {
}
}
- void AddExpectation(const Orientation& orientation) {
- expectations_queue_.push(orientation);
+ void AddExpectation(const Orientation* orientation) {
+ scoped_refptr<const Orientation> expected_orientation(orientation);
+ expectations_queue_.push(expected_orientation);
++(*expectations_count_ptr_);
}
@@ -62,7 +73,7 @@ class UpdateChecker : public Provider::Observer {
// from OnOrientationUpdate which is executed on the test fixture's
// message_loop_.
int* expectations_count_ptr_;
- std::queue<Orientation> expectations_queue_;
+ std::queue<scoped_refptr<const Orientation> > expectations_queue_;
};
// Class for injecting test orientation data into the Provider.
@@ -79,7 +90,7 @@ class MockOrientationFactory : public base::RefCounted<MockOrientationFactory> {
return new MockDataFetcher(instance_);
}
- void SetOrientation(const Orientation& orientation) {
+ void SetOrientation(const Orientation* orientation) {
base::AutoLock auto_lock(lock_);
orientation_ = orientation;
}
@@ -103,12 +114,11 @@ class MockOrientationFactory : public base::RefCounted<MockOrientationFactory> {
: orientation_factory_(orientation_factory) { }
// From DataFetcher. Called by the Provider.
- virtual bool GetOrientation(Orientation* orientation) {
+ virtual const DeviceData* GetDeviceData(DeviceData::Type device_data_type) {
base::AutoLock auto_lock(orientation_factory_->lock_);
if (orientation_factory_->is_failing_)
- return false;
- *orientation = orientation_factory_->orientation_;
- return true;
+ return NULL;
+ return orientation_factory_->orientation_;
}
private:
@@ -116,7 +126,7 @@ class MockOrientationFactory : public base::RefCounted<MockOrientationFactory> {
};
static MockOrientationFactory* instance_;
- Orientation orientation_;
+ scoped_refptr<const Orientation> orientation_;
bool is_failing_;
base::Lock lock_;
};
@@ -132,8 +142,8 @@ class FailingDataFetcher : public DataFetcher {
}
// From DataFetcher.
- virtual bool GetOrientation(Orientation* orientation) {
- return false;
+ virtual const DeviceData* GetDeviceData(DeviceData::Type device_data_type) {
+ return NULL;
}
private:
@@ -184,16 +194,16 @@ class DeviceOrientationProviderTest : public testing::Test {
TEST_F(DeviceOrientationProviderTest, FailingTest) {
Init(FailingDataFetcher::Create);
- scoped_ptr<UpdateChecker> checker_a(
- new UpdateChecker(&pending_expectations_));
- scoped_ptr<UpdateChecker> checker_b(
- new UpdateChecker(&pending_expectations_));
+ scoped_ptr<OrientationUpdateChecker> checker_a(
+ new OrientationUpdateChecker(&pending_expectations_));
+ scoped_ptr<OrientationUpdateChecker> checker_b(
+ new OrientationUpdateChecker(&pending_expectations_));
- checker_a->AddExpectation(Orientation::Empty());
+ checker_a->AddExpectation(new Orientation());
provider_->AddObserver(checker_a.get());
MessageLoop::current()->Run();
- checker_b->AddExpectation(Orientation::Empty());
+ checker_b->AddExpectation(new Orientation());
provider_->AddObserver(checker_b.get());
MessageLoop::current()->Run();
}
@@ -211,13 +221,14 @@ TEST_F(DeviceOrientationProviderTest, BasicPushTest) {
scoped_refptr<MockOrientationFactory> orientation_factory(
new MockOrientationFactory());
Init(MockOrientationFactory::CreateDataFetcher);
- Orientation test_orientation;
- test_orientation.set_alpha(1);
- test_orientation.set_beta(2);
- test_orientation.set_gamma(3);
- test_orientation.set_absolute(true);
-
- scoped_ptr<UpdateChecker> checker(new UpdateChecker(&pending_expectations_));
+ scoped_refptr<Orientation> test_orientation(new Orientation());
+ test_orientation->set_alpha(1);
+ test_orientation->set_beta(2);
+ test_orientation->set_gamma(3);
+ test_orientation->set_absolute(true);
+
+ scoped_ptr<OrientationUpdateChecker> checker(
+ new OrientationUpdateChecker(&pending_expectations_));
checker->AddExpectation(test_orientation);
orientation_factory->SetOrientation(test_orientation);
provider_->AddObserver(checker.get());
@@ -231,29 +242,29 @@ TEST_F(DeviceOrientationProviderTest, MultipleObserversPushTest) {
new MockOrientationFactory());
Init(MockOrientationFactory::CreateDataFetcher);
- Orientation test_orientations[] = {Orientation(), Orientation(),
- Orientation()};
- test_orientations[0].set_alpha(1);
- test_orientations[0].set_beta(2);
- test_orientations[0].set_gamma(3);
- test_orientations[0].set_absolute(true);
-
- test_orientations[1].set_alpha(4);
- test_orientations[1].set_beta(5);
- test_orientations[1].set_gamma(6);
- test_orientations[1].set_absolute(false);
-
- test_orientations[2].set_alpha(7);
- test_orientations[2].set_beta(8);
- test_orientations[2].set_gamma(9);
+ scoped_refptr<Orientation> test_orientations[] = {new Orientation(),
+ new Orientation(), new Orientation()};
+ test_orientations[0]->set_alpha(1);
+ test_orientations[0]->set_beta(2);
+ test_orientations[0]->set_gamma(3);
+ test_orientations[0]->set_absolute(true);
+
+ test_orientations[1]->set_alpha(4);
+ test_orientations[1]->set_beta(5);
+ test_orientations[1]->set_gamma(6);
+ test_orientations[1]->set_absolute(false);
+
+ test_orientations[2]->set_alpha(7);
+ test_orientations[2]->set_beta(8);
+ test_orientations[2]->set_gamma(9);
// can't provide absolute
- scoped_ptr<UpdateChecker> checker_a(
- new UpdateChecker(&pending_expectations_));
- scoped_ptr<UpdateChecker> checker_b(
- new UpdateChecker(&pending_expectations_));
- scoped_ptr<UpdateChecker> checker_c(
- new UpdateChecker(&pending_expectations_));
+ scoped_ptr<OrientationUpdateChecker> checker_a(
+ new OrientationUpdateChecker(&pending_expectations_));
+ scoped_ptr<OrientationUpdateChecker> checker_b(
+ new OrientationUpdateChecker(&pending_expectations_));
+ scoped_ptr<OrientationUpdateChecker> checker_c(
+ new OrientationUpdateChecker(&pending_expectations_));
checker_a->AddExpectation(test_orientations[0]);
orientation_factory->SetOrientation(test_orientations[0]);
@@ -290,19 +301,20 @@ TEST_F(DeviceOrientationProviderTest, MAYBE_ObserverNotRemoved) {
scoped_refptr<MockOrientationFactory> orientation_factory(
new MockOrientationFactory());
Init(MockOrientationFactory::CreateDataFetcher);
- Orientation test_orientation;
- test_orientation.set_alpha(1);
- test_orientation.set_beta(2);
- test_orientation.set_gamma(3);
- test_orientation.set_absolute(true);
-
- Orientation test_orientation2;
- test_orientation2.set_alpha(4);
- test_orientation2.set_beta(5);
- test_orientation2.set_gamma(6);
- test_orientation2.set_absolute(false);
-
- scoped_ptr<UpdateChecker> checker(new UpdateChecker(&pending_expectations_));
+ scoped_refptr<Orientation> test_orientation(new Orientation());
+ test_orientation->set_alpha(1);
+ test_orientation->set_beta(2);
+ test_orientation->set_gamma(3);
+ test_orientation->set_absolute(true);
+
+ scoped_refptr<Orientation> test_orientation2(new Orientation());
+ test_orientation2->set_alpha(4);
+ test_orientation2->set_beta(5);
+ test_orientation2->set_gamma(6);
+ test_orientation2->set_absolute(false);
+
+ scoped_ptr<OrientationUpdateChecker> checker(
+ new OrientationUpdateChecker(&pending_expectations_));
checker->AddExpectation(test_orientation);
orientation_factory->SetOrientation(test_orientation);
provider_->AddObserver(checker.get());
@@ -325,15 +337,15 @@ TEST_F(DeviceOrientationProviderTest, MAYBE_StartFailing) {
scoped_refptr<MockOrientationFactory> orientation_factory(
new MockOrientationFactory());
Init(MockOrientationFactory::CreateDataFetcher);
- Orientation test_orientation;
- test_orientation.set_alpha(1);
- test_orientation.set_beta(2);
- test_orientation.set_gamma(3);
- test_orientation.set_absolute(true);
+ scoped_refptr<Orientation> test_orientation(new Orientation());
+ test_orientation->set_alpha(1);
+ test_orientation->set_beta(2);
+ test_orientation->set_gamma(3);
+ test_orientation->set_absolute(true);
- scoped_ptr<UpdateChecker> checker_a(new UpdateChecker(
+ scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker(
&pending_expectations_));
- scoped_ptr<UpdateChecker> checker_b(new UpdateChecker(
+ scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker(
&pending_expectations_));
orientation_factory->SetOrientation(test_orientation);
@@ -341,11 +353,11 @@ TEST_F(DeviceOrientationProviderTest, MAYBE_StartFailing) {
provider_->AddObserver(checker_a.get());
MessageLoop::current()->Run();
- checker_a->AddExpectation(Orientation::Empty());
+ checker_a->AddExpectation(new Orientation());
orientation_factory->SetFailing(true);
MessageLoop::current()->Run();
- checker_b->AddExpectation(Orientation::Empty());
+ checker_b->AddExpectation(new Orientation());
provider_->AddObserver(checker_b.get());
MessageLoop::current()->Run();
@@ -358,21 +370,21 @@ TEST_F(DeviceOrientationProviderTest, StartStopStart) {
new MockOrientationFactory());
Init(MockOrientationFactory::CreateDataFetcher);
- Orientation test_orientation;
- test_orientation.set_alpha(1);
- test_orientation.set_beta(2);
- test_orientation.set_gamma(3);
- test_orientation.set_absolute(true);
+ scoped_refptr<Orientation> test_orientation(new Orientation());
+ test_orientation->set_alpha(1);
+ test_orientation->set_beta(2);
+ test_orientation->set_gamma(3);
+ test_orientation->set_absolute(true);
- Orientation test_orientation2;
- test_orientation2.set_alpha(4);
- test_orientation2.set_beta(5);
- test_orientation2.set_gamma(6);
- test_orientation2.set_absolute(false);
+ scoped_refptr<Orientation> test_orientation2(new Orientation());
+ test_orientation2->set_alpha(4);
+ test_orientation2->set_beta(5);
+ test_orientation2->set_gamma(6);
+ test_orientation2->set_absolute(false);
- scoped_ptr<UpdateChecker> checker_a(new UpdateChecker(
+ scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker(
&pending_expectations_));
- scoped_ptr<UpdateChecker> checker_b(new UpdateChecker(
+ scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker(
&pending_expectations_));
checker_a->AddExpectation(test_orientation);
@@ -401,30 +413,29 @@ TEST_F(DeviceOrientationProviderTest, SignificantlyDifferent) {
const double kSignificantDifference = 30;
const double kAlpha = 4, kBeta = 5, kGamma = 6;
- Orientation first_orientation;
- first_orientation.set_alpha(kAlpha);
- first_orientation.set_beta(kBeta);
- first_orientation.set_gamma(kGamma);
- first_orientation.set_absolute(true);
-
- Orientation second_orientation;
- second_orientation.set_alpha(kAlpha + kInsignificantDifference);
- second_orientation.set_beta(kBeta + kInsignificantDifference);
- second_orientation.set_gamma(kGamma + kInsignificantDifference);
- second_orientation.set_absolute(false);
-
- Orientation third_orientation;
- third_orientation.set_alpha(kAlpha + kSignificantDifference);
- third_orientation.set_beta(kBeta + kSignificantDifference);
- third_orientation.set_gamma(kGamma + kSignificantDifference);
+ scoped_refptr<Orientation> first_orientation(new Orientation());
+ first_orientation->set_alpha(kAlpha);
+ first_orientation->set_beta(kBeta);
+ first_orientation->set_gamma(kGamma);
+ first_orientation->set_absolute(true);
+
+ scoped_refptr<Orientation> second_orientation(new Orientation());
+ second_orientation->set_alpha(kAlpha + kInsignificantDifference);
+ second_orientation->set_beta(kBeta + kInsignificantDifference);
+ second_orientation->set_gamma(kGamma + kInsignificantDifference);
+ second_orientation->set_absolute(false);
+
+ scoped_refptr<Orientation> third_orientation(new Orientation());
+ third_orientation->set_alpha(kAlpha + kSignificantDifference);
+ third_orientation->set_beta(kBeta + kSignificantDifference);
+ third_orientation->set_gamma(kGamma + kSignificantDifference);
// can't provide absolute
- scoped_ptr<UpdateChecker> checker_a(new UpdateChecker(
+ scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker(
&pending_expectations_));
- scoped_ptr<UpdateChecker> checker_b(new UpdateChecker(
+ scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker(
&pending_expectations_));
-
orientation_factory->SetOrientation(first_orientation);
checker_a->AddExpectation(first_orientation);
provider_->AddObserver(checker_a.get());

Powered by Google App Engine
This is Rietveld 408576698