summaryrefslogtreecommitdiff
path: root/addons/payment_adyen/tests
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/payment_adyen/tests
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/payment_adyen/tests')
-rw-r--r--addons/payment_adyen/tests/__init__.py1
-rw-r--r--addons/payment_adyen/tests/test_adyen.py79
2 files changed, 80 insertions, 0 deletions
diff --git a/addons/payment_adyen/tests/__init__.py b/addons/payment_adyen/tests/__init__.py
new file mode 100644
index 00000000..40a96afc
--- /dev/null
+++ b/addons/payment_adyen/tests/__init__.py
@@ -0,0 +1 @@
+# -*- coding: utf-8 -*-
diff --git a/addons/payment_adyen/tests/test_adyen.py b/addons/payment_adyen/tests/test_adyen.py
new file mode 100644
index 00000000..1d792ccc
--- /dev/null
+++ b/addons/payment_adyen/tests/test_adyen.py
@@ -0,0 +1,79 @@
+# -*- coding: utf-8 -*-
+
+from lxml import objectify
+
+from odoo.addons.payment.tests.common import PaymentAcquirerCommon
+from odoo.addons.payment_adyen.controllers.main import AdyenController
+from werkzeug import urls
+import odoo.tests
+
+
+class AdyenCommon(PaymentAcquirerCommon):
+
+ @classmethod
+ def setUpClass(cls, chart_template_ref=None):
+ super().setUpClass(chart_template_ref=chart_template_ref)
+
+ # some CC (always use expiration date 06 / 2016, cvc 737, cid 7373 (amex))
+ cls.amex = (('370000000000002', '7373'))
+ cls.dinersclub = (('36006666333344', '737'))
+ cls.discover = (('6011601160116611', '737'), ('644564456445644', '737'))
+ cls.jcb = (('3530111333300000', '737'))
+ cls.mastercard = (('5555444433331111', '737'), ('5555555555554444', '737'))
+ cls.visa = (('4111 1111 1111 1111', '737'), ('4444333322221111', '737'))
+ cls.mcdebit = (('5500000000000004', '737'))
+ cls.visadebit = (('4400000000000008', '737'))
+ cls.maestro = (('6731012345678906', '737'))
+ cls.laser = (('630495060000000000', '737'))
+ cls.hipercard = (('6062828888666688', '737'))
+ cls.dsmastercard = (('521234567890 1234', '737', 'user', 'password'))
+ cls.dsvisa = (('4212345678901237', '737', 'user', 'password'))
+ cls.mistercash = (('6703444444444449', None, 'user', 'password'))
+ cls.adyen = cls.env.ref('payment.payment_acquirer_adyen')
+ cls.adyen.write({
+ 'adyen_merchant_account': 'dummy',
+ 'adyen_skin_code': 'dummy',
+ 'adyen_skin_hmac_key': 'dummy',
+ 'state': 'test',
+ })
+
+
+@odoo.tests.tagged('post_install', '-at_install', 'external', '-standard')
+class AdyenForm(AdyenCommon):
+
+ def test_10_adyen_form_render(self):
+ # be sure not to do stupid things
+ adyen = self.adyen
+ self.assertEqual(adyen.state, 'test', 'test without test environment')
+
+ # ----------------------------------------
+ # Test: button direct rendering
+ # ----------------------------------------
+
+ base_url = self.env['ir.config_parameter'].get_param('web.base.url')
+ form_values = {
+ 'merchantAccount': 'OpenERPCOM',
+ 'merchantReference': 'test_ref0',
+ 'skinCode': 'cbqYWvVL',
+ 'paymentAmount': '1',
+ 'currencyCode': 'EUR',
+ 'resURL': urls.url_join(base_url, AdyenController._return_url),
+ }
+
+ # render the button
+ res = adyen.render(
+ 'test_ref0', 0.01, self.currency_euro.id,
+ partner_id=None,
+ partner_values=self.buyer_values)
+
+ # check form result
+ tree = objectify.fromstring(res)
+ self.assertEqual(tree.get('action'), 'https://test.adyen.com/hpp/pay.shtml', 'adyen: wrong form POST url')
+ for form_input in tree.input:
+ if form_input.get('name') in ['submit', 'shipBeforeDate', 'sessionValidity', 'shopperLocale', 'merchantSig']:
+ continue
+ self.assertEqual(
+ form_input.get('value'),
+ form_values[form_input.get('name')],
+ 'adyen: wrong value for input %s: received %s instead of %s' % (form_input.get('name'), form_input.get('value'), form_values[form_input.get('name')])
+ )