| Index: mojo/shell/tests/connect/connect_unittest.cc
|
| diff --git a/mojo/shell/tests/connect/connect_unittest.cc b/mojo/shell/tests/connect/connect_unittest.cc
|
| index e28a63565845fa70b1ea168313a2b96cd8ae6570..38aee7a2e3d38003532e58fcf1fd8e48855f9088 100644
|
| --- a/mojo/shell/tests/connect/connect_unittest.cc
|
| +++ b/mojo/shell/tests/connect/connect_unittest.cc
|
| @@ -12,6 +12,7 @@
|
| #include "base/run_loop.h"
|
| #include "base/test/test_suite.h"
|
| #include "mojo/public/cpp/bindings/binding_set.h"
|
| +#include "mojo/shell/public/cpp/names.h"
|
| #include "mojo/shell/public/cpp/shell_test.h"
|
| #include "mojo/shell/public/interfaces/shell.mojom.h"
|
| #include "mojo/shell/tests/connect/connect_test.mojom.h"
|
| @@ -136,20 +137,18 @@ TEST_F(ConnectTest, Instances) {
|
| scoped_ptr<Connection> connection_a1 = ConnectTo(¶ms_a);
|
| scoped_ptr<Connection> connection_a2 = ConnectTo(¶ms_a);
|
| std::string instance_a1, instance_a2;
|
| - test::mojom::StandaloneAppPtr standalone_app_a1;
|
| + test::mojom::ConnectTestServicePtr service_a1;
|
| {
|
| - connection_a1->GetInterface(&standalone_app_a1);
|
| + connection_a1->GetInterface(&service_a1);
|
| base::RunLoop loop;
|
| - standalone_app_a1->GetInstance(
|
| - base::Bind(&ReceiveTitle, &instance_a1, &loop));
|
| + service_a1->GetInstance(base::Bind(&ReceiveTitle, &instance_a1, &loop));
|
| loop.Run();
|
| }
|
| - test::mojom::StandaloneAppPtr standalone_app_a2;
|
| + test::mojom::ConnectTestServicePtr service_a2;
|
| {
|
| - connection_a2->GetInterface(&standalone_app_a2);
|
| + connection_a2->GetInterface(&service_a2);
|
| base::RunLoop loop;
|
| - standalone_app_a2->GetInstance(
|
| - base::Bind(&ReceiveTitle, &instance_a2, &loop));
|
| + service_a2->GetInstance(base::Bind(&ReceiveTitle, &instance_a2, &loop));
|
| loop.Run();
|
| }
|
| EXPECT_EQ(instance_a1, instance_a2);
|
| @@ -158,18 +157,43 @@ TEST_F(ConnectTest, Instances) {
|
| Identity(kTestAppName, mojom::kInheritUserID, "B"));
|
| scoped_ptr<Connection> connection_b = ConnectTo(¶ms_b);
|
| std::string instance_b;
|
| - test::mojom::StandaloneAppPtr standalone_app_b;
|
| + test::mojom::ConnectTestServicePtr service_b;
|
| {
|
| - connection_b->GetInterface(&standalone_app_b);
|
| + connection_b->GetInterface(&service_b);
|
| base::RunLoop loop;
|
| - standalone_app_b->GetInstance(
|
| - base::Bind(&ReceiveTitle, &instance_b, &loop));
|
| + service_b->GetInstance(base::Bind(&ReceiveTitle, &instance_b, &loop));
|
| loop.Run();
|
| }
|
|
|
| EXPECT_NE(instance_a1, instance_b);
|
| }
|
|
|
| +// When both the unresolved and resolved instance names are their default
|
| +// values, the instance name from the unresolved name must be used.
|
| +// (The case where the instance names differ is covered by
|
| +// LifecycleTest.PackagedApp_CrashCrashesOtherProvidedApp).
|
| +TEST_F(ConnectTest, PreferUnresolvedDefaultInstanceName) {
|
| + // Connect to an app with no manifest-supplied instance name provided by a
|
| + // package, the instance name must be derived from the application instance
|
| + // name, not the package.
|
| + scoped_ptr<Connection> connection = connector()->Connect(kTestAppName);
|
| + {
|
| + base::RunLoop loop;
|
| + connection->AddConnectionCompletedClosure(base::Bind(&QuitLoop, &loop));
|
| + loop.Run();
|
| + }
|
| +
|
| + std::string instance;
|
| + {
|
| + test::mojom::ConnectTestServicePtr service;
|
| + connection->GetInterface(&service);
|
| + base::RunLoop loop;
|
| + service->GetInstance(base::Bind(&ReceiveTitle, &instance, &loop));
|
| + loop.Run();
|
| + }
|
| + EXPECT_EQ(GetNamePath(kTestAppName), instance);
|
| +}
|
| +
|
| // BlockedInterface should not be exposed to this application because it is not
|
| // in our CapabilityFilter whitelist.
|
| TEST_F(ConnectTest, BlockedInterface) {
|
|
|