• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2023 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.base.test.transit;
6 
7 import org.chromium.base.test.util.CallbackHelper;
8 
9 /** A {@link Condition} that checks if a single callback was received. */
10 public class CallbackCondition extends Condition {
11     private final CallbackHelper mCallbackHelper;
12     private final String mDescription;
13     private int mStartingCount;
14 
15     /**
16      * Use {@link #instrumentationThread(CallbackHelper, String) or {@link #uiThread(CallbackHelper, String)}
17      *
18      * @param callbackHelper the {@link CallbackHelper} to wait for.
19      * @param description the user-visible name for the Condition.
20      */
CallbackCondition( boolean runOnUiThread, CallbackHelper callbackHelper, String description)21     private CallbackCondition(
22             boolean runOnUiThread, CallbackHelper callbackHelper, String description) {
23         super(runOnUiThread);
24         mCallbackHelper = callbackHelper;
25         mDescription = description;
26     }
27 
instrumentationThread( CallbackHelper callbackHelper, String description)28     public static CallbackCondition instrumentationThread(
29             CallbackHelper callbackHelper, String description) {
30         return new CallbackCondition(/* runOnUiThread= */ false, callbackHelper, description);
31     }
32 
uiThread(CallbackHelper callbackHelper, String description)33     public static CallbackCondition uiThread(CallbackHelper callbackHelper, String description) {
34         return new CallbackCondition(/* runOnUiThread= */ true, callbackHelper, description);
35     }
36 
37     @Override
buildDescription()38     public String buildDescription() {
39         return mDescription;
40     }
41 
42     @Override
onStartMonitoring()43     public void onStartMonitoring() {
44         mStartingCount = mCallbackHelper.getCallCount();
45     }
46 
47     @Override
check()48     public boolean check() {
49         return mCallbackHelper.getCallCount() > mStartingCount;
50     }
51 }
52