summaryrefslogtreecommitdiffstats
path: root/mojo/public/cpp/application/application_test_base.h
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/public/cpp/application/application_test_base.h')
-rw-r--r--mojo/public/cpp/application/application_test_base.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/mojo/public/cpp/application/application_test_base.h b/mojo/public/cpp/application/application_test_base.h
index 2f400a4..04580c7 100644
--- a/mojo/public/cpp/application/application_test_base.h
+++ b/mojo/public/cpp/application/application_test_base.h
@@ -5,6 +5,7 @@
#ifndef MOJO_PUBLIC_CPP_APPLICATION_APPLICATION_TEST_BASE_H_
#define MOJO_PUBLIC_CPP_APPLICATION_APPLICATION_TEST_BASE_H_
+#include "mojo/public/cpp/application/application_delegate.h"
#include "mojo/public/cpp/bindings/array.h"
#include "mojo/public/cpp/bindings/string.h"
#include "mojo/public/cpp/system/macros.h"
@@ -12,7 +13,6 @@
namespace mojo {
-class ApplicationDelegate;
class ApplicationImpl;
namespace test {
@@ -21,28 +21,35 @@ namespace test {
ScopedMessagePipeHandle PassShellHandle();
void SetShellHandle(ScopedMessagePipeHandle handle);
+// Access the command line arguments passed to the application test.
+const Array<String>& Args();
+void InitializeArgs(int argc, std::vector<const char*> argv);
+
// A GTEST base class for application testing executed in mojo_shell.
class ApplicationTestBase : public testing::Test {
public:
- explicit ApplicationTestBase(Array<String> args);
+ ApplicationTestBase();
~ApplicationTestBase() override;
protected:
ApplicationImpl* application_impl() { return application_impl_; }
// Get the ApplicationDelegate for the application to be tested.
- virtual ApplicationDelegate* GetApplicationDelegate() = 0;
+ virtual ApplicationDelegate* GetApplicationDelegate();
+
+ // A testing::Test::SetUp helper to override the application command
+ // line arguments.
+ void SetUpWithArgs(const Array<String>& args);
// testing::Test:
void SetUp() override;
void TearDown() override;
private:
- // The command line arguments supplied to each test application instance.
- Array<String> args_;
-
// The application implementation instance, reconstructed for each test.
ApplicationImpl* application_impl_;
+ // The application delegate used if GetApplicationDelegate is not overridden.
+ ApplicationDelegate default_application_delegate_;
MOJO_DISALLOW_COPY_AND_ASSIGN(ApplicationTestBase);
};