| // Copyright 2016 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_ANDROID_JAVA_HANDLER_THREAD_FOR_TESTING_H_ | 
 | #define BASE_ANDROID_JAVA_HANDLER_THREAD_FOR_TESTING_H_ | 
 |  | 
 | #include <jni.h> | 
 |  | 
 | #include <memory> | 
 |  | 
 | #include "base/android/scoped_java_ref.h" | 
 |  | 
 | namespace base { | 
 |  | 
 | class WaitableEvent; | 
 |  | 
 | namespace android { | 
 |  | 
 | class JavaHandlerThread; | 
 |  | 
 | // Test-only helpers for working with JavaHandlerThread. | 
 | class JavaHandlerThreadHelpers { | 
 |  public: | 
 |   // Create the Java peer first and test that it works before connecting to the | 
 |   // native object. | 
 |   static std::unique_ptr<JavaHandlerThread> CreateJavaFirst(); | 
 |  | 
 |   static void ThrowExceptionAndAbort(WaitableEvent* event); | 
 |  | 
 |   static bool IsExceptionTestException( | 
 |       ScopedJavaLocalRef<jthrowable> exception); | 
 |  | 
 |  private: | 
 |   JavaHandlerThreadHelpers() = default; | 
 |   ~JavaHandlerThreadHelpers() = default; | 
 | }; | 
 |  | 
 | }  // namespace android | 
 | }  // namespace base | 
 |  | 
 | #endif  // BASE_ANDROID_JAVA_HANDLER_THREAD_FOR_TESTING_H_ |