1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/common/sync_util.h"
7 #include "base/command_line.h"
8 #include "base/strings/string_util.h"
9 #include "chrome/common/chrome_switches.h"
10 #include "chrome/common/chrome_version_info.h"
11 #include "testing/gtest/include/gtest/gtest.h"
16 TEST(SyncUtilTest
, GetSyncServiceURLWithoutCommandLineSwitch
) {
17 // If the command line is not set the url is one of two constants chosen based
18 // on the channel (e.g. beta).
19 base::CommandLine
command_line(base::CommandLine::NO_PROGRAM
);
20 std::string url
= GetSyncServiceURL(command_line
).spec();
21 ASSERT_TRUE(internal::kSyncServerUrl
== url
||
22 internal::kSyncDevServerUrl
== url
);
25 TEST(SyncUtilTest
, GetSyncServiceURLWithCommandLineSwitch
) {
26 // See that we can set the URL via the command line.
27 base::CommandLine
command_line(base::CommandLine::NO_PROGRAM
);
28 command_line
.AppendSwitchASCII(switches::kSyncServiceURL
, "https://foo/bar");
29 ASSERT_EQ("https://foo/bar", GetSyncServiceURL(command_line
).spec());
32 TEST(SyncUtilTest
, GetSyncServiceURLWithBadCommandLineSwitch
) {
33 // If the command line value is not a valid url it is ignored.
34 base::CommandLine
command_line(base::CommandLine::NO_PROGRAM
);
35 command_line
.AppendSwitchASCII(switches::kSyncServiceURL
, "invalid_url");
36 std::string url
= GetSyncServiceURL(command_line
).spec();
37 ASSERT_TRUE(internal::kSyncServerUrl
== url
||
38 internal::kSyncDevServerUrl
== url
);
41 TEST(SyncUtilTest
, MakeUserAgentForSync
) {
42 chrome::VersionInfo version_info
;
43 std::string user_agent
= MakeUserAgentForSync(version_info
, "TEST");
44 ASSERT_TRUE(base::StartsWith(user_agent
, "Chrome TEST",
45 base::CompareCase::SENSITIVE
));