diff options
Diffstat (limited to 'mojo/public/cpp/application/application_test_base.h')
-rw-r--r-- | mojo/public/cpp/application/application_test_base.h | 19 |
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); }; |