summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchrisgao@chromium.org <chrisgao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-08 01:58:50 +0000
committerchrisgao@chromium.org <chrisgao@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-08 01:58:50 +0000
commit8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6 (patch)
tree102a77312bcb1aa2acd9383d46738409d5e27a3b
parentcb4efe3022284c8b24af7ec8478c1e91badd0fb7 (diff)
downloadchromium_src-8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6.zip
chromium_src-8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6.tar.gz
chromium_src-8ad2a2bfbcda2cb07af5a117f5caa0bfe95414b6.tar.bz2
[chromedriver] Fix SyncWebSocketImplTest.Reconnect in pyauto bots.
One purpose of this test is to check if the message queue of SyncWebSocket is cleared after reconnection. The failure is caused by stopping the server right after pushing request message to SyncWebSocket. The server has no time to response or even might not receive the request yet. NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12586002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186847 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
index d185008..23ed385 100644
--- a/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
+++ b/chrome/test/chromedriver/net/sync_websocket_impl_unittest.cc
@@ -9,7 +9,9 @@
#include "base/message_loop.h"
#include "base/message_loop_proxy.h"
#include "base/single_thread_task_runner.h"
+#include "base/threading/platform_thread.h"
#include "base/threading/thread.h"
+#include "base/time.h"
#include "chrome/test/chromedriver/net/sync_websocket_impl.h"
#include "chrome/test/chromedriver/net/test_http_server.h"
#include "chrome/test/chromedriver/net/url_request_context_getter.h"
@@ -114,6 +116,14 @@ TEST_F(SyncWebSocketImplTest, Reconnect) {
SyncWebSocketImpl sock(context_getter_);
ASSERT_TRUE(sock.Connect(server_.web_socket_url()));
ASSERT_TRUE(sock.Send("1"));
+ // Wait for SyncWebSocket to receive the response from the server.
+ base::Time deadline = base::Time::Now() + base::TimeDelta::FromSeconds(20);
+ while (base::Time::Now() < deadline) {
+ if (sock.IsConnected() && !sock.HasNextMessage())
+ base::PlatformThread::Sleep(base::TimeDelta::FromMilliseconds(10));
+ else
+ break;
+ }
server_.Stop();
ASSERT_FALSE(sock.Send("2"));
ASSERT_FALSE(sock.IsConnected());