| 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);
|
| }
|
|
|