Chromium Code Reviews| Index: content/browser/payments/payment_manager_unittest.cc |
| diff --git a/content/browser/payments/payment_manager_unittest.cc b/content/browser/payments/payment_manager_unittest.cc |
| index ebed2aebd2d31dd88171d3a2030173604f9def37..9c4fdd3fe9d0606d52dc171bdd795cb681311560 100644 |
| --- a/content/browser/payments/payment_manager_unittest.cc |
| +++ b/content/browser/payments/payment_manager_unittest.cc |
| @@ -5,6 +5,7 @@ |
| #include <utility> |
| #include "base/macros.h" |
| +#include "base/run_loop.h" |
| #include "components/payments/content/payment_app.mojom.h" |
| #include "content/browser/payments/payment_app_content_unittest_base.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -12,6 +13,9 @@ |
| using payments::mojom::PaymentAppManifestError; |
| using payments::mojom::PaymentAppManifestPtr; |
| +using payments::mojom::PaymentHandlerStatus; |
| +using payments::mojom::PaymentInstrument; |
| +using payments::mojom::PaymentInstrumentPtr; |
|
please use gerrit instead
2017/04/12 19:11:31
Please prepend the top namespace with :: and move
zino
2017/04/15 05:18:09
Done.
|
| namespace content { |
| namespace { |
| @@ -36,6 +40,19 @@ void GetManifestCallback(bool* called, |
| *out_error = error; |
| } |
| +void SetPaymentInstrumentCallback(PaymentHandlerStatus* out_status, |
| + PaymentHandlerStatus status) { |
| + *out_status = status; |
| +} |
| + |
| +void GetPaymentInstrumentCallback(PaymentInstrumentPtr* out_instrument, |
| + PaymentHandlerStatus* out_status, |
| + PaymentInstrumentPtr instrument, |
| + PaymentHandlerStatus status) { |
| + *out_instrument = std::move(instrument); |
| + *out_status = status; |
| +} |
| + |
| } // namespace |
| class PaymentManagerTest : public PaymentAppContentUnitTestBase { |
| @@ -48,6 +65,24 @@ class PaymentManagerTest : public PaymentAppContentUnitTestBase { |
| PaymentManager* payment_manager() const { return manager_; } |
| + void SetPaymentInstrument(const std::string& instrumentKey, |
| + PaymentInstrumentPtr instrument, |
| + PaymentHandlerStatus* out_status) { |
| + manager_->SetPaymentInstrument( |
| + instrumentKey, std::move(instrument), |
| + base::Bind(&SetPaymentInstrumentCallback, out_status)); |
| + base::RunLoop().RunUntilIdle(); |
| + } |
| + |
| + void GetPaymentInstrument(const std::string& instrumentKey, |
| + PaymentInstrumentPtr* out_instrument, |
| + PaymentHandlerStatus* out_status) { |
| + manager_->GetPaymentInstrument( |
| + instrumentKey, |
| + base::Bind(&GetPaymentInstrumentCallback, out_instrument, out_status)); |
| + base::RunLoop().RunUntilIdle(); |
| + } |
| + |
| private: |
| // Owned by payment_app_context_. |
| PaymentManager* manager_; |
| @@ -121,4 +156,33 @@ TEST_F(PaymentManagerTest, GetManifestWithNoSavedManifest) { |
| read_error); |
| } |
| +TEST_F(PaymentManagerTest, SetAndGetPaymentInstrument) { |
| + PaymentHandlerStatus write_status = PaymentHandlerStatus::NOT_FOUND; |
| + PaymentInstrumentPtr write_details = PaymentInstrument::New(); |
| + write_details->name = "Visa ending ****4756", |
| + write_details->enabled_methods.push_back("visa"); |
| + write_details->stringified_capabilities = "{}"; |
| + ASSERT_EQ(PaymentHandlerStatus::NOT_FOUND, write_status); |
| + SetPaymentInstrument("test_key", std::move(write_details), &write_status); |
| + ASSERT_EQ(PaymentHandlerStatus::SUCCESS, write_status); |
| + |
| + PaymentHandlerStatus read_status = PaymentHandlerStatus::NOT_FOUND; |
| + PaymentInstrumentPtr read_details; |
| + ASSERT_EQ(PaymentHandlerStatus::NOT_FOUND, read_status); |
| + GetPaymentInstrument("test_key", &read_details, &read_status); |
| + ASSERT_EQ(PaymentHandlerStatus::SUCCESS, read_status); |
| + EXPECT_EQ("Visa ending ****4756", read_details->name); |
| + ASSERT_EQ(1U, read_details->enabled_methods.size()); |
| + EXPECT_EQ("visa", read_details->enabled_methods[0]); |
| + EXPECT_EQ("{}", read_details->stringified_capabilities); |
| +} |
| + |
| +TEST_F(PaymentManagerTest, GetUnstoredPaymentInstrument) { |
| + PaymentHandlerStatus read_status = PaymentHandlerStatus::SUCCESS; |
| + PaymentInstrumentPtr read_details; |
| + ASSERT_EQ(PaymentHandlerStatus::SUCCESS, read_status); |
| + GetPaymentInstrument("test_key", &read_details, &read_status); |
| + ASSERT_EQ(PaymentHandlerStatus::NOT_FOUND, read_status); |
| +} |
| + |
| } // namespace content |