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

Unified Diff: blimp/engine/feature/geolocation/blimp_location_provider_unittest.cc

Issue 2091023006: Adds EngineGeolocationFeature for Blimp Geolocation project. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with head Created 4 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: blimp/engine/feature/geolocation/blimp_location_provider_unittest.cc
diff --git a/blimp/engine/feature/geolocation/blimp_location_provider_unittest.cc b/blimp/engine/feature/geolocation/blimp_location_provider_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..6b9afb04c713391a47de33fe4122981b05899bd7
--- /dev/null
+++ b/blimp/engine/feature/geolocation/blimp_location_provider_unittest.cc
@@ -0,0 +1,111 @@
+// Copyright 2016 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 "blimp/engine/feature/geolocation/blimp_location_provider.h"
+
+#include "base/bind.h"
+#include "base/memory/ptr_util.h"
+#include "blimp/engine/feature/geolocation/mock_blimp_location_provider_delegate.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+using testing::_;
+
+namespace blimp {
+namespace engine {
+
+class BlimpLocationProviderTest : public testing::Test {
+ public:
+ BlimpLocationProviderTest()
+ : mock_callback_(base::Bind(&BlimpLocationProviderTest::OnLocationUpdate,
+ base::Unretained(this))),
+ delegate_(base::WrapUnique(new MockBlimpLocationProviderDelegate)),
+ location_provider_(
+ new BlimpLocationProvider(delegate_->weak_factory_.GetWeakPtr())) {}
Kevin M 2016/07/19 16:01:42 Oh - I see what's going on now. Move the weak_fac
CJ 2016/07/19 20:35:58 Is this referencing testing to see if BlimpLocatio
Kevin M 2016/07/21 17:37:05 That is generally the case for production objects,
CJ 2016/07/21 22:04:45 Is it more acceptable or beneficial to do it the o
+
+ void SetUp() override {}
+
+ void OnLocationUpdate(const content::LocationProvider* provider,
Kevin M 2016/07/19 16:01:41 I recommend making this a MOCK_METHOD2 and setting
CJ 2016/07/19 20:35:58 Done.
+ const content::Geoposition& geoposition) {}
+
+ protected:
+ content::LocationProvider::LocationProviderUpdateCallback mock_callback_;
+ std::unique_ptr<MockBlimpLocationProviderDelegate> delegate_;
+ std::unique_ptr<BlimpLocationProvider> location_provider_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BlimpLocationProviderTest);
+};
+
+TEST_F(BlimpLocationProviderTest, StartProviderRunsCorrectly) {
+ EXPECT_CALL(
+ *delegate_,
+ RequestAccuracy(GeolocationSetInterestLevelMessage::HIGH_ACCURACY))
+ .Times(1);
+ EXPECT_CALL(*delegate_,
+ RequestAccuracy(GeolocationSetInterestLevelMessage::LOW_ACCURACY))
+ .Times(1);
+
+ EXPECT_TRUE(location_provider_->StartProvider(true));
+ EXPECT_TRUE(location_provider_->StartProvider(false));
+}
+
+TEST_F(BlimpLocationProviderTest, StartProviderHandlesNullDelegate) {
+ EXPECT_CALL(*delegate_, RequestAccuracy(_)).Times(0);
+ delegate_.reset();
+ EXPECT_FALSE(location_provider_->StartProvider(true));
+ EXPECT_FALSE(location_provider_->StartProvider(false));
+}
+
+TEST_F(BlimpLocationProviderTest, StopProviderRunsCorrectly) {
+ EXPECT_CALL(*delegate_,
+ RequestAccuracy(GeolocationSetInterestLevelMessage::NO_INTEREST))
+ .Times(1);
+
+ location_provider_->StopProvider();
+}
+
+TEST_F(BlimpLocationProviderTest, StopProviderHandlesNullDelegate) {
+ EXPECT_CALL(*delegate_, RequestAccuracy(_)).Times(0);
+ delegate_.reset();
+ location_provider_->StopProvider();
+}
+
+TEST_F(BlimpLocationProviderTest, RequestRefreshRunsCorrectly) {
+ EXPECT_CALL(*delegate_, RequestRefresh()).Times(1);
+
+ location_provider_->RequestRefresh();
+}
+
+TEST_F(BlimpLocationProviderTest, RequestRefreshHandlesNullDelegate) {
+ EXPECT_CALL(*delegate_, RequestRefresh()).Times(0);
+ delegate_.reset();
+ location_provider_->RequestRefresh();
+}
+
+TEST_F(BlimpLocationProviderTest, OnPermissionGrantedCallsRefresh) {
+ EXPECT_CALL(*delegate_, RequestRefresh()).Times(1);
+
+ location_provider_->OnPermissionGranted();
+}
+
+TEST_F(BlimpLocationProviderTest, OnPermissionGrantedHandlesNullDelegate) {
+ EXPECT_CALL(*delegate_, RequestRefresh()).Times(0);
+ delegate_.reset();
+ location_provider_->OnPermissionGranted();
+}
+
+TEST_F(BlimpLocationProviderTest, SetUpdateCallbackPropagatesCallback) {
+ EXPECT_CALL(*delegate_, SetUpdateCallback(_)).Times(1);
+ location_provider_->SetUpdateCallback(mock_callback_);
+}
+
+TEST_F(BlimpLocationProviderTest, SetUpdateCallbackHandlesNullDelegate) {
+ EXPECT_CALL(*delegate_, SetUpdateCallback(_)).Times(0);
+ delegate_.reset();
+ location_provider_->SetUpdateCallback(mock_callback_);
+}
+
+} // namespace engine
+} // namespace blimp

Powered by Google App Engine
This is Rietveld 408576698