Commit afa7f664 authored by Alex Chau's avatar Alex Chau Committed by Commit Bot

Re-enable TwoClientSendTabToSelfSyncTest::SendTabToSelfReceivingDisabled

- Before SharingUseDeviceInfo was eanbled, first DeviceInfo change
  propagated already had send_tab_to_self disabled. Therefore
  SendTabToSelfMultiDeviceActiveChecker can safely assume DeviceInfo is
  updated just by checkint count > 1
- After SharingUseDeviceInfo is enabled, a Sharing related change is
  propagated before send_tab_to_self is isabled, causing the checker to
  stop waiting before disabling send_tab_to_self change is propagated
- Fixed by adding a speciifc checker to wait until send_tab_to_self is
  disabled

Bug: 1023950
Change-Id: Id13f3b4a29982c7fd1c1d3d9ae4344de34d8b395
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1914389
Commit-Queue: Alex Chau <alexchau@chromium.org>
Reviewed-by: default avatarMikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#715292}
parent 2cd157c6
......@@ -219,6 +219,28 @@ void SendTabToSelfMultiDeviceActiveChecker::OnDeviceInfoChange() {
CheckExitCondition();
}
SendTabToSelfDeviceDisabledChecker::SendTabToSelfDeviceDisabledChecker(
syncer::DeviceInfoTracker* tracker,
const std::string& device_guid)
: tracker_(tracker), device_guid_(device_guid) {
tracker_->AddObserver(this);
}
SendTabToSelfDeviceDisabledChecker::~SendTabToSelfDeviceDisabledChecker() {
tracker_->RemoveObserver(this);
}
bool SendTabToSelfDeviceDisabledChecker::IsExitConditionSatisfied(
std::ostream* os) {
*os << "Waiting for device to have send_tab_to_self disabled";
auto device_info = tracker_->GetDeviceInfo(device_guid_);
return device_info && !device_info->send_tab_to_self_receiving_enabled();
}
void SendTabToSelfDeviceDisabledChecker::OnDeviceInfoChange() {
CheckExitCondition();
}
SendTabToSelfUrlDeletedChecker::SendTabToSelfUrlDeletedChecker(
send_tab_to_self::SendTabToSelfSyncService* service,
const GURL& url)
......
......@@ -162,6 +162,26 @@ class SendTabToSelfMultiDeviceActiveChecker
DISALLOW_COPY_AND_ASSIGN(SendTabToSelfMultiDeviceActiveChecker);
};
// Class that allows waiting until device has send_tab_to_self disabled.
class SendTabToSelfDeviceDisabledChecker
: public StatusChangeChecker,
public syncer::DeviceInfoTracker::Observer {
public:
SendTabToSelfDeviceDisabledChecker(syncer::DeviceInfoTracker* tracker,
const std::string& device_guid);
~SendTabToSelfDeviceDisabledChecker() override;
// StatusChangeChecker implementation.
bool IsExitConditionSatisfied(std::ostream* os) override;
// DeviceInfoTracker::Observer implementation.
void OnDeviceInfoChange() override;
private:
syncer::DeviceInfoTracker* const tracker_;
std::string device_guid_;
};
class SendTabToSelfUrlDeletedChecker
: public StatusChangeChecker,
public send_tab_to_self::SendTabToSelfModelObserver {
......
......@@ -17,13 +17,13 @@
#include "components/send_tab_to_self/target_device_info.h"
#include "components/sync_device_info/device_info.h"
#include "components/sync_device_info/device_info_sync_service.h"
#include "components/sync_device_info/local_device_info_provider.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "url/gurl.h"
class TwoClientSendTabToSelfSyncTest : public SyncTest {
public:
TwoClientSendTabToSelfSyncTest() : SyncTest(TWO_CLIENT) {
}
TwoClientSendTabToSelfSyncTest() : SyncTest(TWO_CLIENT) {}
~TwoClientSendTabToSelfSyncTest() override {}
......@@ -155,22 +155,22 @@ IN_PROC_BROWSER_TEST_F(TwoClientSendTabToSelfSyncTest,
EXPECT_TRUE(device_infos[1]->send_tab_to_self_receiving_enabled());
}
// Flaky. https://crbug.com/1023950
IN_PROC_BROWSER_TEST_F(TwoClientSendTabToSelfSyncTest,
DISABLED_SendTabToSelfReceivingDisabled) {
SendTabToSelfReceivingDisabled) {
ASSERT_TRUE(SetupSync());
GetClient(0)->DisableSyncForType(syncer::UserSelectableType::kTabs);
DeviceInfoSyncServiceFactory::GetForProfile(GetProfile(1))
->GetDeviceInfoTracker()
->ForcePulseForTest();
DeviceInfoSyncServiceFactory::GetForProfile(GetProfile(0))
->GetDeviceInfoTracker()
->ForcePulseForTest();
ASSERT_TRUE(send_tab_to_self_helper::SendTabToSelfMultiDeviceActiveChecker(
ASSERT_TRUE(send_tab_to_self_helper::SendTabToSelfDeviceDisabledChecker(
DeviceInfoSyncServiceFactory::GetForProfile(GetProfile(1))
->GetDeviceInfoTracker())
->GetDeviceInfoTracker(),
DeviceInfoSyncServiceFactory::GetForProfile(GetProfile(0))
->GetLocalDeviceInfoProvider()
->GetLocalDeviceInfo()
->guid())
.Wait());
std::vector<std::unique_ptr<syncer::DeviceInfo>> device_infos =
......
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