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

Unified Diff: content/browser/payments/payment_app_content_unittest_base.cc

Issue 2610163002: PaymentApp: Implement InvokePaymentApp() in browser side. (Closed)
Patch Set: nhiroki's comments Created 3 years, 11 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/payments/payment_app_content_unittest_base.cc
diff --git a/content/browser/payments/payment_app_content_unittest_base.cc b/content/browser/payments/payment_app_content_unittest_base.cc
index 38ffa37a5d8351e742736eb6ec8778d809d583bb..cee7dc49cb261de404f3cf3b32c1057c5f5165e9 100644
--- a/content/browser/payments/payment_app_content_unittest_base.cc
+++ b/content/browser/payments/payment_app_content_unittest_base.cc
@@ -15,6 +15,7 @@
#include "content/browser/service_worker/embedded_worker_test_helper.h"
#include "content/browser/service_worker/service_worker_context_wrapper.h"
#include "content/browser/storage_partition_impl.h"
+#include "content/common/service_worker/service_worker_event_dispatcher.mojom.h"
#include "content/common/service_worker/service_worker_status_code.h"
#include "content/public/test/test_browser_context.h"
#include "content/public/test/test_browser_thread_bundle.h"
@@ -41,21 +42,69 @@ void UnregisterServiceWorkerCallback(bool* called,
} // namespace
+class PaymentAppContentUnitTestBase::PaymentAppForWorkerTestHelper
+ : public EmbeddedWorkerTestHelper {
+ public:
+ PaymentAppForWorkerTestHelper()
+ : EmbeddedWorkerTestHelper(base::FilePath()),
+ was_dispatched_(false),
+ last_sw_registration_id_(kInvalidServiceWorkerRegistrationId) {}
+ ~PaymentAppForWorkerTestHelper() override {}
+
+ void OnStartWorker(
+ int embedded_worker_id,
+ int64_t service_worker_version_id,
+ const GURL& scope,
+ const GURL& script_url,
+ bool pause_after_download,
+ mojom::ServiceWorkerEventDispatcherRequest request) override {
+ ServiceWorkerVersion* version =
+ context()->GetLiveVersion(service_worker_version_id);
+ version->SetMainScriptHttpResponseInfo(
+ EmbeddedWorkerTestHelper::CreateHttpResponseInfo());
+ last_sw_registration_id_ = version->registration_id();
+ last_sw_scope_ = scope;
+ EmbeddedWorkerTestHelper::OnStartWorker(
+ embedded_worker_id, service_worker_version_id, scope, script_url,
+ pause_after_download, std::move(request));
+ }
+
+ void OnPaymentRequestEvent(
+ payments::mojom::PaymentAppRequestDataPtr data,
+ const mojom::ServiceWorkerEventDispatcher::
+ DispatchPaymentRequestEventCallback& callback) override {
+ ASSERT_FALSE(was_dispatched_);
+ EmbeddedWorkerTestHelper::OnPaymentRequestEvent(std::move(data), callback);
+ was_dispatched_ = true;
+ }
+
+ bool was_dispatched_;
+ int64_t last_sw_registration_id_;
+ GURL last_sw_scope_;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(PaymentAppForWorkerTestHelper);
+};
+
PaymentAppContentUnitTestBase::PaymentAppContentUnitTestBase()
: thread_bundle_(
new TestBrowserThreadBundle(TestBrowserThreadBundle::IO_MAINLOOP)),
- embedded_worker_helper_(new EmbeddedWorkerTestHelper(base::FilePath())) {
- embedded_worker_helper_->context_wrapper()->set_storage_partition(
- storage_partition());
- payment_app_context()->Init(embedded_worker_helper_->context_wrapper());
+ worker_helper_(new PaymentAppForWorkerTestHelper()) {
+ worker_helper_->context_wrapper()->set_storage_partition(storage_partition());
+ storage_partition()->service_worker_context_->Shutdown();
+ base::RunLoop().RunUntilIdle();
+
+ storage_partition()->service_worker_context_ =
+ worker_helper_->context_wrapper();
+ payment_app_context()->Init(worker_helper_->context_wrapper());
base::RunLoop().RunUntilIdle();
}
PaymentAppContentUnitTestBase::~PaymentAppContentUnitTestBase() {}
BrowserContext* PaymentAppContentUnitTestBase::browser_context() {
- DCHECK(embedded_worker_helper_);
- return embedded_worker_helper_->browser_context();
+ DCHECK(worker_helper_);
+ return worker_helper_->browser_context();
}
PaymentAppManager* PaymentAppContentUnitTestBase::CreatePaymentAppManager(
@@ -63,7 +112,7 @@ PaymentAppManager* PaymentAppContentUnitTestBase::CreatePaymentAppManager(
const GURL& sw_script_url) {
// Register service worker for payment app manager.
bool called = false;
- embedded_worker_helper_->context()->RegisterServiceWorker(
+ worker_helper_->context()->RegisterServiceWorker(
scope_url, sw_script_url, nullptr,
base::Bind(&RegisterServiceWorkerCallback, &called));
base::RunLoop().RunUntilIdle();
@@ -142,12 +191,28 @@ void PaymentAppContentUnitTestBase::UnregisterServiceWorker(
const GURL& scope_url) {
// Unregister service worker.
bool called = false;
- embedded_worker_helper_->context()->UnregisterServiceWorker(
+ worker_helper_->context()->UnregisterServiceWorker(
scope_url, base::Bind(&UnregisterServiceWorkerCallback, &called));
base::RunLoop().RunUntilIdle();
EXPECT_TRUE(called);
}
+void PaymentAppContentUnitTestBase::ResetPaymentAppInvoked() const {
+ worker_helper_->was_dispatched_ = false;
+}
+
+bool PaymentAppContentUnitTestBase::payment_app_invoked() const {
+ return worker_helper_->was_dispatched_;
+}
+
+int64_t PaymentAppContentUnitTestBase::last_sw_registration_id() const {
+ return worker_helper_->last_sw_registration_id_;
+}
+
+const GURL& PaymentAppContentUnitTestBase::last_sw_scope_url() const {
+ return worker_helper_->last_sw_scope_;
+}
+
StoragePartitionImpl* PaymentAppContentUnitTestBase::storage_partition() {
return static_cast<StoragePartitionImpl*>(
BrowserContext::GetDefaultStoragePartition(browser_context()));
« no previous file with comments | « content/browser/payments/payment_app_content_unittest_base.h ('k') | content/browser/payments/payment_app_provider_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698