Index: content/browser/geolocation/win7_location_provider_unittest_win.cc |
diff --git a/content/browser/geolocation/win7_location_provider_unittest_win.cc b/content/browser/geolocation/win7_location_provider_unittest_win.cc |
deleted file mode 100644 |
index d680d0e6e304c8b86bbceb109f049c3328e5a90d..0000000000000000000000000000000000000000 |
--- a/content/browser/geolocation/win7_location_provider_unittest_win.cc |
+++ /dev/null |
@@ -1,147 +0,0 @@ |
-// Copyright (c) 2012 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 "base/bind.h" |
-#include "base/message_loop/message_loop.h" |
-#include "content/browser/geolocation/win7_location_api_win.h" |
-#include "content/browser/geolocation/win7_location_provider_win.h" |
-#include "content/public/common/geoposition.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using testing::_; |
-using testing::AtLeast; |
-using testing::DoDefault; |
-using testing::Invoke; |
-using testing::Return; |
- |
-namespace content { |
- |
-class MockWin7LocationApi : public Win7LocationApi { |
- public: |
- static MockWin7LocationApi* CreateMock() { |
- return new MockWin7LocationApi(); |
- } |
- |
- // Used to signal when the destructor is called. |
- MOCK_METHOD0(Die, void()); |
- // Win7LocationApi |
- MOCK_METHOD1(GetPosition, void(Geoposition*)); |
- MOCK_METHOD1(SetHighAccuracy, bool(bool)); |
- |
- virtual ~MockWin7LocationApi() { |
- Die(); |
- } |
- |
- void GetPositionValid(Geoposition* position) { |
- position->latitude = 4.5; |
- position->longitude = -34.1; |
- position->accuracy = 0.5; |
- position->timestamp = base::Time::FromDoubleT(200); |
- position->error_code = Geoposition::ERROR_CODE_NONE; |
- } |
- void GetPositionInvalid(Geoposition* position) { |
- position->latitude = 4.5; |
- position->longitude = -340000.1; |
- position->accuracy = 0.5; |
- position->timestamp = base::Time::FromDoubleT(200); |
- position->error_code = Geoposition::ERROR_CODE_POSITION_UNAVAILABLE; |
- } |
- |
- private: |
- MockWin7LocationApi() { |
- ON_CALL(*this, GetPosition(_)) |
- .WillByDefault(Invoke(this, |
- &MockWin7LocationApi::GetPositionValid)); |
- ON_CALL(*this, SetHighAccuracy(true)) |
- .WillByDefault(Return(true)); |
- ON_CALL(*this, SetHighAccuracy(false)) |
- .WillByDefault(Return(false)); |
- } |
-}; |
- |
-class LocationProviderListenerLoopQuitter { |
- public: |
- explicit LocationProviderListenerLoopQuitter(base::MessageLoop* message_loop) |
- : message_loop_to_quit_(message_loop) { |
- CHECK(message_loop_to_quit_ != NULL); |
- } |
- |
- void LocationUpdateAvailable(const LocationProvider* provider, |
- const Geoposition& position) { |
- EXPECT_EQ(base::MessageLoop::current(), message_loop_to_quit_); |
- provider_ = provider; |
- message_loop_to_quit_->Quit(); |
- } |
- |
- base::MessageLoop* message_loop_to_quit_; |
- const LocationProvider* provider_; |
-}; |
- |
-class GeolocationProviderWin7Tests : public testing::Test { |
- public: |
- GeolocationProviderWin7Tests(): location_listener_(&main_message_loop_) { |
- } |
- |
- virtual void SetUp() { |
- api_ = MockWin7LocationApi::CreateMock(); |
- provider_ = new Win7LocationProvider(api_); |
- provider_->SetUpdateCallback(base::Bind( |
- &LocationProviderListenerLoopQuitter::LocationUpdateAvailable, |
- base::Unretained(&location_listener_))); |
- } |
- virtual void TearDown() { |
- provider_->StopProvider(); |
- delete provider_; |
- main_message_loop_.RunUntilIdle(); |
- } |
- |
- protected: |
- Win7LocationProvider* provider() { |
- return static_cast<Win7LocationProvider*>(provider_); |
- } |
- |
- MockWin7LocationApi* api_; |
- LocationProviderListenerLoopQuitter location_listener_; |
- base::MessageLoop main_message_loop_; |
- LocationProvider* provider_; |
-}; |
- |
-TEST_F(GeolocationProviderWin7Tests, StartStop) { |
- EXPECT_CALL(*api_, SetHighAccuracy(true)) |
- .WillOnce(Return(true)); |
- EXPECT_TRUE(provider()->StartProvider(true)); |
- provider()->StopProvider(); |
- EXPECT_CALL(*api_, SetHighAccuracy(false)) |
- .WillOnce(Return(true)); |
- EXPECT_TRUE(provider()->StartProvider(false)); |
-} |
- |
-TEST_F(GeolocationProviderWin7Tests, GetValidPosition) { |
- EXPECT_CALL(*api_, GetPosition(_)) |
- .Times(AtLeast(1)); |
- EXPECT_CALL(*api_, SetHighAccuracy(true)) |
- .WillOnce(Return(true)); |
- EXPECT_TRUE(provider()->StartProvider(true)); |
- main_message_loop_.Run(); |
- Geoposition position; |
- provider()->GetPosition(&position); |
- EXPECT_TRUE(position.Validate()); |
-} |
- |
-TEST_F(GeolocationProviderWin7Tests, GetInvalidPosition) { |
- EXPECT_CALL(*api_, GetPosition(_)) |
- .Times(AtLeast(1)) |
- .WillRepeatedly(Invoke(api_, |
- &MockWin7LocationApi::GetPositionInvalid)); |
- EXPECT_CALL(*api_, SetHighAccuracy(true)) |
- .WillOnce(Return(true)); |
- EXPECT_TRUE(provider()->StartProvider(true)); |
- main_message_loop_.Run(); |
- Geoposition position; |
- provider()->GetPosition(&position); |
- EXPECT_FALSE(position.Validate()); |
-} |
- |
-} // namespace content |