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 12 namespace component_updater { 13 14 namespace { 15 16 std::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 25 TestConfigurator::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 36 TestConfigurator::~TestConfigurator() { 37 } 38 39 int TestConfigurator::InitialDelay() const { 40 return initial_time_; 41 } 42 43 int 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 55 int TestConfigurator::StepDelay() const { 56 return 0; 57 } 58 59 int TestConfigurator::StepDelayMedium() { 60 return NextCheckDelay(); 61 } 62 63 int TestConfigurator::MinimumReCheckWait() const { 64 return recheck_time_; 65 } 66 67 int TestConfigurator::OnDemandDelay() const { 68 return ondemand_time_; 69 } 70 71 std::vector<GURL> TestConfigurator::UpdateUrl() const { 72 return MakeDefaultUrls(); 73 } 74 75 std::vector<GURL> TestConfigurator::PingUrl() const { 76 return UpdateUrl(); 77 } 78 79 base::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 84 std::string TestConfigurator::GetChannel() const { 85 return "fake_channel_string"; 86 } 87 88 std::string TestConfigurator::GetLang() const { 89 return "fake_lang"; 90 } 91 92 std::string TestConfigurator::GetOSLongName() const { 93 return "Fake Operating System"; 94 } 95 96 std::string TestConfigurator::ExtraRequestParams() const { 97 return "extra=\"foo\""; 98 } 99 100 size_t TestConfigurator::UrlSizeLimit() const { 101 return 256; 102 } 103 104 net::URLRequestContextGetter* TestConfigurator::RequestContext() const { 105 return context_.get(); 106 } 107 108 scoped_refptr<OutOfProcessPatcher> TestConfigurator::CreateOutOfProcessPatcher() 109 const { 110 return NULL; 111 } 112 113 bool TestConfigurator::DeltasEnabled() const { 114 return true; 115 } 116 117 bool TestConfigurator::UseBackgroundDownloader() const { 118 return false; 119 } 120 121 // Set how many update checks are called, the default value is just once. 122 void TestConfigurator::SetLoopCount(int times) { 123 times_ = times; 124 } 125 126 void TestConfigurator::SetRecheckTime(int seconds) { 127 recheck_time_ = seconds; 128 } 129 130 void TestConfigurator::SetOnDemandTime(int seconds) { 131 ondemand_time_ = seconds; 132 } 133 134 void TestConfigurator::SetQuitClosure(const base::Closure& quit_closure) { 135 quit_closure_ = quit_closure; 136 } 137 138 void TestConfigurator::SetInitialDelay(int seconds) { 139 initial_time_ = seconds; 140 } 141 142 scoped_refptr<base::SequencedTaskRunner> 143 TestConfigurator::GetSequencedTaskRunner() const { 144 DCHECK(worker_task_runner_.get()); 145 return worker_task_runner_; 146 } 147 148 scoped_refptr<base::SingleThreadTaskRunner> 149 TestConfigurator::GetSingleThreadTaskRunner() const { 150 // This is NULL because tests do not use the background downloader. 151 return NULL; 152 } 153 154 } // namespace component_updater 155