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 "components/omaha_query_params/omaha_query_params.h" 7#include "components/omaha_query_params/omaha_query_params_delegate.h" 8#include "testing/gtest/include/gtest/gtest.h" 9 10using base::StringPrintf; 11 12namespace omaha_query_params { 13 14namespace { 15 16bool Contains(const std::string& source, const std::string& target) { 17 return source.find(target) != std::string::npos; 18} 19 20class TestOmahaQueryParamsDelegate : public OmahaQueryParamsDelegate { 21 virtual std::string GetExtraParams() OVERRIDE { return "&cat=dog"; } 22}; 23 24} // namespace 25 26void TestParams(OmahaQueryParams::ProdId prod_id, bool extra_params) { 27 std::string params = OmahaQueryParams::Get(prod_id); 28 29 // This doesn't so much test what the values are (since that would be an 30 // almost exact duplication of code with omaha_query_params.cc, and wouldn't 31 // really test anything) as it is a verification that all the params are 32 // present in the generated string. 33 EXPECT_TRUE( 34 Contains(params, StringPrintf("os=%s", OmahaQueryParams::GetOS()))); 35 EXPECT_TRUE( 36 Contains(params, StringPrintf("arch=%s", OmahaQueryParams::GetArch()))); 37 EXPECT_TRUE(Contains( 38 params, 39 StringPrintf("prod=%s", OmahaQueryParams::GetProdIdString(prod_id)))); 40 if (extra_params) 41 EXPECT_TRUE(Contains(params, "cat=dog")); 42} 43 44TEST(OmahaQueryParamsTest, GetParams) { 45 TestParams(OmahaQueryParams::CRX, false); 46 TestParams(OmahaQueryParams::CHROME, false); 47 48 TestOmahaQueryParamsDelegate delegate; 49 OmahaQueryParams::SetDelegate(&delegate); 50 51 TestParams(OmahaQueryParams::CRX, true); 52 TestParams(OmahaQueryParams::CHROME, true); 53} 54 55} // namespace omaha_query_params 56