Home | History | Annotate | Download | only in test
      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