Commit d3cda01a authored by Richard Knoll's avatar Richard Knoll Committed by Commit Bot

Show Click to Call dialog if sync is disabled.

We want to show the Click to Call dialog even if sync is disabled to
show the user some help text on how to enable sync.

Bug: 986273
Change-Id: I5f920822f21761ee5f167af0622b11304140cda4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713533Reviewed-by: default avatarMichael van Ouwerkerk <mvanouwerkerk@chromium.org>
Commit-Queue: Richard Knoll <knollr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#680351}
parent 01474615
...@@ -15,7 +15,6 @@ bool ShouldOfferClickToCall(content::BrowserContext* browser_context, ...@@ -15,7 +15,6 @@ bool ShouldOfferClickToCall(content::BrowserContext* browser_context,
SharingService* sharing_service = SharingService* sharing_service =
SharingServiceFactory::GetForBrowserContext(browser_context); SharingServiceFactory::GetForBrowserContext(browser_context);
return sharing_service && return sharing_service &&
(sharing_service->GetState() == SharingService::State::ACTIVE) &&
base::FeatureList::IsEnabled(kClickToCallUI) && base::FeatureList::IsEnabled(kClickToCallUI) &&
url.SchemeIs(url::kTelScheme) && !url.GetContent().empty(); url.SchemeIs(url::kTelScheme) && !url.GetContent().empty();
} }
...@@ -64,22 +64,24 @@ class ClickToCallUtilsTest : public testing::Test { ...@@ -64,22 +64,24 @@ class ClickToCallUtilsTest : public testing::Test {
void SetUp() override { void SetUp() override {
SharingServiceFactory::GetInstance()->SetTestingFactory( SharingServiceFactory::GetInstance()->SetTestingFactory(
&profile_, base::BindRepeating([](content::BrowserContext* context) &profile_, base::BindRepeating(&ClickToCallUtilsTest::CreateService,
-> std::unique_ptr<KeyedService> { base::Unretained(this)));
return std::make_unique<NiceMock<MockSharingService>>(
std::make_unique<SharingFCMHandler>(nullptr, nullptr));
}));
} }
protected: protected:
NiceMock<MockSharingService>* service() { std::unique_ptr<KeyedService> CreateService(
return static_cast<NiceMock<MockSharingService>*>( content::BrowserContext* context) {
SharingServiceFactory::GetForBrowserContext(&profile_)); if (!create_service_)
return nullptr;
return std::make_unique<NiceMock<MockSharingService>>(
std::make_unique<SharingFCMHandler>(nullptr, nullptr));
} }
base::test::ScopedFeatureList scoped_feature_list_; base::test::ScopedFeatureList scoped_feature_list_;
content::TestBrowserThreadBundle thread_bundle_; content::TestBrowserThreadBundle thread_bundle_;
TestingProfile profile_; TestingProfile profile_;
bool create_service_ = true;
DISALLOW_COPY_AND_ASSIGN(ClickToCallUtilsTest); DISALLOW_COPY_AND_ASSIGN(ClickToCallUtilsTest);
}; };
...@@ -88,17 +90,11 @@ class ClickToCallUtilsTest : public testing::Test { ...@@ -88,17 +90,11 @@ class ClickToCallUtilsTest : public testing::Test {
TEST_F(ClickToCallUtilsTest, NonTelProtocol_DoNotShowMenu) { TEST_F(ClickToCallUtilsTest, NonTelProtocol_DoNotShowMenu) {
scoped_feature_list_.InitAndEnableFeature(kClickToCallUI); scoped_feature_list_.InitAndEnableFeature(kClickToCallUI);
EXPECT_CALL(*service(), GetState())
.WillOnce(Return(SharingService::State::ACTIVE));
EXPECT_FALSE(ShouldOfferClickToCall(&profile_, GURL(kNonTelUrl))); EXPECT_FALSE(ShouldOfferClickToCall(&profile_, GURL(kNonTelUrl)));
} }
TEST_F(ClickToCallUtilsTest, UIFlagDisabled_DoNotShowMenu) { TEST_F(ClickToCallUtilsTest, UIFlagDisabled_DoNotShowMenu) {
scoped_feature_list_.InitAndDisableFeature(kClickToCallUI); scoped_feature_list_.InitAndDisableFeature(kClickToCallUI);
EXPECT_CALL(*service(), GetState())
.WillOnce(Return(SharingService::State::ACTIVE));
EXPECT_FALSE(ShouldOfferClickToCall(&profile_, GURL(kTelUrl))); EXPECT_FALSE(ShouldOfferClickToCall(&profile_, GURL(kTelUrl)));
} }
...@@ -112,16 +108,16 @@ TEST_F(ClickToCallUtilsTest, IncognitoProfile_DoNotShowMenu) { ...@@ -112,16 +108,16 @@ TEST_F(ClickToCallUtilsTest, IncognitoProfile_DoNotShowMenu) {
TEST_F(ClickToCallUtilsTest, EmptyTelProtocol_DoNotShowMenu) { TEST_F(ClickToCallUtilsTest, EmptyTelProtocol_DoNotShowMenu) {
scoped_feature_list_.InitAndEnableFeature(kClickToCallUI); scoped_feature_list_.InitAndEnableFeature(kClickToCallUI);
EXPECT_CALL(*service(), GetState())
.WillOnce(Return(SharingService::State::ACTIVE));
EXPECT_FALSE(ShouldOfferClickToCall(&profile_, GURL(kEmptyTelUrl))); EXPECT_FALSE(ShouldOfferClickToCall(&profile_, GURL(kEmptyTelUrl)));
} }
TEST_F(ClickToCallUtilsTest, TelProtocol_ShowMenu) { TEST_F(ClickToCallUtilsTest, TelProtocol_ShowMenu) {
scoped_feature_list_.InitAndEnableFeature(kClickToCallUI); scoped_feature_list_.InitAndEnableFeature(kClickToCallUI);
EXPECT_CALL(*service(), GetState())
.WillOnce(Return(SharingService::State::ACTIVE));
EXPECT_TRUE(ShouldOfferClickToCall(&profile_, GURL(kTelUrl))); EXPECT_TRUE(ShouldOfferClickToCall(&profile_, GURL(kTelUrl)));
} }
TEST_F(ClickToCallUtilsTest, NoSharingService_DoNotShowMenu) {
scoped_feature_list_.InitAndEnableFeature(kClickToCallUI);
create_service_ = false;
EXPECT_FALSE(ShouldOfferClickToCall(&profile_, GURL(kTelUrl)));
}
...@@ -93,6 +93,9 @@ SharingService::~SharingService() { ...@@ -93,6 +93,9 @@ SharingService::~SharingService() {
std::vector<SharingDeviceInfo> SharingService::GetDeviceCandidates( std::vector<SharingDeviceInfo> SharingService::GetDeviceCandidates(
int required_capabilities) const { int required_capabilities) const {
if (!IsSyncEnabled())
return std::vector<SharingDeviceInfo>();
std::vector<std::unique_ptr<syncer::DeviceInfo>> all_devices = std::vector<std::unique_ptr<syncer::DeviceInfo>> all_devices =
device_info_tracker_->GetAllDeviceInfo(); device_info_tracker_->GetAllDeviceInfo();
std::map<std::string, SharingSyncPreference::Device> synced_devices = std::map<std::string, SharingSyncPreference::Device> synced_devices =
......
...@@ -591,3 +591,20 @@ TEST_F(SharingServiceTest, StartListeningToFCMAtConstructor) { ...@@ -591,3 +591,20 @@ TEST_F(SharingServiceTest, StartListeningToFCMAtConstructor) {
EXPECT_CALL(*fcm_handler_, StartListening()).Times(1); EXPECT_CALL(*fcm_handler_, StartListening()).Times(1);
GetSharingService(); GetSharingService();
} }
TEST_F(SharingServiceTest, NoDevicesWhenSyncDisabled) {
scoped_feature_list_.InitAndEnableFeature(kSharingDeviceRegistration);
test_sync_service_.SetTransportState(
syncer::SyncService::TransportState::DISABLED);
std::string id = base::GenerateGUID();
std::unique_ptr<syncer::DeviceInfo> device_info =
CreateFakeDeviceInfo(id, kDeviceName);
device_info_tracker_.Add(device_info.get());
sync_prefs_->SetSyncDevice(id, CreateFakeSyncDevice());
std::vector<SharingDeviceInfo> candidates =
GetSharingService()->GetDeviceCandidates(kNoCapabilities);
ASSERT_EQ(0u, candidates.size());
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment