diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/payment_adyen/tests | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/payment_adyen/tests')
| -rw-r--r-- | addons/payment_adyen/tests/__init__.py | 1 | ||||
| -rw-r--r-- | addons/payment_adyen/tests/test_adyen.py | 79 |
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')]) + ) |
