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

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

Issue 2328453003: Makes use of EngineGeolocationFeature weak_ptr threadsafe. (Closed)
Patch Set: Addresses kmarshall's #3 comments. Created 4 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: 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
index 8258c99db45c7f4f78fb8607a00186b15d8bcbd7..8502b596bf6ec1cf0cf85accb54c478174188cb5 100644
--- a/blimp/engine/feature/geolocation/blimp_location_provider_unittest.cc
+++ b/blimp/engine/feature/geolocation/blimp_location_provider_unittest.cc
@@ -9,12 +9,14 @@
#include "base/bind.h"
#include "base/memory/ptr_util.h"
+#include "base/message_loop/message_loop.h"
+#include "base/run_loop.h"
+#include "base/threading/thread_task_runner_handle.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::_;
-using testing::SaveArg;
namespace blimp {
namespace engine {
@@ -25,16 +27,23 @@ class BlimpLocationProviderTest : public testing::Test {
: mock_callback_(base::Bind(&BlimpLocationProviderTest::OnLocationUpdate,
base::Unretained(this))),
delegate_(base::WrapUnique(new MockBlimpLocationProviderDelegate)),
- location_provider_(new BlimpLocationProvider(delegate_->GetWeakPtr())) {
- }
+ location_provider_(base::MakeUnique<BlimpLocationProvider>(
+ delegate_->GetWeakPtr(),
+ base::ThreadTaskRunnerHandle::Get())) {}
void SetUp() override {}
+ void TearDown() override {
+ location_provider_.reset();
+ base::RunLoop().RunUntilIdle();
+ }
+
MOCK_METHOD2(OnLocationUpdate,
void(const device::LocationProvider* provider,
const device::Geoposition& geoposition));
protected:
+ const base::MessageLoop loop_;
device::LocationProvider::LocationProviderUpdateCallback mock_callback_;
std::unique_ptr<MockBlimpLocationProviderDelegate> delegate_;
std::unique_ptr<BlimpLocationProvider> location_provider_;
@@ -61,14 +70,6 @@ TEST_F(BlimpLocationProviderTest, StartProviderRunsCorrectly) {
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_,
@@ -82,17 +83,6 @@ TEST_F(BlimpLocationProviderTest, StopProviderRunsCorrectly) {
location_provider_->StopProvider();
}
-TEST_F(BlimpLocationProviderTest, StopProviderHandlesNullDelegate) {
- EXPECT_CALL(
- *delegate_,
- RequestAccuracy(GeolocationSetInterestLevelMessage::HIGH_ACCURACY))
- .Times(1);
-
- location_provider_->StartProvider(true);
- delegate_.reset();
- location_provider_->StopProvider();
-}
-
TEST_F(BlimpLocationProviderTest, LocationProviderDeleted) {
EXPECT_CALL(
*delegate_,
@@ -108,32 +98,22 @@ TEST_F(BlimpLocationProviderTest, LocationProviderDeleted) {
TEST_F(BlimpLocationProviderTest, OnPermissionGranted) {
EXPECT_CALL(*delegate_, OnPermissionGranted()).Times(1);
+ EXPECT_CALL(
+ *delegate_,
+ RequestAccuracy(GeolocationSetInterestLevelMessage::HIGH_ACCURACY))
+ .Times(1);
+ EXPECT_CALL(*delegate_,
+ RequestAccuracy(GeolocationSetInterestLevelMessage::NO_INTEREST))
+ .Times(1);
location_provider_->StartProvider(true);
location_provider_->OnPermissionGranted();
}
-TEST_F(BlimpLocationProviderTest, OnPermissionGrantedHandlesNullDelegate) {
Wez 2016/09/13 20:19:07 We still want these tests, don't we, even if we ar
CJ 2016/09/13 23:34:03 Done.
- EXPECT_CALL(*delegate_, OnPermissionGranted()).Times(0);
-
- location_provider_->StartProvider(true);
- delegate_.reset();
- location_provider_->OnPermissionGranted();
-}
-
TEST_F(BlimpLocationProviderTest, SetUpdateCallbackPropagatesCallback) {
base::Callback<void(const device::Geoposition&)> callback;
- EXPECT_CALL(*delegate_, SetUpdateCallback(_)).WillOnce(SaveArg<0>(&callback));
- EXPECT_CALL(*this, OnLocationUpdate(location_provider_.get(), _)).Times(1);
-
- location_provider_->SetUpdateCallback(mock_callback_);
- callback.Run(device::Geoposition());
-}
-
-TEST_F(BlimpLocationProviderTest, SetUpdateCallbackHandlesNullDelegate) {
- EXPECT_CALL(*delegate_, SetUpdateCallback(_)).Times(0);
+ EXPECT_CALL(*delegate_, SetUpdateCallback(_));
- delegate_.reset();
location_provider_->SetUpdateCallback(mock_callback_);
}

Powered by Google App Engine
This is Rietveld 408576698