| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BASE_TEST_IOS_WAIT_UTIL_H_ |
| #define BASE_TEST_IOS_WAIT_UTIL_H_ |
| |
| #import <Foundation/Foundation.h> |
| |
| #include "base/ios/block_types.h" |
| #include "base/time/time.h" |
| |
| namespace base { |
| namespace test { |
| namespace ios { |
| |
| // Constant for UI wait loop in seconds. |
| extern const NSTimeInterval kSpinDelaySeconds; |
| |
| // Constant for timeout in seconds while waiting for UI element. |
| extern const NSTimeInterval kWaitForUIElementTimeout; |
| |
| // Constant for timeout in seconds while waiting for JavaScript completion. |
| extern const NSTimeInterval kWaitForJSCompletionTimeout; |
| |
| // Constant for timeout in seconds while waiting for a download to complete. |
| extern const NSTimeInterval kWaitForDownloadTimeout; |
| |
| // Constant for timeout in seconds while waiting for a pageload to complete. |
| extern const NSTimeInterval kWaitForPageLoadTimeout; |
| |
| // Constant for timeout in seconds while waiting for a generic action to |
| // complete. |
| extern const NSTimeInterval kWaitForActionTimeout; |
| |
| // Constant for timeout in seconds while waiting for cookies operations to |
| // complete. |
| extern const NSTimeInterval kWaitForCookiesTimeout; |
| |
| // Constant for timeout in seconds while waiting for a file operation to |
| // complete. |
| extern const NSTimeInterval kWaitForFileOperationTimeout; |
| |
| // Returns true when condition() becomes true, otherwise returns false after |
| // |timeout|. |
| bool WaitUntilConditionOrTimeout(NSTimeInterval timeout, |
| ConditionBlock condition) WARN_UNUSED_RESULT; |
| |
| // Runs |action| if non-nil. Then, until either |condition| is true or |timeout| |
| // expires, repetitively runs the current NSRunLoop and the current MessageLoop |
| // (if |run_message_loop| is true). |condition| may be nil if there is no |
| // condition to wait for; the NSRunLoop and current MessageLoop will be run run |
| // until |timeout| expires. DCHECKs if |condition| is non-nil and |timeout| |
| // expires before |condition| becomes true. If |timeout| is zero, a reasonable |
| // default is used. Returns the time spent in the function. |
| // DEPRECATED - Do not use in new code. http://crbug.com/784735 |
| TimeDelta TimeUntilCondition(ProceduralBlock action, |
| ConditionBlock condition, |
| bool run_message_loop, |
| TimeDelta timeout); |
| |
| // Same as TimeUntilCondition, but doesn't run an action. |
| // DEPRECATED - Do not use in new code. http://crbug.com/784735 |
| void WaitUntilCondition(ConditionBlock condition, |
| bool run_message_loop, |
| TimeDelta timeout); |
| // DEPRECATED - Do not use in new code. http://crbug.com/784735 |
| void WaitUntilCondition(ConditionBlock condition); |
| |
| // Lets the run loop of the current thread process other messages |
| // within the given maximum delay. This method may return before max_delay |
| // elapsed. |
| void SpinRunLoopWithMaxDelay(TimeDelta max_delay); |
| |
| // Lets the run loop of the current thread process other messages |
| // within the given minimum delay. This method returns after |min_delay| |
| // elapsed. |
| void SpinRunLoopWithMinDelay(TimeDelta min_delay); |
| |
| } // namespace ios |
| } // namespace test |
| } // namespace base |
| |
| #endif // BASE_TEST_IOS_WAIT_UTIL_H_ |