1// Copyright 2014 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.
4
5#include "base/strings/stringprintf.h"
6#include "chrome/browser/omaha_query_params/chrome_omaha_query_params_delegate.h"
7#include "chrome/common/chrome_version_info.h"
8#include "components/omaha_query_params/omaha_query_params.h"
9#include "testing/gtest/include/gtest/gtest.h"
10
11using base::StringPrintf;
12
13namespace {
14
15bool Contains(const std::string& source, const std::string& target) {
16  return source.find(target) != std::string::npos;
17}
18
19}  // namespace
20
21void TestParams(omaha_query_params::OmahaQueryParams::ProdId prod_id) {
22  std::string params = omaha_query_params::OmahaQueryParams::Get(prod_id);
23
24  EXPECT_TRUE(Contains(
25      params,
26      StringPrintf("os=%s", omaha_query_params::OmahaQueryParams::GetOS())));
27  EXPECT_TRUE(
28      Contains(params,
29               StringPrintf("arch=%s",
30                            omaha_query_params::OmahaQueryParams::GetArch())));
31  EXPECT_TRUE(Contains(
32      params,
33      StringPrintf(
34          "prod=%s",
35          omaha_query_params::OmahaQueryParams::GetProdIdString(prod_id))));
36  EXPECT_TRUE(Contains(
37      params,
38      StringPrintf("prodchannel=%s",
39                   ChromeOmahaQueryParamsDelegate::GetChannelString())));
40  EXPECT_TRUE(Contains(
41      params,
42      StringPrintf("prodversion=%s", chrome::VersionInfo().Version().c_str())));
43  EXPECT_TRUE(Contains(
44      params,
45      StringPrintf("lang=%s", ChromeOmahaQueryParamsDelegate::GetLang())));
46}
47
48TEST(ChromeOmahaQueryParamsDelegateTest, GetParams) {
49  TestParams(omaha_query_params::OmahaQueryParams::CRX);
50  TestParams(omaha_query_params::OmahaQueryParams::CHROME);
51}
52