1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file. 4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "components/component_updater/test/test_configurator.h" 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/run_loop.h" 8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/version.h" 903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "components/component_updater/component_patcher_operation.h" 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "url/gurl.h" 11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace component_updater { 13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace { 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistd::vector<GURL> MakeDefaultUrls() { 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci std::vector<GURL> urls; 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci urls.push_back(GURL(POST_INTERCEPT_SCHEME 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci "://" POST_INTERCEPT_HOSTNAME POST_INTERCEPT_PATH)); 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return urls; 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano TucciTestConfigurator::TestConfigurator( 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner) 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci : worker_task_runner_(worker_task_runner), 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci initial_time_(0), 30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch times_(1), 31116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch recheck_time_(0), 32116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ondemand_time_(0), 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci context_(new net::TestURLRequestContextGetter(network_task_runner)) { 34116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 35116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 36116680a4aac90f2aa7413d9095a592090648e557Ben MurdochTestConfigurator::~TestConfigurator() { 37116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 38116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 39116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint TestConfigurator::InitialDelay() const { 40116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return initial_time_; 41116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 42116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint TestConfigurator::NextCheckDelay() { 44116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // This is called when a new full cycle of checking for updates is going 45116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // to happen. In test we normally only test one cycle so it is a good 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // time to break from the test messageloop Run() method so the test can 47116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // finish. 48116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch if (--times_ <= 0) { 49116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch quit_closure_.Run(); 50116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return 0; 51116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch } 52116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return 1; 53116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 54116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 55116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint TestConfigurator::StepDelay() const { 56116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return 0; 57116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 58116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 59116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint TestConfigurator::StepDelayMedium() { 60116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return NextCheckDelay(); 61116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 62116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 63116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint TestConfigurator::MinimumReCheckWait() const { 64116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return recheck_time_; 65116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 66116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 67116680a4aac90f2aa7413d9095a592090648e557Ben Murdochint TestConfigurator::OnDemandDelay() const { 68116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return ondemand_time_; 69116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 70116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 711320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistd::vector<GURL> TestConfigurator::UpdateUrl() const { 721320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return MakeDefaultUrls(); 73116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 74116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 751320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccistd::vector<GURL> TestConfigurator::PingUrl() const { 76116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return UpdateUrl(); 77116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 78116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 79116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbase::Version TestConfigurator::GetBrowserVersion() const { 80116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch // Needs to be larger than the required version in tested component manifests. 81116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return base::Version("30.0"); 82116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 83116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 84116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstd::string TestConfigurator::GetChannel() const { 85116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return "fake_channel_string"; 86116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 87116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 88116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstd::string TestConfigurator::GetLang() const { 89116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return "fake_lang"; 90116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 91116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 92116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstd::string TestConfigurator::GetOSLongName() const { 93116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return "Fake Operating System"; 94116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 95116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 96116680a4aac90f2aa7413d9095a592090648e557Ben Murdochstd::string TestConfigurator::ExtraRequestParams() const { 97116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return "extra=\"foo\""; 98116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 99116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 100116680a4aac90f2aa7413d9095a592090648e557Ben Murdochsize_t TestConfigurator::UrlSizeLimit() const { 101116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return 256; 102116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 103116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 104116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnet::URLRequestContextGetter* TestConfigurator::RequestContext() const { 105116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return context_.get(); 106116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 107116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1085f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)scoped_refptr<OutOfProcessPatcher> TestConfigurator::CreateOutOfProcessPatcher() 1095f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) const { 1105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return NULL; 111116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 112116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 113116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool TestConfigurator::DeltasEnabled() const { 114116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return true; 115116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 116116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 117116680a4aac90f2aa7413d9095a592090648e557Ben Murdochbool TestConfigurator::UseBackgroundDownloader() const { 118116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return false; 119116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 120116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 121116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Set how many update checks are called, the default value is just once. 122116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid TestConfigurator::SetLoopCount(int times) { 123116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch times_ = times; 124116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 125116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 126116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid TestConfigurator::SetRecheckTime(int seconds) { 127116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch recheck_time_ = seconds; 128116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 129116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 130116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid TestConfigurator::SetOnDemandTime(int seconds) { 131116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch ondemand_time_ = seconds; 132116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 133116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 134116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid TestConfigurator::SetQuitClosure(const base::Closure& quit_closure) { 135116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch quit_closure_ = quit_closure; 136116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 137116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 138116680a4aac90f2aa7413d9095a592090648e557Ben Murdochvoid TestConfigurator::SetInitialDelay(int seconds) { 139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch initial_time_ = seconds; 140116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 1425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)scoped_refptr<base::SequencedTaskRunner> 1435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)TestConfigurator::GetSequencedTaskRunner() const { 1441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DCHECK(worker_task_runner_.get()); 1451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return worker_task_runner_; 1465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 1475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 1485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)scoped_refptr<base::SingleThreadTaskRunner> 1495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)TestConfigurator::GetSingleThreadTaskRunner() const { 1501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // This is NULL because tests do not use the background downloader. 1511320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return NULL; 1525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 1535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 154116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace component_updater 155