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

Unified Diff: chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc

Issue 287643002: DevTools: Partially redesigned DevToolsAndroidBridge and AndroidDeviceManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Little simplification Created 6 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/browser/devtools/device/adb/adb_client_socket_browsertest.cc
diff --git a/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc b/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc
index 1a3fdef10ff6a214501df75c895fcab81b6417be..3caf4bd27765a05d625fb54fef701b45a0f6e331 100644
--- a/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc
+++ b/chrome/browser/devtools/device/adb/adb_client_socket_browsertest.cc
@@ -10,6 +10,7 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/test/test_utils.h"
+#include "net/base/net_errors.h"
using content::BrowserThread;
@@ -23,6 +24,16 @@ FindBrowserByDisplayName(DevToolsAndroidBridge::RemoteBrowsers browsers,
return NULL;
}
+static void ResponseReceived(int result, const std::string& response) {
+ ASSERT_EQ(net::OK, result);
+ base::MessageLoop::current()->QuitWhenIdle();
+}
+
+static void ConnectedReceived(bool expected, bool received) {
+ ASSERT_EQ(expected, received);
+ base::MessageLoop::current()->QuitWhenIdle();
+}
+
class AdbClientSocketTest : public InProcessBrowserTest,
public DevToolsAndroidBridge::DeviceListListener {
@@ -117,6 +128,29 @@ class AdbClientSocketTest : public InProcessBrowserTest,
STLDeleteElements(&webview_pages);
}
+ void CheckConnection() {
+ ASSERT_EQ(2U, devices_.size());
+ scoped_refptr<DevToolsAndroidBridge::RemoteDevice> connected =
+ devices_[0]->is_connected() ? devices_[0] : devices_[1];
+ const DevToolsAndroidBridge::RemoteBrowsers& browsers =
+ connected->browsers();
+ scoped_refptr<DevToolsAndroidBridge::RemoteBrowser> chrome =
+ FindBrowserByDisplayName(browsers, "Chrome");
+ ASSERT_TRUE(chrome);
+ chrome->SendJsonRequest("GET /json/version HTTP/1.1\r\n\r\n",
Vladislav Kaznacheev 2014/05/19 10:32:11 Heads up: you will need to rebase because https://
vkuzkokov 2014/05/20 12:34:29 Done.
+ base::Bind(&ResponseReceived));
+ }
+
+ void CheckCleanup() {
+ android_bridge_->IsConnectedForTest("01498B321301A00A",
+ base::Bind(&ConnectedReceived, true));
+ content::RunMessageLoop();
+ devices_.clear();
+ android_bridge_->IsConnectedForTest("01498B321301A00A",
+ base::Bind(&ConnectedReceived, false));
+ content::RunMessageLoop();
+ }
+
private:
scoped_refptr<DevToolsAndroidBridge> android_bridge_;
DevToolsAndroidBridge::RemoteDevices devices_;
@@ -129,3 +163,15 @@ IN_PROC_BROWSER_TEST_F(AdbClientSocketTest, TestAdbClientSocket) {
CheckDevices();
StopMockAdbServer();
}
+
+// DevToolsAndroidBridge used to free connected devices when there are no
+// listeners. We test that it's no longer the case.
+IN_PROC_BROWSER_TEST_F(AdbClientSocketTest, TestRemoteConnection) {
+ StartMockAdbServer();
+ StartTest();
+ content::RunMessageLoop();
Vladislav Kaznacheev 2014/05/19 10:32:11 We have discussed this but I forgot to write this
vkuzkokov 2014/05/20 12:34:29 Done.
+ CheckConnection();
+ content::RunMessageLoop();
+ CheckCleanup();
+ StopMockAdbServer();
+}

Powered by Google App Engine
This is Rietveld 408576698