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

Unified Diff: chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc

Issue 15772009: [chromedriver] Fix race where we might not wait for page load after navigating. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 7 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: chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc
diff --git a/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc b/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc
index 9d1f475aeea396795e78a3920a478926b104e091..708ca501f904315e4039e800fd9e7898c9f0ce1e 100644
--- a/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc
+++ b/chrome/test/chromedriver/chrome/devtools_client_impl_unittest.cc
@@ -1072,3 +1072,54 @@ TEST(DevToolsClientImpl, CorrectlyDeterminesWhichIsBlockedByAlert) {
msgs.push_back("{\"id\": 6, \"result\": {}}");
ASSERT_EQ(kOk, client.HandleReceivedEvents().code());
}
+
+namespace {
+
+class MockCommandListener : public DevToolsEventListener {
+ public:
+ MockCommandListener() {}
+ virtual ~MockCommandListener() {}
+
+ virtual void OnEvent(DevToolsClient* client,
+ const std::string& method,
+ const base::DictionaryValue& params) OVERRIDE {
+ msgs_.push_back(method);
+ }
+
+ virtual Status OnCommandSuccess(DevToolsClient* client,
+ const std::string& method) OVERRIDE {
+ msgs_.push_back(method);
+ if (!callback_.is_null())
+ callback_.Run(client);
+ return Status(kOk);
+ }
+
+ base::Callback<void(DevToolsClient*)> callback_;
+ std::list<std::string> msgs_;
+};
+
+void HandleReceivedEvents(DevToolsClient* client) {
+ EXPECT_EQ(kOk, client->HandleReceivedEvents().code());
+}
+
+} // namespace
+
+TEST(DevToolsClientImpl, ReceivesCommandResponse) {
+ std::list<std::string> msgs;
+ SyncWebSocketFactory factory = base::Bind(&CreateMockSyncWebSocket6, &msgs);
+ Logger logger;
+ DevToolsClientImpl client(
+ factory, "http://url", "id", base::Bind(&CloserFunc), &logger);
+ MockCommandListener listener1;
+ listener1.callback_ = base::Bind(&HandleReceivedEvents);
+ MockCommandListener listener2;
+ client.AddListener(&listener1);
+ client.AddListener(&listener2);
+ msgs.push_back("{\"id\": 1, \"result\": {}}");
+ msgs.push_back("{\"method\": \"event\", \"params\": {}}");
+ base::DictionaryValue params;
+ ASSERT_EQ(kOk, client.SendCommand("cmd", params).code());
+ ASSERT_EQ(2u, listener2.msgs_.size());
+ ASSERT_EQ("cmd", listener2.msgs_.front());
+ ASSERT_EQ("event", listener2.msgs_.back());
+}
« no previous file with comments | « chrome/test/chromedriver/chrome/devtools_client_impl.cc ('k') | chrome/test/chromedriver/chrome/devtools_event_listener.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698