summaryrefslogtreecommitdiffstats
path: root/mojo/shell/tests/connect/connect_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/shell/tests/connect/connect_unittest.cc')
-rw-r--r--mojo/shell/tests/connect/connect_unittest.cc19
1 files changed, 12 insertions, 7 deletions
diff --git a/mojo/shell/tests/connect/connect_unittest.cc b/mojo/shell/tests/connect/connect_unittest.cc
index 9cfb0a7..355f6bac 100644
--- a/mojo/shell/tests/connect/connect_unittest.cc
+++ b/mojo/shell/tests/connect/connect_unittest.cc
@@ -30,6 +30,7 @@ const char kTestAppName[] = "mojo:connect_test_app";
const char kTestAppAName[] = "mojo:connect_test_a";
const char kTestAppBName[] = "mojo:connect_test_b";
const char kTestClassAppName[] = "mojo:connect_test_class_app";
+const char kTestSingletonAppName[] = "mojo:connect_test_singleton_app";
const char kTestDriverName[] = "exe:connect_test_driver";
void ReceiveOneString(std::string* out_string,
@@ -355,26 +356,30 @@ TEST_F(ConnectTest, ConnectToClientProcess_Blocked) {
// Verifies that a client with the "all_users" capability class can receive
// connections from clients run as other users.
TEST_F(ConnectTest, AllUsersSingleton) {
- // Connect to an instance with an explicitly different user_id.
+ // Connect to an instance with an explicitly different user_id. This supplied
+ // user id should be ignored by the shell (which will generate its own
+ // synthetic user id for all-user singleton instances).
const std::string singleton_userid = base::GenerateGUID();
- Connector::ConnectParams params(Identity(kTestAppName, singleton_userid));
+ Connector::ConnectParams params(
+ Identity(kTestSingletonAppName, singleton_userid));
scoped_ptr<Connection> connection = connector()->Connect(&params);
{
base::RunLoop loop;
connection->AddConnectionCompletedClosure(base::Bind(&QuitLoop, &loop));
loop.Run();
- EXPECT_EQ(connection->GetRemoteIdentity().user_id(), singleton_userid);
+ EXPECT_NE(connection->GetRemoteIdentity().user_id(), singleton_userid);
}
- // This connects using the current client's user_id, but should be bound to
- // the instance run as |singleton_userid|.
+ // This connects using the current client's user_id. It should be bound to the
+ // same service started above, with the same shell-generated user id.
scoped_ptr<Connection> inherit_connection =
- connector()->Connect(kTestAppName);
+ connector()->Connect(kTestSingletonAppName);
{
base::RunLoop loop;
inherit_connection->AddConnectionCompletedClosure(
base::Bind(&QuitLoop, &loop));
loop.Run();
- EXPECT_EQ(connection->GetRemoteIdentity().user_id(), singleton_userid);
+ EXPECT_EQ(inherit_connection->GetRemoteIdentity().user_id(),
+ connection->GetRemoteIdentity().user_id());
}
}