blob: 3a2211742b1e6a48e4a389a893ea16fb15dd790f [file] [log] [blame]
/*
* Copyright 2016 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "cobalt/network/user_agent_string_factory.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cobalt {
namespace network {
namespace {
class UserAgentStringFactoryWithOSNameAndVerison
: public UserAgentStringFactory {
public:
UserAgentStringFactoryWithOSNameAndVerison() {
os_name_and_version_ = "GLaDOS 3.11";
}
};
TEST(UserAgentStringFactoryTest, StartsWithMozilla) {
std::string user_agent_string =
UserAgentStringFactoryWithOSNameAndVerison().CreateUserAgentString();
EXPECT_EQ(0, user_agent_string.find("Mozilla/5.0"));
}
TEST(UserAgentStringFactoryTest, ContainsCobalt) {
std::string user_agent_string =
UserAgentStringFactoryWithOSNameAndVerison().CreateUserAgentString();
EXPECT_NE(std::string::npos, user_agent_string.find("Cobalt"));
}
TEST(UserAgentStringFactoryTest, WithOSNameAndVersion) {
std::string user_agent_string =
UserAgentStringFactoryWithOSNameAndVerison().CreateUserAgentString();
EXPECT_NE(std::string::npos, user_agent_string.find("(GLaDOS 3.11)"));
}
class UserAgentStringFactoryWithHistoricPlatformName
: public UserAgentStringFactory {
public:
UserAgentStringFactoryWithHistoricPlatformName() {
historic_platform_name_ = "Caroline";
os_name_and_version_ = "GLaDOS 3.11";
}
};
TEST(UserAgentStringFactoryTest, WithHistoricPlatformName) {
std::string user_agent_string =
UserAgentStringFactoryWithHistoricPlatformName().CreateUserAgentString();
EXPECT_NE(std::string::npos,
user_agent_string.find("(Caroline; GLaDOS 3.11)"));
}
class UserAgentStringFactoryWithArchitectureTokens
: public UserAgentStringFactory {
public:
UserAgentStringFactoryWithArchitectureTokens() {
os_name_and_version_ = "GLaDOS 3.11";
architecture_tokens_ = "Wheatley";
}
};
TEST(UserAgentStringFactoryTest, WithArchitectureTokens) {
std::string user_agent_string =
UserAgentStringFactoryWithArchitectureTokens().CreateUserAgentString();
EXPECT_NE(std::string::npos,
user_agent_string.find("(GLaDOS 3.11; Wheatley)"));
}
class UserAgentStringFactoryWithYouTubeTVInfo : public UserAgentStringFactory {
public:
UserAgentStringFactoryWithYouTubeTVInfo() {
os_name_and_version_ = "GLaDOS 3.11";
youtube_tv_info_ = YouTubeTVInfo();
youtube_tv_info_->network_operator = "ApertureLaboratories";
youtube_tv_info_->device_type = YouTubeTVInfo::kOverTheTopBox;
youtube_tv_info_->chipset_model_number = "Wheatley";
youtube_tv_info_->firmware_version = "0.01";
youtube_tv_info_->brand = "Aperture Science";
youtube_tv_info_->model = "GLaDOS";
}
};
TEST(UserAgentStringFactoryTest, WithYouTubeTVInfo) {
std::string user_agent_string =
UserAgentStringFactoryWithYouTubeTVInfo().CreateUserAgentString();
EXPECT_NE(std::string::npos,
user_agent_string.find("ApertureLaboratories_OTT_Wheatley/0.01 "
"(Aperture Science, GLaDOS, )"));
}
class UserAgentStringFactoryWithWiredConnection
: public UserAgentStringFactory {
public:
UserAgentStringFactoryWithWiredConnection() {
os_name_and_version_ = "GLaDOS 3.11";
youtube_tv_info_ = YouTubeTVInfo();
youtube_tv_info_->connection_type = YouTubeTVInfo::kWiredConnection;
youtube_tv_info_->device_type = YouTubeTVInfo::kOverTheTopBox;
}
};
TEST(UserAgentStringFactoryTest, WithWiredConnection) {
std::string user_agent_string =
UserAgentStringFactoryWithWiredConnection().CreateUserAgentString();
EXPECT_NE(std::string::npos, user_agent_string.find("Wired"));
}
class UserAgentStringFactoryWithWirelessConnection
: public UserAgentStringFactory {
public:
UserAgentStringFactoryWithWirelessConnection() {
os_name_and_version_ = "GLaDOS 3.11";
youtube_tv_info_ = YouTubeTVInfo();
youtube_tv_info_->connection_type = YouTubeTVInfo::kWirelessConnection;
youtube_tv_info_->device_type = YouTubeTVInfo::kOverTheTopBox;
}
};
TEST(UserAgentStringFactoryTest, WithWirelessConnection) {
std::string user_agent_string =
UserAgentStringFactoryWithWirelessConnection().CreateUserAgentString();
EXPECT_NE(std::string::npos, user_agent_string.find("Wireless"));
}
} // namespace
} // namespace network
} // namespace cobalt