1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file. 4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/test/integration/sync_integration_test_util.h" 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/profile_sync_service.h" 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/test/integration/single_client_status_change_checker.h" 9effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/sync/test/integration/updated_progress_marker_checker.h" 10effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace sync_integration_test_util { 12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass PassphraseRequiredChecker : public SingleClientStatusChangeChecker { 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch public: 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch explicit PassphraseRequiredChecker(ProfileSyncService* service) 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch : SingleClientStatusChangeChecker(service) {} 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual bool IsExitConditionSatisfied() OVERRIDE { 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return service()->IsPassphraseRequired(); 20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 21effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 22effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual std::string GetDebugMessage() const OVERRIDE { 23effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return "Passhrase Required"; 24effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 25effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}; 26effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 27effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochclass PassphraseAcceptedChecker : public SingleClientStatusChangeChecker { 28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch public: 29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch explicit PassphraseAcceptedChecker(ProfileSyncService* service) 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch : SingleClientStatusChangeChecker(service) {} 31effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual bool IsExitConditionSatisfied() OVERRIDE { 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return !service()->IsPassphraseRequired() && 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch service()->IsUsingSecondaryPassphrase(); 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch virtual std::string GetDebugMessage() const OVERRIDE { 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return "Passhrase Accepted"; 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}; 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochbool AwaitPassphraseRequired(ProfileSyncService* service) { 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch PassphraseRequiredChecker checker(service); 44e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch checker.Wait(); 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return !checker.TimedOut(); 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochbool AwaitPassphraseAccepted(ProfileSyncService* service) { 49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch PassphraseAcceptedChecker checker(service); 50e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch checker.Wait(); 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return !checker.TimedOut(); 52effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 53effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 54effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochbool AwaitCommitActivityCompletion(ProfileSyncService* service) { 55effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch UpdatedProgressMarkerChecker checker(service); 56e5d81f57cb97b3b6b7fccc9c5610d21eb81db09dBen Murdoch checker.Wait(); 57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return !checker.TimedOut(); 58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace sync_integration_test_util 61