#ifndef CONTENT_TEST_PPAPI_PPAPI_TEST_H_
#define CONTENT_TEST_PPAPI_PPAPI_TEST_H_
#include <string>
#include "content/public/test/content_browser_test.h"
#include "content/public/test/javascript_test_observer.h"
#include "url/gurl.h"
namespace base {
class CommandLine;
}
namespace content {
class PPAPITestMessageHandler : public content::TestMessageHandler {
public:
PPAPITestMessageHandler();
PPAPITestMessageHandler(const PPAPITestMessageHandler&) = delete;
PPAPITestMessageHandler& operator=(const PPAPITestMessageHandler&) = delete;
MessageResponse HandleMessage(const std::string& json) override;
void Reset() override;
const std::string& message() const {
return message_;
}
private:
std::string message_;
};
class PPAPITestBase : public ContentBrowserTest {
public:
PPAPITestBase();
void SetUpCommandLine(base::CommandLine* command_line) override;
virtual std::string BuildQuery(const std::string& base,
const std::string& test_case) = 0;
GURL GetTestFileUrl(const std::string& test_case);
virtual void RunTest(const std::string& test_case);
virtual void RunTestAndReload(const std::string& test_case);
protected:
void RunTestURL(const GURL& test_url);
};
class PPAPITest : public PPAPITestBase {
public:
PPAPITest();
void SetUpCommandLine(base::CommandLine* command_line) override;
std::string BuildQuery(const std::string& base,
const std::string& test_case) override;
protected:
bool in_process_;
};
class OutOfProcessPPAPITest : public PPAPITest {
public:
OutOfProcessPPAPITest();
void SetUp() override;
void TearDown() override;
};
}
#endif