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 "components/component_updater/test/test_configurator.h" 6 7#include "base/run_loop.h" 8#include "base/version.h" 9#include "components/component_updater/component_patcher_operation.h" 10#include "url/gurl.h" 11 12namespace component_updater { 13 14namespace { 15 16std::vector<GURL> MakeDefaultUrls() { 17 std::vector<GURL> urls; 18 urls.push_back(GURL(POST_INTERCEPT_SCHEME 19 "://" POST_INTERCEPT_HOSTNAME POST_INTERCEPT_PATH)); 20 return urls; 21} 22 23} // namespace 24 25TestConfigurator::TestConfigurator( 26 const scoped_refptr<base::SequencedTaskRunner>& worker_task_runner, 27 const scoped_refptr<base::SingleThreadTaskRunner>& network_task_runner) 28 : worker_task_runner_(worker_task_runner), 29 initial_time_(0), 30 times_(1), 31 recheck_time_(0), 32 ondemand_time_(0), 33 context_(new net::TestURLRequestContextGetter(network_task_runner)) { 34} 35 36TestConfigurator::~TestConfigurator() { 37} 38 39int TestConfigurator::InitialDelay() const { 40 return initial_time_; 41} 42 43int TestConfigurator::NextCheckDelay() { 44 // This is called when a new full cycle of checking for updates is going 45 // to happen. In test we normally only test one cycle so it is a good 46 // time to break from the test messageloop Run() method so the test can 47 // finish. 48 if (--times_ <= 0) { 49 quit_closure_.Run(); 50 return 0; 51 } 52 return 1; 53} 54 55int TestConfigurator::StepDelay() const { 56 return 0; 57} 58 59int TestConfigurator::StepDelayMedium() { 60 return NextCheckDelay(); 61} 62 63int TestConfigurator::MinimumReCheckWait() const { 64 return recheck_time_; 65} 66 67int TestConfigurator::OnDemandDelay() const { 68 return ondemand_time_; 69} 70 71std::vector<GURL> TestConfigurator::UpdateUrl() const { 72 return MakeDefaultUrls(); 73} 74 75std::vector<GURL> TestConfigurator::PingUrl() const { 76 return UpdateUrl(); 77} 78 79base::Version TestConfigurator::GetBrowserVersion() const { 80 // Needs to be larger than the required version in tested component manifests. 81 return base::Version("30.0"); 82} 83 84std::string TestConfigurator::GetChannel() const { 85 return "fake_channel_string"; 86} 87 88std::string TestConfigurator::GetLang() const { 89 return "fake_lang"; 90} 91 92std::string TestConfigurator::GetOSLongName() const { 93 return "Fake Operating System"; 94} 95 96std::string TestConfigurator::ExtraRequestParams() const { 97 return "extra=\"foo\""; 98} 99 100size_t TestConfigurator::UrlSizeLimit() const { 101 return 256; 102} 103 104net::URLRequestContextGetter* TestConfigurator::RequestContext() const { 105 return context_.get(); 106} 107 108scoped_refptr<OutOfProcessPatcher> TestConfigurator::CreateOutOfProcessPatcher() 109 const { 110 return NULL; 111} 112 113bool TestConfigurator::DeltasEnabled() const { 114 return true; 115} 116 117bool TestConfigurator::UseBackgroundDownloader() const { 118 return false; 119} 120 121// Set how many update checks are called, the default value is just once. 122void TestConfigurator::SetLoopCount(int times) { 123 times_ = times; 124} 125 126void TestConfigurator::SetRecheckTime(int seconds) { 127 recheck_time_ = seconds; 128} 129 130void TestConfigurator::SetOnDemandTime(int seconds) { 131 ondemand_time_ = seconds; 132} 133 134void TestConfigurator::SetQuitClosure(const base::Closure& quit_closure) { 135 quit_closure_ = quit_closure; 136} 137 138void TestConfigurator::SetInitialDelay(int seconds) { 139 initial_time_ = seconds; 140} 141 142scoped_refptr<base::SequencedTaskRunner> 143TestConfigurator::GetSequencedTaskRunner() const { 144 DCHECK(worker_task_runner_.get()); 145 return worker_task_runner_; 146} 147 148scoped_refptr<base::SingleThreadTaskRunner> 149TestConfigurator::GetSingleThreadTaskRunner() const { 150 // This is NULL because tests do not use the background downloader. 151 return NULL; 152} 153 154} // namespace component_updater 155