[M120 Migration][VD] Enable direct rendering for TVPlus
[platform/framework/web/chromium-efl.git] / components / component_updater / configurator_impl_unittest.cc
1 // Copyright 2016 The Chromium Authors
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 <memory>
6
7 #include "base/command_line.h"
8 #include "base/test/scoped_command_line.h"
9 #include "base/time/time.h"
10 #include "components/component_updater/component_updater_command_line_config_policy.h"
11 #include "components/component_updater/component_updater_switches.h"
12 #include "components/component_updater/configurator_impl.h"
13 #include "components/update_client/command_line_config_policy.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15
16 namespace component_updater {
17
18 class ComponentUpdaterConfiguratorImplTest : public testing::Test {
19  public:
20   ComponentUpdaterConfiguratorImplTest() = default;
21
22   ComponentUpdaterConfiguratorImplTest(
23       const ComponentUpdaterConfiguratorImplTest&) = delete;
24   ComponentUpdaterConfiguratorImplTest& operator=(
25       const ComponentUpdaterConfiguratorImplTest&) = delete;
26
27   ~ComponentUpdaterConfiguratorImplTest() override = default;
28 };
29
30 TEST_F(ComponentUpdaterConfiguratorImplTest, FastUpdate) {
31   // Test the default timing values when no command line argument is present.
32   base::CommandLine cmdline(base::CommandLine::NO_PROGRAM);
33   std::unique_ptr<ConfiguratorImpl> config = std::make_unique<ConfiguratorImpl>(
34       ComponentUpdaterCommandLineConfigPolicy(&cmdline), false);
35   CHECK_EQ(base::Minutes(1), config->InitialDelay());
36   CHECK_EQ(base::Hours(5), config->NextCheckDelay());
37   CHECK_EQ(base::Minutes(30), config->OnDemandDelay());
38   CHECK_EQ(base::Minutes(15), config->UpdateDelay());
39
40   // Test the fast-update timings.
41   cmdline.AppendSwitchASCII("--component-updater", "fast-update");
42   config = std::make_unique<ConfiguratorImpl>(
43       ComponentUpdaterCommandLineConfigPolicy(&cmdline), false);
44   CHECK_EQ(base::Seconds(10), config->InitialDelay());
45   CHECK_EQ(base::Hours(5), config->NextCheckDelay());
46   CHECK_EQ(base::Seconds(2), config->OnDemandDelay());
47   CHECK_EQ(base::Seconds(10), config->UpdateDelay());
48 }
49
50 TEST_F(ComponentUpdaterConfiguratorImplTest, FastUpdateWithCustomPolicy) {
51   // Test the default timing values when no command line argument is present
52   // (default).
53   class DefaultCommandLineConfigPolicy
54       : public update_client::CommandLineConfigPolicy {
55    public:
56     DefaultCommandLineConfigPolicy() = default;
57
58     // update_client::CommandLineConfigPolicy overrides.
59     bool BackgroundDownloadsEnabled() const override { return false; }
60     bool DeltaUpdatesEnabled() const override { return false; }
61     bool FastUpdate() const override { return false; }
62     bool PingsEnabled() const override { return false; }
63     bool TestRequest() const override { return false; }
64     GURL UrlSourceOverride() const override { return GURL(); }
65   };
66
67   std::unique_ptr<ConfiguratorImpl> config = std::make_unique<ConfiguratorImpl>(
68       DefaultCommandLineConfigPolicy(), false);
69   CHECK_EQ(base::Minutes(1), config->InitialDelay());
70   CHECK_EQ(base::Hours(5), config->NextCheckDelay());
71   CHECK_EQ(base::Minutes(30), config->OnDemandDelay());
72   CHECK_EQ(base::Minutes(15), config->UpdateDelay());
73
74   // Test the fast-update timings.
75   class FastUpdateCommandLineConfigurator
76       : public DefaultCommandLineConfigPolicy {
77    public:
78     FastUpdateCommandLineConfigurator() = default;
79
80     bool FastUpdate() const override { return true; }
81   };
82   config = std::make_unique<ConfiguratorImpl>(
83       FastUpdateCommandLineConfigurator(), false);
84   CHECK_EQ(base::Seconds(10), config->InitialDelay());
85   CHECK_EQ(base::Hours(5), config->NextCheckDelay());
86   CHECK_EQ(base::Seconds(2), config->OnDemandDelay());
87   CHECK_EQ(base::Seconds(10), config->UpdateDelay());
88 }
89
90 TEST_F(ComponentUpdaterConfiguratorImplTest, InitialDelay) {
91   std::unique_ptr<ConfiguratorImpl> config = std::make_unique<ConfiguratorImpl>(
92       update_client::CommandLineConfigPolicy(), false);
93   CHECK_EQ(base::Minutes(1), config->InitialDelay());
94
95   class CommandLineConfigPolicy
96       : public update_client::CommandLineConfigPolicy {
97    public:
98     CommandLineConfigPolicy() = default;
99
100     // update_client::CommandLineConfigPolicy overrides.
101     bool BackgroundDownloadsEnabled() const override { return false; }
102     bool DeltaUpdatesEnabled() const override { return false; }
103     bool FastUpdate() const override { return fast_update_; }
104     bool PingsEnabled() const override { return false; }
105     bool TestRequest() const override { return false; }
106     GURL UrlSourceOverride() const override { return GURL(); }
107     base::TimeDelta InitialDelay() const override { return initial_delay_; }
108
109     void set_fast_update(bool fast_update) { fast_update_ = fast_update; }
110     void set_initial_delay(base::TimeDelta initial_delay) {
111       initial_delay_ = initial_delay;
112     }
113
114    private:
115     base::TimeDelta initial_delay_ = base::Seconds(0);
116     bool fast_update_ = false;
117   };
118
119   {
120     CommandLineConfigPolicy clcp;
121     clcp.set_fast_update(true);
122     config = std::make_unique<ConfiguratorImpl>(clcp, false);
123     CHECK_EQ(base::Seconds(10), config->InitialDelay());
124   }
125
126   {
127     CommandLineConfigPolicy clcp;
128     clcp.set_fast_update(false);
129     config = std::make_unique<ConfiguratorImpl>(clcp, false);
130     CHECK_EQ(base::Minutes(1), config->InitialDelay());
131   }
132
133   {
134     CommandLineConfigPolicy clcp;
135     clcp.set_initial_delay(base::Minutes(2));
136     config = std::make_unique<ConfiguratorImpl>(clcp, false);
137     CHECK_EQ(base::Minutes(2), config->InitialDelay());
138   }
139
140   {
141     base::test::ScopedCommandLine scoped_command_line;
142     base::CommandLine* command_line =
143         scoped_command_line.GetProcessCommandLine();
144     command_line->AppendSwitchASCII(switches::kComponentUpdater,
145                                     "initial-delay=3.14");
146     config = std::make_unique<ConfiguratorImpl>(
147         ComponentUpdaterCommandLineConfigPolicy(command_line), false);
148     CHECK_EQ(base::Seconds(3.14), config->InitialDelay());
149   }
150 }
151
152 TEST_F(ComponentUpdaterConfiguratorImplTest, TestRequest) {
153   class CommandLineConfigPolicy
154       : public update_client::CommandLineConfigPolicy {
155    public:
156     CommandLineConfigPolicy() = default;
157
158     // update_client::CommandLineConfigPolicy overrides.
159     bool BackgroundDownloadsEnabled() const override { return false; }
160     bool DeltaUpdatesEnabled() const override { return false; }
161     bool FastUpdate() const override { return false; }
162     bool PingsEnabled() const override { return false; }
163     bool TestRequest() const override { return test_request_; }
164     GURL UrlSourceOverride() const override { return GURL(); }
165     base::TimeDelta InitialDelay() const override { return base::Seconds(0); }
166
167     void set_test_request(bool test_request) { test_request_ = test_request; }
168
169    private:
170     bool test_request_ = false;
171   };
172
173   auto config = std::make_unique<ConfiguratorImpl>(
174       update_client::CommandLineConfigPolicy(), false);
175   EXPECT_TRUE(config->ExtraRequestParams().empty());
176
177   CommandLineConfigPolicy clcp;
178   config = std::make_unique<ConfiguratorImpl>(clcp, false);
179   auto extra_request_params = config->ExtraRequestParams();
180   EXPECT_EQ(0u, extra_request_params.count("testrequest"));
181   EXPECT_EQ(0u, extra_request_params.count("testsource"));
182   clcp.set_test_request(true);
183   config = std::make_unique<ConfiguratorImpl>(clcp, false);
184   extra_request_params = config->ExtraRequestParams();
185   EXPECT_EQ("1", extra_request_params["testrequest"]);
186   EXPECT_EQ("dev", extra_request_params["testsource"]);
187 }
188
189 }  // namespace component_updater