#ifndef MOJO_PUBLIC_CPP_BINDINGS_TESTS_BINDINGS_TEST_BASE_H_
#define MOJO_PUBLIC_CPP_BINDINGS_TESTS_BINDINGS_TEST_BASE_H_
#include "base/test/task_environment.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace mojo {
enum class BindingsTestSerializationMode {
kSerializeBeforeSend,
kSerializeBeforeDispatch,
kNeverSerialize,
};
class BindingsTestBase
: public testing::Test,
public testing::WithParamInterface<BindingsTestSerializationMode> {
public:
BindingsTestBase();
~BindingsTestBase();
static void SetupSerializationBehavior(BindingsTestSerializationMode mode);
protected:
base::test::TaskEnvironment* task_environment() { return &task_environment_; }
private:
base::test::TaskEnvironment task_environment_;
};
}
#define INSTANTIATE_MOJO_BINDINGS_TEST_SUITE_P(fixture) \
INSTANTIATE_TEST_SUITE_P( \
, fixture, \
testing::Values( \
mojo::BindingsTestSerializationMode::kSerializeBeforeSend, \
mojo::BindingsTestSerializationMode::kSerializeBeforeDispatch, \
mojo::BindingsTestSerializationMode::kNeverSerialize))
#endif