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

Unified Diff: content/browser/background_fetch/background_fetch_data_manager_unittest.cc

Issue 2786783002: Dispatch a bare Service Worker event for a finished Background Fetch (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: content/browser/background_fetch/background_fetch_data_manager_unittest.cc
diff --git a/content/browser/background_fetch/background_fetch_data_manager_unittest.cc b/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
index 11fac5bd651cb2cd601f9367383c6fa39197e66f..dfb89344cc59113fef1c8e8fa95cdcb667914518 100644
--- a/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
+++ b/content/browser/background_fetch/background_fetch_data_manager_unittest.cc
@@ -6,28 +6,19 @@
#include <memory>
#include <string>
-#include <vector>
#include "base/bind_helpers.h"
#include "base/callback_helpers.h"
#include "base/memory/ptr_util.h"
#include "base/run_loop.h"
-#include "content/browser/background_fetch/background_fetch_job_info.h"
-#include "content/browser/background_fetch/background_fetch_job_response_data.h"
#include "content/browser/background_fetch/background_fetch_request_info.h"
#include "content/browser/background_fetch/background_fetch_test_base.h"
-#include "content/common/service_worker/service_worker_types.h"
#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/download_interrupt_reasons.h"
-#include "content/public/browser/download_item.h"
namespace content {
namespace {
-const char kResource[] = "https://example.com/resource.html";
-const char kTag[] = "TestRequestTag";
-const char kJobOrigin[] = "https://example.com";
-const int64_t kServiceWorkerRegistrationId = 9001;
+const char kExampleTag[] = "my-example-tag";
} // namespace
@@ -71,62 +62,6 @@ class BackgroundFetchDataManagerTest : public BackgroundFetchTestBase {
run_loop.Run();
}
- void CreateRequests(int num_requests) {
- DCHECK_GT(num_requests, 0);
- // Create |num_requests| BackgroundFetchRequestInfo's.
- std::vector<std::unique_ptr<BackgroundFetchRequestInfo>> request_infos;
- for (int i = 0; i < num_requests; i++) {
- ServiceWorkerHeaderMap headers;
- ServiceWorkerFetchRequest request(GURL(kResource), "GET", headers,
- Referrer(), false /* is_reload */);
- request_infos.push_back(
- base::MakeUnique<BackgroundFetchRequestInfo>(i, request));
- }
- std::unique_ptr<BackgroundFetchJobInfo> job_info =
- base::MakeUnique<BackgroundFetchJobInfo>(
- kTag, url::Origin(GURL(kJobOrigin)), kServiceWorkerRegistrationId);
- job_info->set_num_requests(num_requests);
-
- job_guid_ = job_info->guid();
-
- background_fetch_data_manager_->WriteJobToStorage(std::move(job_info),
- std::move(request_infos));
- }
-
- void GetResponse() {
- base::RunLoop run_loop;
- BackgroundFetchResponseCompleteCallback callback =
- base::Bind(&BackgroundFetchDataManagerTest::DidGetResponse,
- base::Unretained(this), run_loop.QuitClosure());
- BrowserThread::PostTask(
- BrowserThread::IO, FROM_HERE,
- base::Bind(&BackgroundFetchDataManager::GetJobResponse,
- base::Unretained(background_fetch_data_manager()), job_guid_,
- base::Bind(&BackgroundFetchDataManagerTest::DidGetResponse,
- base::Unretained(this), run_loop.QuitClosure())));
- run_loop.Run();
- }
-
- void DidGetResponse(base::Closure closure,
- std::vector<ServiceWorkerResponse> responses,
- std::vector<std::unique_ptr<BlobHandle>> blobs) {
- responses_ = std::move(responses);
- blobs_ = std::move(blobs);
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, closure);
- }
-
- const std::string& job_guid() const { return job_guid_; }
- BackgroundFetchDataManager* background_fetch_data_manager() {
- return background_fetch_data_manager_.get();
- }
-
- const std::vector<ServiceWorkerResponse>& responses() const {
- return responses_;
- }
- const std::vector<std::unique_ptr<BlobHandle>>& blobs() const {
- return blobs_;
- }
-
private:
void DidCreateRegistration(
base::Closure quit_closure,
@@ -150,8 +85,6 @@ class BackgroundFetchDataManagerTest : public BackgroundFetchTestBase {
std::string job_guid_;
std::unique_ptr<BackgroundFetchDataManager> background_fetch_data_manager_;
- std::vector<ServiceWorkerResponse> responses_;
- std::vector<std::unique_ptr<BlobHandle>> blobs_;
};
TEST_F(BackgroundFetchDataManagerTest, NoDuplicateRegistrations) {
@@ -159,7 +92,7 @@ TEST_F(BackgroundFetchDataManagerTest, NoDuplicateRegistrations) {
// registration that's already known to the system.
BackgroundFetchRegistrationId registration_id;
- ASSERT_TRUE(CreateRegistrationId(kTag, &registration_id));
+ ASSERT_TRUE(CreateRegistrationId(kExampleTag, &registration_id));
std::vector<ServiceWorkerFetchRequest> requests;
BackgroundFetchOptions options;
@@ -191,117 +124,4 @@ TEST_F(BackgroundFetchDataManagerTest, NoDuplicateRegistrations) {
EXPECT_EQ(error, blink::mojom::BackgroundFetchError::NONE);
}
-TEST_F(BackgroundFetchDataManagerTest, OutOfOrderCompletion) {
- CreateRequests(10);
- BackgroundFetchDataManager* data_manager = background_fetch_data_manager();
- const std::string& job_guid = BackgroundFetchDataManagerTest::job_guid();
- std::vector<std::string> request_guids;
-
- // Start half of the fetch requests.
- for (int i = 0; i < 5; i++) {
- ASSERT_TRUE(data_manager->HasRequestsRemaining(job_guid));
- const BackgroundFetchRequestInfo& request_info =
- data_manager->GetNextBackgroundFetchRequestInfo(job_guid);
- request_guids.push_back(request_info.guid());
- }
-
- // Complete all of the fetches out of order except for #1.
- DownloadItem::DownloadState complete = DownloadItem::DownloadState::COMPLETE;
- DownloadInterruptReason no_interrupt =
- DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_NONE;
- EXPECT_TRUE(data_manager->UpdateRequestState(job_guid, request_guids[3],
- complete, no_interrupt));
- EXPECT_TRUE(data_manager->UpdateRequestState(job_guid, request_guids[2],
- complete, no_interrupt));
- EXPECT_TRUE(data_manager->UpdateRequestState(job_guid, request_guids[4],
- complete, no_interrupt));
- EXPECT_TRUE(data_manager->UpdateRequestState(job_guid, request_guids[0],
- complete, no_interrupt));
-
- EXPECT_TRUE(data_manager->HasRequestsRemaining(job_guid));
- EXPECT_FALSE(data_manager->IsComplete(job_guid));
-
- // Start and complete the remaining requests.
- for (int i = 5; i < 10; i++) {
- const BackgroundFetchRequestInfo& request_info =
- data_manager->GetNextBackgroundFetchRequestInfo(job_guid);
- request_guids.push_back(request_info.guid());
- data_manager->UpdateRequestState(job_guid, request_guids[i], complete,
- no_interrupt);
- }
-
- EXPECT_FALSE(data_manager->IsComplete(job_guid));
- EXPECT_FALSE(data_manager->HasRequestsRemaining(job_guid));
-
- // Complete the final request.
- EXPECT_FALSE(data_manager->UpdateRequestState(job_guid, request_guids[1],
- complete, no_interrupt));
- EXPECT_TRUE(data_manager->IsComplete(job_guid));
-}
-
-TEST_F(BackgroundFetchDataManagerTest, PauseAndResume) {
- CreateRequests(1);
- BackgroundFetchDataManager* data_manager = background_fetch_data_manager();
- const std::string& job_guid = BackgroundFetchDataManagerTest::job_guid();
-
- // Start the request.
- ASSERT_TRUE(data_manager->HasRequestsRemaining(job_guid));
- const BackgroundFetchRequestInfo& request_info =
- data_manager->GetNextBackgroundFetchRequestInfo(job_guid);
-
- EXPECT_FALSE(data_manager->HasRequestsRemaining(job_guid));
- EXPECT_FALSE(data_manager->IsComplete(job_guid));
-
- // Set the request state to be paused. This should not complete the job.
- EXPECT_FALSE(data_manager->UpdateRequestState(
- job_guid, request_info.guid(), DownloadItem::DownloadState::INTERRUPTED,
- DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN));
- EXPECT_FALSE(data_manager->IsComplete(job_guid));
-
- // Unpause the request.
- EXPECT_FALSE(data_manager->UpdateRequestState(
- job_guid, request_info.guid(), DownloadItem::DownloadState::IN_PROGRESS,
- DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_NONE));
- EXPECT_FALSE(data_manager->IsComplete(job_guid));
-
- // Complete the request.
- EXPECT_FALSE(data_manager->UpdateRequestState(
- job_guid, request_info.guid(), DownloadItem::DownloadState::COMPLETE,
- DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_NONE));
- EXPECT_TRUE(data_manager->IsComplete(job_guid));
-}
-
-TEST_F(BackgroundFetchDataManagerTest, CancelledRequest) {
- CreateRequests(1);
- BackgroundFetchDataManager* data_manager = background_fetch_data_manager();
- const std::string& job_guid = BackgroundFetchDataManagerTest::job_guid();
-
- // Start the request.
- ASSERT_TRUE(data_manager->HasRequestsRemaining(job_guid));
- const BackgroundFetchRequestInfo& request_info =
- data_manager->GetNextBackgroundFetchRequestInfo(job_guid);
-
- EXPECT_FALSE(data_manager->HasRequestsRemaining(job_guid));
- EXPECT_FALSE(data_manager->IsComplete(job_guid));
-
- // Cancel the request.
- EXPECT_FALSE(data_manager->UpdateRequestState(
- job_guid, request_info.guid(), DownloadItem::DownloadState::CANCELLED,
- DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE));
- EXPECT_TRUE(data_manager->IsComplete(job_guid));
-}
-
-TEST_F(BackgroundFetchDataManagerTest, PrepareResponse) {
- CreateRequests(1);
- BackgroundFetchDataManager* data_manager = background_fetch_data_manager();
- const std::string& job_guid = BackgroundFetchDataManagerTest::job_guid();
-
- const BackgroundFetchRequestInfo& request_info =
- data_manager->GetNextBackgroundFetchRequestInfo(job_guid);
- EXPECT_FALSE(data_manager->UpdateRequestState(
- job_guid, request_info.guid(), DownloadItem::DownloadState::COMPLETE,
- DownloadInterruptReason::DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE));
- EXPECT_TRUE(data_manager->IsComplete(job_guid));
-}
-
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698