Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Unified Diff: mojo/services/view_manager/view_manager_unittest.cc

Issue 405163002: Add EmbedRoot to ViewManagerService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/services/view_manager/view_manager_unittest.cc
diff --git a/mojo/services/view_manager/view_manager_unittest.cc b/mojo/services/view_manager/view_manager_unittest.cc
index 259079648a04cd2fecdf9a1febf9995da4a6539d..9ba52d82a1b11e79f35599bdfcaa4538fc383522 100644
--- a/mojo/services/view_manager/view_manager_unittest.cc
+++ b/mojo/services/view_manager/view_manager_unittest.cc
@@ -181,6 +181,15 @@ class ViewManagerProxy : public TestChangeTracker::Delegate {
RunMainLoop();
return result;
}
+ bool EmbedRoot(const char* url) {
+ changes_.clear();
+ base::AutoReset<bool> auto_reset(&in_embed_, true);
+ bool result = false;
+ view_manager_->EmbedRoot(url, base::Bind(&ViewManagerProxy::GotResult,
+ base::Unretained(this), &result));
+ RunMainLoop();
+ return result;
+ }
bool DeleteNode(Id node_id) {
changes_.clear();
bool result = false;
@@ -433,11 +442,14 @@ void EmbedRootCallback(bool* result_cache,
// Responsible for establishing the initial ViewManagerService connection.
// Blocks until result is determined.
bool EmbedRoot(ViewManagerInitService* view_manager_init,
- const std::string& url) {
+ const std::string& url,
+ size_t number_of_calls) {
bool result = false;
base::RunLoop run_loop;
- view_manager_init->EmbedRoot(url, base::Bind(&EmbedRootCallback,
- &result, &run_loop));
+ for (size_t i = 0; i < number_of_calls; ++i) {
+ view_manager_init->EmbedRoot(url, base::Bind(&EmbedRootCallback,
+ &result, &run_loop));
+ }
run_loop.Run();
return result;
}
@@ -464,7 +476,7 @@ class ViewManagerTest : public testing::Test {
test_helper_.service_manager()->ConnectToService(
GURL("mojo:mojo_view_manager"),
&view_manager_init_);
- ASSERT_TRUE(EmbedRoot(view_manager_init_.get(), kTestServiceURL));
+ ASSERT_TRUE(EmbedRoot(view_manager_init_.get(), kTestServiceURL, 1));
connection_ = ViewManagerProxy::WaitForInstance();
ASSERT_TRUE(connection_ != NULL);
@@ -520,12 +532,25 @@ class ViewManagerTest : public testing::Test {
DISALLOW_COPY_AND_ASSIGN(ViewManagerTest);
};
-TEST_F(ViewManagerTest, SecondEmbedRoot) {
- ASSERT_TRUE(EmbedRoot(view_manager_init_.get(), kTestServiceURL));
+TEST_F(ViewManagerTest, SecondEmbedRoot_InitService) {
+ ASSERT_TRUE(EmbedRoot(view_manager_init_.get(), kTestServiceURL, 1));
connection_->DoRunLoopUntilChangesCount(1);
EXPECT_EQ(kTestServiceURL, connection_->changes()[0].embed_url);
}
+TEST_F(ViewManagerTest, SecondEmbedRoot_Service) {
+ ASSERT_TRUE(connection_->EmbedRoot(kTestServiceURL));
+ connection_->DoRunLoopUntilChangesCount(1);
+ EXPECT_EQ(kTestServiceURL, connection_->changes()[0].embed_url);
+}
+
+TEST_F(ViewManagerTest, MultipleEmbedRootsBeforeWTHReady) {
+ ASSERT_TRUE(EmbedRoot(view_manager_init_.get(), kTestServiceURL, 2));
+ connection_->DoRunLoopUntilChangesCount(2);
+ EXPECT_EQ(kTestServiceURL, connection_->changes()[0].embed_url);
+ EXPECT_EQ(kTestServiceURL, connection_->changes()[1].embed_url);
+}
+
// Verifies client gets a valid id.
TEST_F(ViewManagerTest, ValidId) {
// TODO(beng): this should really have the URL of the application that

Powered by Google App Engine
This is Rietveld 408576698