| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "chromecast/common/user_agent.h" |
| |
| #include "base/strings/stringprintf.h" |
| #include "components/version_info/version_info.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| |
| namespace chromecast { |
| |
| namespace { |
| #if BUILDFLAG(IS_ANDROID) |
| const char kCastAndroid[] = |
| "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) " |
| "Chrome/%s.0.0.0 " |
| "%sSafari/537.36 CrKey/1.56.500000 %s"; |
| #else |
| const char kCastDesktop[] = |
| "Mozilla/5.0 (" |
| #if BUILDFLAG(IS_CHROMEOS) |
| "X11; CrOS x86_64 14541.0.0" |
| #elif BUILDFLAG(IS_FUCHSIA) |
| "Fuchsia" |
| #elif BUILDFLAG(IS_LINUX) |
| "X11; Linux x86_64" |
| #elif BUILDFLAG(IS_MAC) |
| "Macintosh; Intel Mac OS X 10_15_7" |
| #elif BUILDFLAG(IS_WIN) |
| "Windows NT 10.0; Win64; x64" |
| #else |
| #error Unsupported platform |
| #endif |
| ") AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s.0.0.0 " |
| "Safari/537.36 CrKey/1.56.500000 %s"; |
| #endif // BUILDFLAG(IS_ANDROID) |
| } // namespace |
| |
| TEST(UserAgentTest, GetUserAgent) { |
| std::string device_suffix = GetDeviceUserAgentSuffix(); |
| #if BUILDFLAG(IS_ANDROID) |
| std::string device_compat = ""; |
| EXPECT_EQ(base::StringPrintf(kCastAndroid, |
| version_info::GetMajorVersionNumber().c_str(), |
| device_compat.c_str(), device_suffix.c_str()), |
| GetUserAgent()); |
| #else |
| EXPECT_EQ(base::StringPrintf(kCastDesktop, |
| version_info::GetMajorVersionNumber().c_str(), |
| device_suffix.c_str()), |
| GetUserAgent()); |
| #endif |
| } |
| |
| } // namespace chromecast |