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

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

Issue 2715433006: [Offline Pages] Turn Offliner::Cancel into an async operation to resolve conflicting assumptions (Closed)
Patch Set: forgot to init 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
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 8cfd398dfcdb417f69fa92e3a4f85ab1efddf1a3..2d0a21bbf8392c05fb0e145b64916a38b09257e0 100644
--- a/chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc
+++ b/chrome/browser/android/offline_pages/prerendering_offliner_unittest.cc
@@ -172,6 +172,10 @@ class PrerenderingOfflinerTest : public testing::Test {
return base::Bind(&PrerenderingOfflinerTest::OnCompletion,
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_; }
@@ -179,10 +183,12 @@ class PrerenderingOfflinerTest : public testing::Test {
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 OnCancel(int64_t offline_id);
content::TestBrowserThreadBundle thread_bundle_;
TestingProfile profile_;
@@ -191,6 +197,7 @@ class PrerenderingOfflinerTest : public testing::Test {
MockPrerenderingLoader* loader_;
MockOfflinePageModel* model_;
bool completion_callback_called_;
+ bool cancel_callback_called_;
Offliner::RequestStatus request_status_;
OfflinerPolicy* policy_;
@@ -200,6 +207,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() {}
@@ -221,6 +229,11 @@ void PrerenderingOfflinerTest::OnCompletion(const SavePageRequest& request,
request_status_ = status;
}
+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();
SavePageRequest request(
@@ -285,7 +298,9 @@ TEST_F(PrerenderingOfflinerTest, CancelWhenLoading) {
EXPECT_TRUE(offliner()->LoadAndSave(request, callback()));
EXPECT_FALSE(loader()->IsIdle());
- offliner()->Cancel();
+ offliner()->Cancel(cancel_callback());
+ PumpLoop();
+ EXPECT_TRUE(cancel_callback_called());
EXPECT_TRUE(loader()->IsIdle());
}
@@ -303,9 +318,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