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

Unified Diff: chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc

Issue 2744553005: [Offline Pages] Turn Offliner::Cancel into an async operation to resolve conflicting assumptions be… (Closed)
Patch Set: Created 3 years, 9 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
Index: chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc
diff --git a/chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc b/chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc
index 01736f96bcd06aefba04de808f5586cbc6e467ad..e0a051c33c6b10f52622ef03ad740fb0973661ae 100644
--- a/chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc
+++ b/chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc
@@ -172,22 +172,30 @@ class PrerenderingOfflinerTest : public testing::Test {
return base::Bind(&PrerenderingOfflinerTest::OnCompletion,
base::Unretained(this));
}
+
Offliner::ProgressCallback const progress_callback() {
return base::Bind(&PrerenderingOfflinerTest::OnProgress,
base::Unretained(this));
}
+ Offliner::CancelCallback const cancel_callback() {
+ return base::Bind(&PrerenderingOfflinerTest::OnCancel,
+ base::Unretained(this));
+ }
+
bool SaveInProgress() const { return model_->mock_saving(); }
MockPrerenderingLoader* loader() { return loader_; }
MockOfflinePageModel* model() { return model_; }
bool completion_callback_called() { return completion_callback_called_; }
Offliner::RequestStatus request_status() { return request_status_; }
OfflinerPolicy* policy() { return policy_; }
+ bool cancel_callback_called() { return cancel_callback_called_; }
private:
void OnCompletion(const SavePageRequest& request,
Offliner::RequestStatus status);
void OnProgress(const SavePageRequest& request, int64_t bytes);
+ void OnCancel(int64_t offline_id);
content::TestBrowserThreadBundle thread_bundle_;
TestingProfile profile_;
@@ -196,6 +204,7 @@ class PrerenderingOfflinerTest : public testing::Test {
MockPrerenderingLoader* loader_;
MockOfflinePageModel* model_;
bool completion_callback_called_;
+ bool cancel_callback_called_;
Offliner::RequestStatus request_status_;
OfflinerPolicy* policy_;
@@ -205,6 +214,7 @@ class PrerenderingOfflinerTest : public testing::Test {
PrerenderingOfflinerTest::PrerenderingOfflinerTest()
: thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
completion_callback_called_(false),
+ cancel_callback_called_(false),
request_status_(Offliner::RequestStatus::UNKNOWN) {}
PrerenderingOfflinerTest::~PrerenderingOfflinerTest() {}
@@ -228,6 +238,10 @@ void PrerenderingOfflinerTest::OnCompletion(const SavePageRequest& request,
void PrerenderingOfflinerTest::OnProgress(const SavePageRequest& request,
int64_t bytes) {}
+void PrerenderingOfflinerTest::OnCancel(int64_t offline_id) {
+ DCHECK(!cancel_callback_called_);
+ cancel_callback_called_ = true;
+}
TEST_F(PrerenderingOfflinerTest, LoadAndSaveBadUrl) {
base::Time creation_time = base::Time::Now();
@@ -299,7 +313,9 @@ TEST_F(PrerenderingOfflinerTest, CancelWhenLoading) {
progress_callback()));
EXPECT_FALSE(loader()->IsIdle());
- offliner()->Cancel();
+ offliner()->Cancel(cancel_callback());
+ PumpLoop();
+ EXPECT_TRUE(cancel_callback_called());
EXPECT_TRUE(loader()->IsIdle());
}
@@ -318,9 +334,10 @@ TEST_F(PrerenderingOfflinerTest, CancelWhenLoaded) {
EXPECT_TRUE(loader()->IsLoaded());
EXPECT_TRUE(SaveInProgress());
- offliner()->Cancel();
+ offliner()->Cancel(cancel_callback());
PumpLoop();
EXPECT_FALSE(completion_callback_called());
+ EXPECT_TRUE(cancel_callback_called());
EXPECT_FALSE(loader()->IsLoaded());
// Note: save still in progress since it does not support canceling.
EXPECT_TRUE(SaveInProgress());
« no previous file with comments | « chrome/browser/android/offline_pages/prerendering_offliner.cc ('k') | components/offline_pages/core/background/offliner.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698