Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(215)

Unified Diff: components/doodle/doodle_fetcher_impl_unittest.cc

Issue 2725143003: [Doodle] Pull time_to_live out of DoodleConfig (Closed)
Patch Set: mastiz review Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/doodle/doodle_fetcher_impl.cc ('k') | components/doodle/doodle_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/doodle/doodle_fetcher_impl_unittest.cc
diff --git a/components/doodle/doodle_fetcher_impl_unittest.cc b/components/doodle/doodle_fetcher_impl_unittest.cc
index 785936d596fc4f93c20c28e851c78fe7554df8c8..939b7b82bd61ac49a38e3a752650bb3e932d07fe 100644
--- a/components/doodle/doodle_fetcher_impl_unittest.cc
+++ b/components/doodle/doodle_fetcher_impl_unittest.cc
@@ -12,6 +12,7 @@
#include "base/json/json_reader.h"
#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
+#include "base/time/time.h"
#include "base/values.h"
#include "components/google/core/browser/google_switches.h"
#include "components/google/core/browser/google_url_tracker.h"
@@ -106,20 +107,27 @@ class DoodleFetcherImplTest : public testing::Test {
return url_fetcher;
}
+ // TODO(treib): Replace with a MockCallback plus testing::SaveArgs?
DoodleFetcherImpl::FinishedCallback CreateResponseSavingCallback(
DoodleState* state_out,
+ base::TimeDelta* time_to_live_out,
base::Optional<DoodleConfig>* config_out) {
return base::BindOnce(
- [](DoodleState* state_out, base::Optional<DoodleConfig>* config_out,
- DoodleState state, const base::Optional<DoodleConfig>& config) {
+ [](DoodleState* state_out, base::TimeDelta* time_to_live_out,
+ base::Optional<DoodleConfig>* config_out, DoodleState state,
+ base::TimeDelta time_to_live,
+ const base::Optional<DoodleConfig>& config) {
if (state_out) {
*state_out = state;
}
+ if (time_to_live_out) {
+ *time_to_live_out = time_to_live;
+ }
if (config_out) {
*config_out = config;
}
},
- state_out, config_out);
+ state_out, time_to_live_out, config_out);
}
DoodleFetcherImpl* doodle_fetcher() { return &doodle_fetcher_; }
@@ -139,7 +147,7 @@ TEST_F(DoodleFetcherImplTest, ReturnsFromFetchWithoutError) {
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, nullptr, &response));
RespondWithData(R"json({"ddljson": {
"time_to_live_ms":55000,
"large_image": {"url":"/logos/doodles/2015/some.gif"}
@@ -154,7 +162,7 @@ TEST_F(DoodleFetcherImplTest, ReturnsFrom404FetchWithError) {
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, nullptr, &response));
RespondWithError(net::ERR_FILE_NOT_FOUND);
EXPECT_THAT(state, Eq(DoodleState::DOWNLOAD_ERROR));
@@ -166,7 +174,7 @@ TEST_F(DoodleFetcherImplTest, ReturnsErrorForInvalidJson) {
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, nullptr, &response));
RespondWithData("}");
EXPECT_THAT(state, Eq(DoodleState::PARSING_ERROR));
@@ -178,7 +186,7 @@ TEST_F(DoodleFetcherImplTest, ReturnsErrorForIncompleteJson) {
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, nullptr, &response));
RespondWithData("{}");
EXPECT_THAT(state, Eq(DoodleState::PARSING_ERROR));
@@ -187,10 +195,11 @@ TEST_F(DoodleFetcherImplTest, ReturnsErrorForIncompleteJson) {
TEST_F(DoodleFetcherImplTest, ResponseContainsValidBaseInformation) {
DoodleState state(DoodleState::NO_DOODLE);
+ base::TimeDelta time_to_live;
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, &time_to_live, &response));
RespondWithData(R"json()]}'{
"ddljson": {
"alt_text":"Mouseover Text",
@@ -220,59 +229,59 @@ TEST_F(DoodleFetcherImplTest, ResponseContainsValidBaseInformation) {
EXPECT_THAT(config.interactive_html,
Eq("\u003cstyle\u003e\u003c/style\u003e"));
- EXPECT_THAT(config.time_to_live,
- Eq(base::TimeDelta::FromMilliseconds(55000)));
+ EXPECT_THAT(time_to_live, Eq(base::TimeDelta::FromMilliseconds(55000)));
}
TEST_F(DoodleFetcherImplTest, DoodleExpiresWithinThirtyDaysForTooLargeTTL) {
DoodleState state(DoodleState::NO_DOODLE);
+ base::TimeDelta time_to_live;
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, &time_to_live, &response));
RespondWithData(R"json({"ddljson": {
"time_to_live_ms":5184000000,
"large_image": {"url":"/logos/doodles/2015/some.gif"}
}})json"); // 60 days
EXPECT_THAT(state, Eq(DoodleState::AVAILABLE));
- ASSERT_TRUE(response.has_value());
- EXPECT_THAT(response.value().time_to_live,
+ EXPECT_TRUE(response.has_value());
+ EXPECT_THAT(time_to_live,
Eq(base::TimeDelta::FromMilliseconds(30ul * 24 * 60 * 60 *
1000))); // 30 days
}
TEST_F(DoodleFetcherImplTest, DoodleExpiresImmediatelyWithNegativeTTL) {
DoodleState state(DoodleState::NO_DOODLE);
+ base::TimeDelta time_to_live;
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, &time_to_live, &response));
RespondWithData(R"json({"ddljson": {
"time_to_live_ms":-1,
"large_image": {"url":"/logos/doodles/2015/some.gif"}
}})json");
EXPECT_THAT(state, Eq(DoodleState::AVAILABLE));
- ASSERT_TRUE(response.has_value());
- EXPECT_THAT(response.value().time_to_live,
- Eq(base::TimeDelta::FromMilliseconds(0)));
+ EXPECT_TRUE(response.has_value());
+ EXPECT_THAT(time_to_live, Eq(base::TimeDelta::FromMilliseconds(0)));
}
TEST_F(DoodleFetcherImplTest, DoodleExpiresImmediatelyWithoutValidTTL) {
DoodleState state(DoodleState::NO_DOODLE);
+ base::TimeDelta time_to_live;
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, &time_to_live, &response));
RespondWithData(R"json({"ddljson": {
"large_image": {"url":"/logos/doodles/2015/some.gif"}
}})json");
EXPECT_THAT(state, Eq(DoodleState::AVAILABLE));
- ASSERT_TRUE(response.has_value());
- EXPECT_THAT(response.value().time_to_live,
- Eq(base::TimeDelta::FromMilliseconds(0)));
+ EXPECT_TRUE(response.has_value());
+ EXPECT_THAT(time_to_live, Eq(base::TimeDelta::FromMilliseconds(0)));
}
TEST_F(DoodleFetcherImplTest, ReturnsNoDoodleForMissingLargeImageUrl) {
@@ -280,7 +289,7 @@ TEST_F(DoodleFetcherImplTest, ReturnsNoDoodleForMissingLargeImageUrl) {
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, nullptr, &response));
RespondWithData(R"json({"ddljson": {
"time_to_live_ms":55000,
"large_image": {}
@@ -295,7 +304,7 @@ TEST_F(DoodleFetcherImplTest, EmptyResponsesCausesNoDoodleState) {
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, nullptr, &response));
RespondWithData("{\"ddljson\":{}}");
EXPECT_THAT(state, Eq(DoodleState::NO_DOODLE));
@@ -307,7 +316,7 @@ TEST_F(DoodleFetcherImplTest, ResponseContainsExactlyTheSampleImages) {
base::Optional<DoodleConfig> response;
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state, &response));
+ CreateResponseSavingCallback(&state, nullptr, &response));
RespondWithData(R"json()]}'{
"ddljson": {
"time_to_live_ms":55000,
@@ -374,10 +383,10 @@ TEST_F(DoodleFetcherImplTest, RespondsToMultipleRequestsWithSameFetcher) {
// Trigger two requests.
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state1, &response1));
+ CreateResponseSavingCallback(&state1, nullptr, &response1));
net::URLFetcher* first_created_fetcher = GetRunningFetcher();
doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(&state2, &response2));
+ CreateResponseSavingCallback(&state2, nullptr, &response2));
net::URLFetcher* second_created_fetcher = GetRunningFetcher();
// Expect that only one fetcher handles both requests.
@@ -396,8 +405,8 @@ TEST_F(DoodleFetcherImplTest, RespondsToMultipleRequestsWithSameFetcher) {
}
TEST_F(DoodleFetcherImplTest, ReceivesBaseUrlFromTracker) {
- doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(/*state=*/nullptr, /*response=*/nullptr));
+ doodle_fetcher()->FetchDoodle(CreateResponseSavingCallback(
+ /*state=*/nullptr, nullptr, /*response=*/nullptr));
EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(),
Eq(GetGoogleBaseURL().Resolve(kDoodleConfigPath)));
@@ -407,8 +416,8 @@ TEST_F(DoodleFetcherImplTest, OverridesBaseUrlWithCommandLineArgument) {
base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
switches::kGoogleBaseURL, "http://www.google.kz");
- doodle_fetcher()->FetchDoodle(
- CreateResponseSavingCallback(/*state=*/nullptr, /*response=*/nullptr));
+ doodle_fetcher()->FetchDoodle(CreateResponseSavingCallback(
+ /*state=*/nullptr, nullptr, /*response=*/nullptr));
EXPECT_THAT(GetRunningFetcher()->GetOriginalURL(),
Eq(GURL("http://www.google.kz").Resolve(kDoodleConfigPath)));
« no previous file with comments | « components/doodle/doodle_fetcher_impl.cc ('k') | components/doodle/doodle_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698