// 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"
#include "starboard/types.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_
