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

Side by Side 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "blimp/engine/feature/geolocation/blimp_location_provider.h"
6
7 #include "base/bind.h"
8 #include "base/memory/ptr_util.h"
9 #include "blimp/engine/feature/geolocation/mock_blimp_location_provider_delegate .h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 using testing::_;
14
15 namespace blimp {
16 namespace engine {
17
18 class BlimpLocationProviderTest : public testing::Test {
19 public:
20 BlimpLocationProviderTest()
21 : mock_callback_(base::Bind(&BlimpLocationProviderTest::OnLocationUpdate,
22 base::Unretained(this))),
23 delegate_(base::WrapUnique(new MockBlimpLocationProviderDelegate)),
24 location_provider_(
25 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
26
27 void SetUp() override {}
28
29 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.
30 const content::Geoposition& geoposition) {}
31
32 protected:
33 content::LocationProvider::LocationProviderUpdateCallback mock_callback_;
34 std::unique_ptr<MockBlimpLocationProviderDelegate> delegate_;
35 std::unique_ptr<BlimpLocationProvider> location_provider_;
36
37 private:
38 DISALLOW_COPY_AND_ASSIGN(BlimpLocationProviderTest);
39 };
40
41 TEST_F(BlimpLocationProviderTest, StartProviderRunsCorrectly) {
42 EXPECT_CALL(
43 *delegate_,
44 RequestAccuracy(GeolocationSetInterestLevelMessage::HIGH_ACCURACY))
45 .Times(1);
46 EXPECT_CALL(*delegate_,
47 RequestAccuracy(GeolocationSetInterestLevelMessage::LOW_ACCURACY))
48 .Times(1);
49
50 EXPECT_TRUE(location_provider_->StartProvider(true));
51 EXPECT_TRUE(location_provider_->StartProvider(false));
52 }
53
54 TEST_F(BlimpLocationProviderTest, StartProviderHandlesNullDelegate) {
55 EXPECT_CALL(*delegate_, RequestAccuracy(_)).Times(0);
56 delegate_.reset();
57 EXPECT_FALSE(location_provider_->StartProvider(true));
58 EXPECT_FALSE(location_provider_->StartProvider(false));
59 }
60
61 TEST_F(BlimpLocationProviderTest, StopProviderRunsCorrectly) {
62 EXPECT_CALL(*delegate_,
63 RequestAccuracy(GeolocationSetInterestLevelMessage::NO_INTEREST))
64 .Times(1);
65
66 location_provider_->StopProvider();
67 }
68
69 TEST_F(BlimpLocationProviderTest, StopProviderHandlesNullDelegate) {
70 EXPECT_CALL(*delegate_, RequestAccuracy(_)).Times(0);
71 delegate_.reset();
72 location_provider_->StopProvider();
73 }
74
75 TEST_F(BlimpLocationProviderTest, RequestRefreshRunsCorrectly) {
76 EXPECT_CALL(*delegate_, RequestRefresh()).Times(1);
77
78 location_provider_->RequestRefresh();
79 }
80
81 TEST_F(BlimpLocationProviderTest, RequestRefreshHandlesNullDelegate) {
82 EXPECT_CALL(*delegate_, RequestRefresh()).Times(0);
83 delegate_.reset();
84 location_provider_->RequestRefresh();
85 }
86
87 TEST_F(BlimpLocationProviderTest, OnPermissionGrantedCallsRefresh) {
88 EXPECT_CALL(*delegate_, RequestRefresh()).Times(1);
89
90 location_provider_->OnPermissionGranted();
91 }
92
93 TEST_F(BlimpLocationProviderTest, OnPermissionGrantedHandlesNullDelegate) {
94 EXPECT_CALL(*delegate_, RequestRefresh()).Times(0);
95 delegate_.reset();
96 location_provider_->OnPermissionGranted();
97 }
98
99 TEST_F(BlimpLocationProviderTest, SetUpdateCallbackPropagatesCallback) {
100 EXPECT_CALL(*delegate_, SetUpdateCallback(_)).Times(1);
101 location_provider_->SetUpdateCallback(mock_callback_);
102 }
103
104 TEST_F(BlimpLocationProviderTest, SetUpdateCallbackHandlesNullDelegate) {
105 EXPECT_CALL(*delegate_, SetUpdateCallback(_)).Times(0);
106 delegate_.reset();
107 location_provider_->SetUpdateCallback(mock_callback_);
108 }
109
110 } // namespace engine
111 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698