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

Unified Diff: chrome/browser/devtools/device/devtools_android_bridge_browsertest.cc

Issue 2284083002: [DevTools] A setting for TCP discovery enablement (Closed)
Patch Set: Comments Created 4 years, 4 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/devtools_android_bridge_browsertest.cc
diff --git a/chrome/browser/devtools/device/devtools_android_bridge_browsertest.cc b/chrome/browser/devtools/device/devtools_android_bridge_browsertest.cc
index 12717117382c697034c01912a6527956a7023a7c..5712f121fbf8cd1ce8ee573d2ce8d936a41856c4 100644
--- a/chrome/browser/devtools/device/devtools_android_bridge_browsertest.cc
+++ b/chrome/browser/devtools/device/devtools_android_bridge_browsertest.cc
@@ -1,6 +1,8 @@
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include <algorithm>
+#include <array>
#include "base/values.h"
#include "chrome/browser/devtools/device/devtools_android_bridge.h"
@@ -23,11 +25,28 @@ static void assign_from_callback(scoped_refptr<TCPDeviceProvider>* store,
*store = value;
}
-IN_PROC_BROWSER_TEST_F(DevToolsAndroidBridgeTest, UpdatesTargetDiscovery) {
+static std::string SetToString(const std::set<std::string>& values) {
+ std::ostringstream result;
+ std::copy(values.begin(), values.end(),
+ std::ostream_iterator<std::string>(result, ", "));
+ std::string result_string = result.str();
+ return result_string.substr(0, result_string.length() - 2);
+}
+
+static std::string AllTargetsString(
+ scoped_refptr<TCPDeviceProvider> provider) {
+ std::set<std::string> actual;
+ for (const net::HostPortPair& hostport : provider->get_targets_for_test())
+ actual.insert(hostport.ToString());
+ return SetToString(actual);
+}
+
+IN_PROC_BROWSER_TEST_F(DevToolsAndroidBridgeTest, DiscoveryListChanges) {
Profile* profile = browser()->profile();
PrefService* service = profile->GetPrefs();
- service->ClearPref(prefs::kDevToolsTargetDiscoveryConfig);
+ service->ClearPref(prefs::kDevToolsTCPDiscoveryConfig);
+ service->SetBoolean(prefs::kDevToolsDiscoverTCPTargetsEnabled, true);
DevToolsAndroidBridge* bridge =
DevToolsAndroidBridge::Factory::GetForProfile(profile);
@@ -38,25 +57,24 @@ IN_PROC_BROWSER_TEST_F(DevToolsAndroidBridgeTest, UpdatesTargetDiscovery) {
base::Bind(assign_from_callback, &provider, &called));
EXPECT_LT(0, called);
- EXPECT_EQ(nullptr, provider);
+ EXPECT_NE(nullptr, provider);
+
+ EXPECT_STREQ("localhost:9222, localhost:9229",
+ AllTargetsString(provider).c_str());
int invocations = called;
base::ListValue list;
list.AppendString("somehost:2000");
- service->Set(prefs::kDevToolsTargetDiscoveryConfig, list);
+ service->Set(prefs::kDevToolsTCPDiscoveryConfig, list);
EXPECT_LT(invocations, called);
EXPECT_NE(nullptr, provider);
- std::set<net::HostPortPair> pairs = provider->get_targets_for_test();
- EXPECT_EQ(1UL, pairs.size());
- net::HostPortPair pair = *pairs.begin();
- EXPECT_EQ(2000, pair.port());
- EXPECT_EQ("somehost", pair.HostForURL());
+ EXPECT_STREQ("somehost:2000", AllTargetsString(provider).c_str());
invocations = called;
list.Clear();
- service->Set(prefs::kDevToolsTargetDiscoveryConfig, list);
+ service->Set(prefs::kDevToolsTCPDiscoveryConfig, list);
EXPECT_LT(invocations, called);
EXPECT_EQ(nullptr, provider);
@@ -67,13 +85,60 @@ IN_PROC_BROWSER_TEST_F(DevToolsAndroidBridgeTest, UpdatesTargetDiscovery) {
list.AppendString("<not really a good address.");
list.AppendString("d:3");
list.AppendString("c:2");
- service->Set(prefs::kDevToolsTargetDiscoveryConfig, list);
+ service->Set(prefs::kDevToolsTCPDiscoveryConfig, list);
EXPECT_LT(invocations, called);
EXPECT_NE(nullptr, provider);
- pairs = provider->get_targets_for_test();
- EXPECT_EQ(3UL, pairs.size());
- for (const net::HostPortPair pair : pairs) {
- EXPECT_EQ(pair.port(), pair.HostForURL()[0] - 'a');
+ EXPECT_STREQ("b:1, c:2, d:3", AllTargetsString(provider).c_str());
+}
+
+IN_PROC_BROWSER_TEST_F(DevToolsAndroidBridgeTest, DefaultValues) {
+ Profile* profile = browser()->profile();
+
+ PrefService* service = profile->GetPrefs();
+ DevToolsAndroidBridge::Factory::GetForProfile(profile);
+ service->ClearPref(prefs::kDevToolsDiscoverTCPTargetsEnabled);
+ service->ClearPref(prefs::kDevToolsTCPDiscoveryConfig);
+
+ const base::ListValue* targets =
+ service->GetList(prefs::kDevToolsTCPDiscoveryConfig);
+ EXPECT_NE(nullptr, targets);
+ EXPECT_EQ(2ul, targets->GetSize());
+
+ std::set<std::string> actual;
+ for (size_t i = 0; i < targets->GetSize(); i++) {
+ std::string value;
+ targets->GetString(i, &value);
+ actual.insert(value);
}
+ EXPECT_STREQ("localhost:9222, localhost:9229", SetToString(actual).c_str());
+ EXPECT_FALSE(service->GetBoolean(prefs::kDevToolsDiscoverTCPTargetsEnabled));
+}
+
+IN_PROC_BROWSER_TEST_F(DevToolsAndroidBridgeTest, TCPEnableChange) {
+ Profile* profile = browser()->profile();
+
+ PrefService* service = profile->GetPrefs();
+ service->ClearPref(prefs::kDevToolsTCPDiscoveryConfig);
+ service->ClearPref(prefs::kDevToolsDiscoverTCPTargetsEnabled);
+
+ DevToolsAndroidBridge* bridge =
+ DevToolsAndroidBridge::Factory::GetForProfile(profile);
+
+ scoped_refptr<TCPDeviceProvider> provider;
+ int called = 0;
+ bridge->set_tcp_provider_callback_for_test(
+ base::Bind(assign_from_callback, &provider, &called));
+
+ EXPECT_EQ(nullptr, provider);
+
+ service->SetBoolean(prefs::kDevToolsDiscoverTCPTargetsEnabled, true);
+
+ EXPECT_NE(nullptr, provider);
+ EXPECT_STREQ("localhost:9222, localhost:9229",
+ AllTargetsString(provider).c_str());
+
+ service->SetBoolean(prefs::kDevToolsDiscoverTCPTargetsEnabled, false);
+
+ EXPECT_EQ(nullptr, provider);
}
« no previous file with comments | « chrome/browser/devtools/device/devtools_android_bridge.cc ('k') | chrome/browser/devtools/devtools_window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698