1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CHROME_BROWSER_SYNC_TEST_INTEGRATION_UPDATED_PROGRESS_MARKER_CHECKER_H_ 6 #define CHROME_BROWSER_SYNC_TEST_INTEGRATION_UPDATED_PROGRESS_MARKER_CHECKER_H_ 7 8 #include "chrome/browser/sync/test/integration/single_client_status_change_checker.h" 9 10 // Waits until the latest progress markers are available. 11 // 12 // There are several limitations to this checker: 13 // - It assumes that this client is the only one committing at this time. 14 // - It relies on the test-only 'self-notify' to trigger an extra GetUpdate 15 // cycle after every commit. 16 // - It's flaky. In some rare cases, the IsExitConditionSatisifed() call could 17 // return a false positive. See comments in the .cc file for details. 18 // 19 // Because of these limitations, we intend to eventually migrate all tests off 20 // of this checker. Please do not use it in new tests. 21 class UpdatedProgressMarkerChecker : public SingleClientStatusChangeChecker { 22 public: 23 explicit UpdatedProgressMarkerChecker(ProfileSyncService* service); 24 virtual ~UpdatedProgressMarkerChecker(); 25 26 virtual bool IsExitConditionSatisfied() OVERRIDE; 27 virtual std::string GetDebugMessage() const OVERRIDE; 28 }; 29 30 #endif // CHROME_BROWSER_SYNC_TEST_INTEGRATION_UPDATED_PROGRESS_MARKER_CHECKER_H_ 31