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

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

Issue 2806133002: PaymentHandler: Implement set/get methods in PaymentInstruments (content) (Closed)
Patch Set: content Created 3 years, 8 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_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

Powered by Google App Engine
This is Rietveld 408576698