Index: mojo/public/cpp/application/lib/application_test_base.cc |
diff --git a/mojo/public/cpp/application/lib/application_test_base.cc b/mojo/public/cpp/application/lib/application_test_base.cc |
index f316daab0a446120fb26348a09a6b51a93d12ed7..26811c46415057c798e94a442a795ca387acfc90 100644 |
--- a/mojo/public/cpp/application/lib/application_test_base.cc |
+++ b/mojo/public/cpp/application/lib/application_test_base.cc |
@@ -6,7 +6,6 @@ |
#include <utility> |
-#include "mojo/public/cpp/application/application_impl.h" |
#include "mojo/public/cpp/bindings/binding.h" |
#include "mojo/public/cpp/environment/environment.h" |
#include "mojo/public/cpp/system/message_pipe.h" |
@@ -77,10 +76,6 @@ class ShellAndArgumentGrabber : public Application { |
} // namespace |
-const Array<String>& Args() { |
- return g_args; |
-} |
- |
MojoResult RunAllTests(MojoHandle application_request_handle) { |
{ |
// This loop is used for init, and then destroyed before running tests. |
@@ -124,15 +119,9 @@ MojoResult RunAllTests(MojoHandle application_request_handle) { |
return (result == 0) ? MOJO_RESULT_OK : MOJO_RESULT_UNKNOWN; |
} |
-ApplicationTestBase::ApplicationTestBase() : application_impl_(nullptr) { |
-} |
- |
-ApplicationTestBase::~ApplicationTestBase() { |
-} |
+ApplicationTestBase::ApplicationTestBase() {} |
-ApplicationDelegate* ApplicationTestBase::GetApplicationDelegate() { |
- return &default_application_delegate_; |
-} |
+ApplicationTestBase::~ApplicationTestBase() {} |
void ApplicationTestBase::SetUp() { |
// A run loop is recommended for ApplicationImpl initialization and |
@@ -142,21 +131,22 @@ void ApplicationTestBase::SetUp() { |
MOJO_CHECK(g_application_request.is_pending()); |
MOJO_CHECK(g_shell); |
+ MOJO_CHECK(args_.empty()); |
- // New applications are constructed for each test to avoid persisting state. |
- application_impl_ = new ApplicationImpl(GetApplicationDelegate(), |
- g_application_request.Pass()); |
- |
- // Fake application initialization with the given command line arguments. |
- application_impl_->Initialize(g_shell.Pass(), g_args.Clone(), g_url); |
+ shell_ = g_shell.Pass(); |
+ for (size_t i = 0; i < g_args.size(); i++) |
+ args_.push_back(g_args[i]); |
} |
void ApplicationTestBase::TearDown() { |
- MOJO_CHECK(!g_application_request.is_pending()); |
MOJO_CHECK(!g_shell); |
- application_impl_->UnbindConnections(&g_application_request, &g_shell); |
- delete application_impl_; |
+ // TODO(vtl): The straightforward |g_shell = shell_.Pass();| causes tests to |
+ // hang. Presumably, it's because there are still requests to the shell |
+ // pending. :-( |
+ g_shell.Bind(shell_.PassInterfaceHandle()); |
+ args_.clear(); |
+ |
if (ShouldCreateDefaultRunLoop()) |
Environment::DestroyDefaultRunLoop(); |
} |