1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/android/autofill/payments/payments_window_bridge.h"
#include <memory>
#include "base/android/jni_android.h"
#include "chrome/browser/ui/android/autofill/payments/payments_window_delegate.h"
#include "chrome/test/base/chrome_render_view_host_test_harness.h"
#include "components/autofill/content/browser/test_autofill_client_injector.h"
#include "components/autofill/content/browser/test_content_autofill_client.h"
#include "content/public/browser/web_contents.h"
#include "url/android/gurl_android.h"
#include "url/gurl.h"
namespace autofill::payments {
class MockPaymentsWindowDelegate : public PaymentsWindowDelegate {
public:
MockPaymentsWindowDelegate() = default;
MOCK_METHOD(void, OnDidFinishNavigationForBnpl, (const GURL&), (override));
MOCK_METHOD(void, WebContentsDestroyed, (), (override));
};
class PaymentsWindowBridgeTest : public ChromeRenderViewHostTestHarness {
public:
PaymentsWindowBridgeTest() : env_(base::android::AttachCurrentThread()) {}
protected:
void SetUp() override {
ChromeRenderViewHostTestHarness::SetUp();
payments_window_bridge_ =
std::make_unique<PaymentsWindowBridge>(&mock_delegate_);
}
TestContentAutofillClient* client() {
return autofill_client_injector_[web_contents()];
}
testing::StrictMock<MockPaymentsWindowDelegate> mock_delegate_;
std::unique_ptr<PaymentsWindowBridge> payments_window_bridge_;
raw_ptr<JNIEnv> env_;
private:
TestAutofillClientInjector<TestContentAutofillClient>
autofill_client_injector_;
};
TEST_F(PaymentsWindowBridgeTest, OnNavigationFinished_ForwardsCallToDelegate) {
GURL clicked_url("https://www.bnpltest.com/");
EXPECT_CALL(mock_delegate_, OnDidFinishNavigationForBnpl(clicked_url));
payments_window_bridge_->OnNavigationFinished(
env_, url::GURLAndroid::FromNativeGURL(env_, clicked_url));
}
TEST_F(PaymentsWindowBridgeTest,
OnWebContentsDestroyed_ForwardsCallToDelegate) {
EXPECT_CALL(mock_delegate_, WebContentsDestroyed());
payments_window_bridge_->OnWebContentsDestroyed(env_);
}
} // namespace autofill::payments
|