activemerchant-est 1.4.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. data/CHANGELOG +480 -0
  2. data/CONTRIBUTORS +126 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +136 -0
  5. data/Rakefile +154 -0
  6. data/gem-public_cert.pem +20 -0
  7. data/init.rb +3 -0
  8. data/lib/active_merchant.rb +66 -0
  9. data/lib/active_merchant/billing/avs_result.rb +98 -0
  10. data/lib/active_merchant/billing/base.rb +57 -0
  11. data/lib/active_merchant/billing/check.rb +68 -0
  12. data/lib/active_merchant/billing/credit_card.rb +159 -0
  13. data/lib/active_merchant/billing/credit_card_formatting.rb +21 -0
  14. data/lib/active_merchant/billing/credit_card_methods.rb +125 -0
  15. data/lib/active_merchant/billing/cvv_result.rb +38 -0
  16. data/lib/active_merchant/billing/expiry_date.rb +34 -0
  17. data/lib/active_merchant/billing/gateway.rb +158 -0
  18. data/lib/active_merchant/billing/gateways.rb +18 -0
  19. data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
  20. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +736 -0
  21. data/lib/active_merchant/billing/gateways/beanstream.rb +102 -0
  22. data/lib/active_merchant/billing/gateways/beanstream/beanstream_core.rb +233 -0
  23. data/lib/active_merchant/billing/gateways/beanstream_interac.rb +54 -0
  24. data/lib/active_merchant/billing/gateways/bogus.rb +98 -0
  25. data/lib/active_merchant/billing/gateways/braintree.rb +17 -0
  26. data/lib/active_merchant/billing/gateways/card_stream.rb +230 -0
  27. data/lib/active_merchant/billing/gateways/cyber_source.rb +406 -0
  28. data/lib/active_merchant/billing/gateways/data_cash.rb +595 -0
  29. data/lib/active_merchant/billing/gateways/efsnet.rb +229 -0
  30. data/lib/active_merchant/billing/gateways/elavon.rb +134 -0
  31. data/lib/active_merchant/billing/gateways/eway.rb +277 -0
  32. data/lib/active_merchant/billing/gateways/exact.rb +222 -0
  33. data/lib/active_merchant/billing/gateways/first_pay.rb +172 -0
  34. data/lib/active_merchant/billing/gateways/instapay.rb +164 -0
  35. data/lib/active_merchant/billing/gateways/jetpay.rb +270 -0
  36. data/lib/active_merchant/billing/gateways/linkpoint.rb +449 -0
  37. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  38. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  39. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  40. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +220 -0
  41. data/lib/active_merchant/billing/gateways/moneris.rb +205 -0
  42. data/lib/active_merchant/billing/gateways/net_registry.rb +189 -0
  43. data/lib/active_merchant/billing/gateways/netbilling.rb +168 -0
  44. data/lib/active_merchant/billing/gateways/ogone.rb +279 -0
  45. data/lib/active_merchant/billing/gateways/pay_junction.rb +392 -0
  46. data/lib/active_merchant/billing/gateways/pay_secure.rb +120 -0
  47. data/lib/active_merchant/billing/gateways/payflow.rb +236 -0
  48. data/lib/active_merchant/billing/gateways/payflow/payflow_common_api.rb +207 -0
  49. data/lib/active_merchant/billing/gateways/payflow/payflow_express_response.rb +39 -0
  50. data/lib/active_merchant/billing/gateways/payflow/payflow_response.rb +13 -0
  51. data/lib/active_merchant/billing/gateways/payflow_express.rb +138 -0
  52. data/lib/active_merchant/billing/gateways/payflow_express_uk.rb +15 -0
  53. data/lib/active_merchant/billing/gateways/payflow_uk.rb +21 -0
  54. data/lib/active_merchant/billing/gateways/payment_express.rb +230 -0
  55. data/lib/active_merchant/billing/gateways/paypal.rb +121 -0
  56. data/lib/active_merchant/billing/gateways/paypal/paypal_common_api.rb +326 -0
  57. data/lib/active_merchant/billing/gateways/paypal/paypal_express_response.rb +38 -0
  58. data/lib/active_merchant/billing/gateways/paypal_ca.rb +13 -0
  59. data/lib/active_merchant/billing/gateways/paypal_express.rb +130 -0
  60. data/lib/active_merchant/billing/gateways/paypal_express_common.rb +20 -0
  61. data/lib/active_merchant/billing/gateways/plugnpay.rb +292 -0
  62. data/lib/active_merchant/billing/gateways/psigate.rb +214 -0
  63. data/lib/active_merchant/billing/gateways/psl_card.rb +306 -0
  64. data/lib/active_merchant/billing/gateways/quickpay.rb +213 -0
  65. data/lib/active_merchant/billing/gateways/realex.rb +200 -0
  66. data/lib/active_merchant/billing/gateways/sage.rb +146 -0
  67. data/lib/active_merchant/billing/gateways/sage/sage_bankcard.rb +88 -0
  68. data/lib/active_merchant/billing/gateways/sage/sage_core.rb +116 -0
  69. data/lib/active_merchant/billing/gateways/sage/sage_virtual_check.rb +97 -0
  70. data/lib/active_merchant/billing/gateways/sage_pay.rb +308 -0
  71. data/lib/active_merchant/billing/gateways/sallie_mae.rb +144 -0
  72. data/lib/active_merchant/billing/gateways/secure_pay.rb +31 -0
  73. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  74. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  75. data/lib/active_merchant/billing/gateways/skip_jack.rb +452 -0
  76. data/lib/active_merchant/billing/gateways/smart_ps.rb +265 -0
  77. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  78. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  79. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  80. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  81. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  82. data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
  83. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  84. data/lib/active_merchant/billing/integrations.rb +28 -0
  85. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  86. data/lib/active_merchant/billing/integrations/adyen.rb +29 -0
  87. data/lib/active_merchant/billing/integrations/adyen/helper.rb +103 -0
  88. data/lib/active_merchant/billing/integrations/adyen/notification.rb +91 -0
  89. data/lib/active_merchant/billing/integrations/adyen/return.rb +52 -0
  90. data/lib/active_merchant/billing/integrations/bogus.rb +23 -0
  91. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  92. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  93. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  94. data/lib/active_merchant/billing/integrations/chronopay.rb +23 -0
  95. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  96. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  97. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  98. data/lib/active_merchant/billing/integrations/gestpay.rb +25 -0
  99. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  100. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  101. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  102. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  103. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  104. data/lib/active_merchant/billing/integrations/hi_trust.rb +27 -0
  105. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  106. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  107. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  108. data/lib/active_merchant/billing/integrations/nochex.rb +88 -0
  109. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  110. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  111. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  112. data/lib/active_merchant/billing/integrations/notification.rb +68 -0
  113. data/lib/active_merchant/billing/integrations/paypal.rb +39 -0
  114. data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
  115. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  116. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  117. data/lib/active_merchant/billing/integrations/pizza.rb +116 -0
  118. data/lib/active_merchant/billing/integrations/pizza/helper.rb +117 -0
  119. data/lib/active_merchant/billing/integrations/pizza/notification.rb +101 -0
  120. data/lib/active_merchant/billing/integrations/quickpay.rb +17 -0
  121. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  122. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  123. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  124. data/lib/active_merchant/billing/integrations/sampo_est.rb +101 -0
  125. data/lib/active_merchant/billing/integrations/sampo_est/helper.rb +17 -0
  126. data/lib/active_merchant/billing/integrations/sampo_est/notification.rb +12 -0
  127. data/lib/active_merchant/billing/integrations/seb_est.rb +100 -0
  128. data/lib/active_merchant/billing/integrations/seb_est/helper.rb +16 -0
  129. data/lib/active_merchant/billing/integrations/seb_est/notification.rb +12 -0
  130. data/lib/active_merchant/billing/integrations/swedbank_est.rb +99 -0
  131. data/lib/active_merchant/billing/integrations/swedbank_est/helper.rb +20 -0
  132. data/lib/active_merchant/billing/integrations/swedbank_est/notification.rb +12 -0
  133. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  134. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  135. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  136. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  137. data/lib/active_merchant/billing/response.rb +32 -0
  138. data/lib/active_merchant/lib/connection.rb +170 -0
  139. data/lib/active_merchant/lib/country.rb +319 -0
  140. data/lib/active_merchant/lib/error.rb +4 -0
  141. data/lib/active_merchant/lib/post_data.rb +22 -0
  142. data/lib/active_merchant/lib/posts_data.rb +47 -0
  143. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  144. data/lib/active_merchant/lib/utils.rb +18 -0
  145. data/lib/active_merchant/lib/validateable.rb +76 -0
  146. data/lib/certs/cacert.pem +7815 -0
  147. data/lib/support/gateway_support.rb +58 -0
  148. data/script/destroy +14 -0
  149. data/script/generate +14 -0
  150. data/test/fixtures.yml +355 -0
  151. data/test/remote/gateways/remote_authorize_net_cim_test.rb +460 -0
  152. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  153. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  154. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  155. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  156. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  157. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  158. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  159. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  160. data/test/remote/gateways/remote_elavon_test.rb +66 -0
  161. data/test/remote/gateways/remote_eway_test.rb +74 -0
  162. data/test/remote/gateways/remote_exact_test.rb +60 -0
  163. data/test/remote/gateways/remote_first_pay_test.rb +87 -0
  164. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  165. data/test/remote/gateways/remote_jetpay_test.rb +103 -0
  166. data/test/remote/gateways/remote_linkpoint_test.rb +121 -0
  167. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  168. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  169. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  170. data/test/remote/gateways/remote_modern_payments_test.rb +57 -0
  171. data/test/remote/gateways/remote_moneris_test.rb +82 -0
  172. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  173. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  174. data/test/remote/gateways/remote_ogone_test.rb +115 -0
  175. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  176. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  177. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  178. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  179. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  180. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  181. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  182. data/test/remote/gateways/remote_paypal_test.rb +191 -0
  183. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  184. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  185. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  186. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  187. data/test/remote/gateways/remote_realex_test.rb +224 -0
  188. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  189. data/test/remote/gateways/remote_sage_pay_test.rb +219 -0
  190. data/test/remote/gateways/remote_sage_test.rb +87 -0
  191. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  192. data/test/remote/gateways/remote_sallie_mae_test.rb +51 -0
  193. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  194. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  195. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  196. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  197. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  198. data/test/remote/gateways/remote_transax_test.rb +112 -0
  199. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  200. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  201. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  202. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  203. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  204. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  205. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  206. data/test/test_helper.rb +182 -0
  207. data/test/unit/avs_result_test.rb +59 -0
  208. data/test/unit/base_test.rb +55 -0
  209. data/test/unit/check_test.rb +88 -0
  210. data/test/unit/connection_test.rb +129 -0
  211. data/test/unit/country_code_test.rb +33 -0
  212. data/test/unit/country_test.rb +64 -0
  213. data/test/unit/credit_card_formatting_test.rb +19 -0
  214. data/test/unit/credit_card_methods_test.rb +179 -0
  215. data/test/unit/credit_card_test.rb +318 -0
  216. data/test/unit/cvv_result_test.rb +33 -0
  217. data/test/unit/expiry_date_test.rb +32 -0
  218. data/test/unit/gateways/authorize_net_cim_test.rb +676 -0
  219. data/test/unit/gateways/authorize_net_test.rb +290 -0
  220. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  221. data/test/unit/gateways/beanstream_test.rb +108 -0
  222. data/test/unit/gateways/bogus_test.rb +46 -0
  223. data/test/unit/gateways/braintree_test.rb +126 -0
  224. data/test/unit/gateways/card_stream_test.rb +90 -0
  225. data/test/unit/gateways/cyber_source_test.rb +188 -0
  226. data/test/unit/gateways/data_cash_test.rb +133 -0
  227. data/test/unit/gateways/efsnet_test.rb +123 -0
  228. data/test/unit/gateways/elavon_test.rb +139 -0
  229. data/test/unit/gateways/eway_test.rb +118 -0
  230. data/test/unit/gateways/exact_test.rb +156 -0
  231. data/test/unit/gateways/first_pay_test.rb +125 -0
  232. data/test/unit/gateways/gateway_test.rb +48 -0
  233. data/test/unit/gateways/instapay_test.rb +102 -0
  234. data/test/unit/gateways/jetpay_test.rb +185 -0
  235. data/test/unit/gateways/linkpoint_test.rb +197 -0
  236. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  237. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  238. data/test/unit/gateways/modern_payments_cim_test.rb +162 -0
  239. data/test/unit/gateways/moneris_test.rb +158 -0
  240. data/test/unit/gateways/net_registry_test.rb +416 -0
  241. data/test/unit/gateways/netbilling_test.rb +54 -0
  242. data/test/unit/gateways/ogone_test.rb +319 -0
  243. data/test/unit/gateways/pay_junction_test.rb +123 -0
  244. data/test/unit/gateways/pay_secure_test.rb +71 -0
  245. data/test/unit/gateways/payflow_express_test.rb +173 -0
  246. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  247. data/test/unit/gateways/payflow_test.rb +305 -0
  248. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  249. data/test/unit/gateways/payment_express_test.rb +195 -0
  250. data/test/unit/gateways/paypal_express_test.rb +382 -0
  251. data/test/unit/gateways/paypal_test.rb +569 -0
  252. data/test/unit/gateways/plugnpay_test.rb +86 -0
  253. data/test/unit/gateways/psigate_test.rb +169 -0
  254. data/test/unit/gateways/psl_card_test.rb +64 -0
  255. data/test/unit/gateways/quickpay_test.rb +112 -0
  256. data/test/unit/gateways/realex_test.rb +151 -0
  257. data/test/unit/gateways/sage_bankcard_test.rb +196 -0
  258. data/test/unit/gateways/sage_pay_test.rb +139 -0
  259. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  260. data/test/unit/gateways/sallie_mae_test.rb +53 -0
  261. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  262. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  263. data/test/unit/gateways/secure_pay_test.rb +87 -0
  264. data/test/unit/gateways/skip_jack_test.rb +213 -0
  265. data/test/unit/gateways/trans_first_test.rb +112 -0
  266. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  267. data/test/unit/gateways/usa_epay_test.rb +128 -0
  268. data/test/unit/gateways/verifi_test.rb +96 -0
  269. data/test/unit/gateways/viaklix_test.rb +78 -0
  270. data/test/unit/gateways/wirecard_test.rb +250 -0
  271. data/test/unit/generators/test_gateway_generator.rb +46 -0
  272. data/test/unit/generators/test_generator_helper.rb +20 -0
  273. data/test/unit/generators/test_integration_generator.rb +53 -0
  274. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  275. data/test/unit/integrations/adyen_module_test.rb +9 -0
  276. data/test/unit/integrations/bogus_module_test.rb +20 -0
  277. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  278. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  279. data/test/unit/integrations/helpers/adyen_helper_test.rb +35 -0
  280. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  281. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  282. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  283. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  284. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  285. data/test/unit/integrations/helpers/paypal_helper_test.rb +171 -0
  286. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  287. data/test/unit/integrations/helpers/seb_est_helper_test.rb +69 -0
  288. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  289. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  290. data/test/unit/integrations/nochex_module_test.rb +13 -0
  291. data/test/unit/integrations/notifications/adyen_notification_test.rb +25 -0
  292. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  293. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  294. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  295. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  296. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  297. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  298. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  299. data/test/unit/integrations/notifications/seb_est_notification_test.rb +87 -0
  300. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  301. data/test/unit/integrations/paypal_module_test.rb +28 -0
  302. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  303. data/test/unit/integrations/returns/adyen_return_test.rb +26 -0
  304. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  305. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  306. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  307. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  308. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  309. data/test/unit/integrations/returns/return_test.rb +11 -0
  310. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  311. data/test/unit/integrations/sampo_est_module_test.rb +9 -0
  312. data/test/unit/integrations/seb_est_module_test.rb +9 -0
  313. data/test/unit/integrations/swedbank_est_module_test.rb +9 -0
  314. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  315. data/test/unit/post_data_test.rb +55 -0
  316. data/test/unit/posts_data_test.rb +48 -0
  317. data/test/unit/response_test.rb +28 -0
  318. data/test/unit/utils_test.rb +7 -0
  319. data/test/unit/validateable_test.rb +60 -0
  320. metadata +392 -0
@@ -0,0 +1,40 @@
1
+ require 'test_helper'
2
+
3
+ class QuickpayHelperTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ @helper = Quickpay::Helper.new('order-500','24352435', :amount => 500, :currency => 'USD')
8
+ @helper.md5secret "mysecretmd5string"
9
+ @helper.return_url 'http://example.com/ok'
10
+ @helper.cancel_return_url 'http://example.com/cancel'
11
+ @helper.notify_url 'http://example.com/notify'
12
+ end
13
+
14
+ def test_basic_helper_fields
15
+ assert_field 'merchant', '24352435'
16
+ assert_field 'amount', '500'
17
+ assert_field 'ordernumber', 'order500'
18
+ end
19
+
20
+ def test_generate_md5string
21
+ assert_equal '3authorize24352435daorder500500USDhttp://example.com/okhttp://example.com/cancelhttp://example.com/notify00mysecretmd5string',
22
+ @helper.generate_md5string
23
+ end
24
+
25
+ def test_generate_md5check
26
+ assert_equal '31a0a94ce953208d05f3f3d255fff31f', @helper.generate_md5check
27
+ end
28
+
29
+ def test_unknown_mapping
30
+ assert_nothing_raised do
31
+ @helper.company_address :address => '500 Dwemthy Fox Road'
32
+ end
33
+ end
34
+
35
+ def test_setting_invalid_address_field
36
+ fields = @helper.fields.dup
37
+ @helper.billing_address :street => 'My Street'
38
+ assert_equal fields, @helper.fields
39
+ end
40
+ end
@@ -0,0 +1,69 @@
1
+ require File.dirname(__FILE__) + '/../../../test_helper'
2
+
3
+ # setup test rsa private key
4
+ ActiveMerchant::Billing::Integrations::SebEst.test_private_key = <<EOF
5
+ -----BEGIN RSA PRIVATE KEY-----
6
+ MIICXAIBAAKBgQC+AROlXiRvi1T7Q9fAh0Lw73szAn26mqfKDqd6Bdplq3v+gVWC
7
+ 3v0+bgtfNakRE/UVYOxEA0z0viqRpKzPuNy8OstTMe8fFKs19NW8lBYik6NzJ4Bk
8
+ +B6VmovOm0nJLQJytXKiJyuHP9DqPOVmP8S+azzX7Uqzov1nxo9fvH7y2QIDAQAB
9
+ AoGAFhbD9O6r57fYCloJxB01gBMnTHfWrBH8vbXUbJAvorA7+wuIKG3KHS7n7Yqs
10
+ fArI7FJXRVTo5m8RPdtaJ9ADAT9rjAi3A17TaEueyJl+B/hjHYhsd8MeFhTb2fh0
11
+ rY3F6diL8U/YDbiAIegnKO0zcc6ynJrsQZvzb6DlY/CLPe0CQQD3KXJzw1ZfJ1ts
12
+ c370b/ZC1YrRURw41Q0I8ljYJ8EJw/ngVxrnCIsd43bRnOVp9guJrjTQRkhDC3Gn
13
+ J2Y0+42LAkEAxMxmh7QY4nItBTS0fe1KCat4VDxhyxYEhZKlGDhxW75vNROrripB
14
+ 1ZfBsq5xkY2MM9R7WKmL7SpStrUPIvEVqwJBAOXA4ISd61cupbytrDEbNscv7Afh
15
+ pyNpYOGVLmNYqQgj5c7WCcsD1RYmkRgPCe8y6czFZJDLFHdGVxLz+/16bTsCQC9J
16
+ Ob2TnYMTkhO1JUU4tdh69e+vjoPgp3d80+Rs83fq2wey0UaI6saqryUC21Dw5OYz
17
+ QOv92RxEVhmGibuIl/8CQCiYrzwlZJDlsKrWPZT0E8rzNmLZkhNHzYJP9S7x+FKk
18
+ m3gFeXEBgzGn9UOd6xIAp0p7A1XVBN8XzDMa09gSOks=
19
+ -----END RSA PRIVATE KEY-----
20
+ EOF
21
+
22
+ # setup bank public certificate, used for checking response params
23
+ ActiveMerchant::Billing::Integrations::SebEst.test_bank_certificate = <<EOF
24
+ -----BEGIN CERTIFICATE-----
25
+ MIIDRTCCAq6gAwIBAgIBADANBgkqhkiG9w0BAQQFADB7MQswCQYDVQQGEwJFRTEO
26
+ MAwGA1UECBMFSGFyanUxEDAOBgNVBAcTB1RhbGxpbm4xDDAKBgNVBAoTA0VZUDEL
27
+ MAkGA1UECxMCSVQxDDAKBgNVBAMTA2EuYTEhMB8GCSqGSIb3DQEJARYSYWxsYXIu
28
+ YWxsYXNAZXlwLmVlMB4XDTk5MTExNTA4MTAzM1oXDTk5MTIxNTA4MTAzM1owezEL
29
+ MAkGA1UEBhMCRUUxDjAMBgNVBAgTBUhhcmp1MRAwDgYDVQQHEwdUYWxsaW5uMQww
30
+ CgYDVQQKEwNFWVAxCzAJBgNVBAsTAklUMQwwCgYDVQQDEwNhLmExITAfBgkqhkiG
31
+ 9w0BCQEWEmFsbGFyLmFsbGFzQGV5cC5lZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
32
+ gYkCgYEAvgETpV4kb4tU+0PXwIdC8O97MwJ9upqnyg6negXaZat7/oFVgt79Pm4L
33
+ XzWpERP1FWDsRANM9L4qkaSsz7jcvDrLUzHvHxSrNfTVvJQWIpOjcyeAZPgelZqL
34
+ zptJyS0CcrVyoicrhz/Q6jzlZj/Evms81+1Ks6L9Z8aPX7x+8tkCAwEAAaOB2DCB
35
+ 1TAdBgNVHQ4EFgQUFivCzZNmegEoOxYtg20YMMRB98gwgaUGA1UdIwSBnTCBmoAU
36
+ FivCzZNmegEoOxYtg20YMMRB98ihf6R9MHsxCzAJBgNVBAYTAkVFMQ4wDAYDVQQI
37
+ EwVIYXJqdTEQMA4GA1UEBxMHVGFsbGlubjEMMAoGA1UEChMDRVlQMQswCQYDVQQL
38
+ EwJJVDEMMAoGA1UEAxMDYS5hMSEwHwYJKoZIhvcNAQkBFhJhbGxhci5hbGxhc0Bl
39
+ eXAuZWWCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBfkayuot+e
40
+ fwW8QmPwpWF5AY3oMT/fTncjCljDBOg39IQv4PjnpTdDfwwl3lUIZHHTLM2i0L/c
41
+ eD4D1UFM1qdp2VZzhBd1eeMjxYjCP8qL2v2MfLkCYcP30Sl6ISSkFjFc5qbGXZOc
42
+ C82uR/wUZJDw9kj+R1O46/byG8yA+S9FVw==
43
+ -----END CERTIFICATE-----
44
+ EOF
45
+
46
+ class SebEstHelperTest < Test::Unit::TestCase
47
+ include ActiveMerchant::Billing::Integrations
48
+
49
+ def setup
50
+ end
51
+
52
+ def test_basic_helper_fields
53
+ @helper = SebEst::Helper.new('order-500', 'cody@example.com', :amount => 500, :currency => 'EEK')
54
+ assert_field 'VK_CHARSET', 'UTF-8'
55
+ assert_field 'VK_SND_ID', 'cody@example.com'
56
+ assert_field 'VK_AMOUNT', '5.00'
57
+ assert_field 'VK_CURR', 'EEK'
58
+ assert_field 'VK_STAMP', 'order-500'
59
+
60
+ @helper = SebEst::Helper.new('order-500', 'cody@example.com', :amount => '5', :currency => 'EEK')
61
+ assert_field 'VK_AMOUNT', '5'
62
+
63
+ @helper = SebEst::Helper.new('order-500', 'cody@example.com', :amount => '5.00', :currency => 'EEK')
64
+ assert_field 'VK_AMOUNT', '5.00'
65
+
66
+ @helper = SebEst::Helper.new('order-500', 'cody@example.com', :amount => Money.new(500), :currency => 'EEK')
67
+ assert_field 'VK_AMOUNT', '5.00'
68
+ end
69
+ end
@@ -0,0 +1,92 @@
1
+ require 'test_helper'
2
+
3
+ class TwoCheckoutHelperTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ @helper = TwoCheckout::Helper.new('order-500','cody@example.com', :amount => '5.00', :currency => 'USD')
8
+ end
9
+
10
+ def teardown
11
+ ActiveMerchant::Billing::Base.integration_mode = :test
12
+ end
13
+
14
+ def test_basic_helper_fields
15
+ assert_field 'sid', 'cody@example.com'
16
+
17
+ assert_field 'total', '5.00'
18
+ assert_field 'cart_order_id', 'order-500'
19
+ end
20
+
21
+ def test_customer_fields
22
+ @helper.customer :first_name => 'Cody', :last_name => 'Fauser', :email => 'cody@example.com', :phone => '(555)555-5555'
23
+ assert_field 'card_holder_name', 'Cody Fauser'
24
+ assert_field 'email', 'cody@example.com'
25
+ assert_field 'phone', '(555)555-5555'
26
+ end
27
+
28
+ def test_address_mapping
29
+ @helper.billing_address :address1 => '1 My Street',
30
+ :address2 => 'Apt. 1',
31
+ :city => 'Leeds',
32
+ :state => 'Yorkshire',
33
+ :zip => 'LS2 7EE',
34
+ :country => 'CA'
35
+
36
+ assert_field 'street_address', '1 My Street'
37
+ assert_field 'street_address2', 'Apt. 1'
38
+ assert_field 'city', 'Leeds'
39
+ assert_field 'state', 'Yorkshire'
40
+ assert_field 'zip', 'LS2 7EE'
41
+ assert_field 'country', 'CA'
42
+ end
43
+
44
+ def test_shipping_address
45
+ @helper.shipping_address :address1 => '1 My Street',
46
+ :address2 => 'Apt. 1',
47
+ :city => 'London',
48
+ :state => 'Whales',
49
+ :zip => 'LS2 7E1',
50
+ :country => 'UK'
51
+
52
+ assert_field 'ship_city', 'London'
53
+ assert_field 'ship_street_address', '1 My Street'
54
+ assert_field 'ship_state', 'Whales'
55
+ assert_field 'ship_zip', 'LS2 7E1'
56
+ assert_field 'ship_country', 'UK'
57
+ end
58
+
59
+ def test_unknown_address_mapping
60
+ @helper.billing_address :farm => 'CA'
61
+ assert_equal 5, @helper.fields.size
62
+ end
63
+
64
+ def test_unknown_mapping
65
+ assert_nothing_raised do
66
+ @helper.company_address :address => '500 Dwemthy Fox Road'
67
+ end
68
+ end
69
+
70
+ def test_setting_invalid_address_field
71
+ fields = @helper.fields.dup
72
+ @helper.billing_address :street => 'My Street'
73
+ assert_equal fields, @helper.fields
74
+ end
75
+
76
+ def test_test_mode
77
+ @helper = TwoCheckout::Helper.new('order-500','cody@example.com', :amount => '5.00', :currency => 'USD')
78
+ assert_field 'demo', 'Y'
79
+ end
80
+
81
+ def test_force_test_mode
82
+ ActiveMerchant::Billing::Base.integration_mode = :production
83
+ @helper = TwoCheckout::Helper.new('order-500','cody@example.com', :amount => '5.00', :currency => 'USD', :test => true)
84
+ assert_field 'demo', 'Y'
85
+ end
86
+
87
+ def test_production_mode
88
+ ActiveMerchant::Billing::Base.integration_mode = :production
89
+ @helper = TwoCheckout::Helper.new('order-500','cody@example.com', :amount => '5.00', :currency => 'USD')
90
+ assert !@helper.fields.has_key?("demo")
91
+ end
92
+ end
@@ -0,0 +1,13 @@
1
+ require 'test_helper'
2
+
3
+ class HiTrustModuleTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def test_notification_method
7
+ assert_instance_of HiTrust::Notification, HiTrust.notification('name=cody')
8
+ end
9
+
10
+ def test_return_method
11
+ assert_instance_of HiTrust::Return, HiTrust.return('name=cody')
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ require 'test_helper'
2
+
3
+ class ChronopayModuleTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def test_notification_method
7
+ assert_instance_of Nochex::Notification, Nochex.notification('name=cody')
8
+ end
9
+
10
+ def test_return_method
11
+ assert_instance_of Nochex::Return, Nochex.return('name=cody')
12
+ end
13
+ end
@@ -0,0 +1,25 @@
1
+ require 'test_helper'
2
+
3
+ class AdyenNotificationTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ @adyen = Adyen::Notification.new(http_raw_data)
8
+ end
9
+
10
+ def test_accessors
11
+ assert @adyen.complete?
12
+ assert_equal "true", @adyen.status
13
+ assert_equal "8512555599453931", @adyen.transaction_id
14
+ assert_equal "10", @adyen.item_id
15
+ assert_equal "1000", @adyen.gross
16
+ assert_equal "USD", @adyen.currency
17
+ assert_equal "2009-10-14T22%3A39%3A05.40Z", @adyen.received_at
18
+ assert @adyen.test?
19
+ end
20
+
21
+ private
22
+ def http_raw_data
23
+ "eventDate=2009-10-14T22%3A39%3A05.40Z&reason=22295%3A1111%3A12%2F2012&originalReference=&merchantReference=10&currency=USD&pspReference=8512555599453931&merchantAccountCode=RazWar&eventCode=AUTHORISATION&value=1000&operations=CANCEL%2CCAPTURE%2CREFUND&success=true&paymentMethod=visa&live=false"
24
+ end
25
+ end
@@ -0,0 +1,66 @@
1
+ require 'test_helper'
2
+
3
+ class ChronopayNotificationTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ @notification = Chronopay::Notification.new(http_raw_data)
8
+ end
9
+
10
+ def test_notification
11
+ assert_instance_of Chronopay::Notification, @notification
12
+ end
13
+
14
+ def test_accessors
15
+ assert @notification.complete?
16
+ assert_equal "Completed", @notification.status
17
+ assert_equal "003176-000000005", @notification.customer_id
18
+ assert_equal "003176-0001", @notification.site_id
19
+ assert_equal "003176-0001-0001", @notification.product_id
20
+ assert_equal "CODY FAUSER", @notification.name
21
+ assert_equal 'XX', @notification.state
22
+ assert_equal 'Ottawa', @notification.city
23
+ assert_equal '138 Clarence St.', @notification.street
24
+ assert_equal 'CAD', @notification.currency
25
+ assert_equal 'first', @notification.item_id
26
+ assert_equal 'second', @notification.custom2
27
+ assert_equal 'third', @notification.custom3
28
+
29
+ # If the date and time are nil then it is a test notification
30
+ assert @notification.test?
31
+ end
32
+
33
+ # docs
34
+ def test_parse_received_at
35
+ # mm/dd/yyyy format
36
+ raw_received = "date=03%2f30%2f2006&time=12%3a30%3a10"
37
+ @notification = Chronopay::Notification.new(raw_received)
38
+ assert_equal CGI.unescape("03%2f30%2f2006"), @notification.params['date']
39
+ assert_equal CGI.unescape("12%3a30%3a10"), @notification.params['time']
40
+ assert_equal Time.local(2006, 3, 30, 12, 30, 10), @notification.received_at
41
+ end
42
+
43
+ def test_compositions
44
+ assert_equal Money.new(50000, 'CAD'), @notification.amount
45
+ end
46
+
47
+ def test_payment_successful_status
48
+ notification = Chronopay::Notification.new('transaction_type=onetime')
49
+ assert_equal 'Completed', notification.status
50
+ end
51
+
52
+ def test_payment_failure_status
53
+ notification = Chronopay::Notification.new('transaction_type=decline')
54
+ assert_equal 'Failed', notification.status
55
+ end
56
+
57
+ def test_acknowledge
58
+ assert @notification.acknowledge
59
+ end
60
+
61
+ private
62
+ def http_raw_data
63
+ "transaction_type=onetime&customer_id=003176-000000005&site_id=003176-0001&product_id=003176-0001-0001&date=&time=&transaction_id=&email=codyfauser%40gmail.com&country=CAN&name=CODY+FAUSER&city=Ottawa&street=138+Clarence+St.&phone=&state=XX&zip=K1N+5P8&language=EN&cs1=first&cs2=second&cs3=third&username=&password=&total=500.00&currency=CAD"
64
+ end
65
+ end
66
+
@@ -0,0 +1,60 @@
1
+ require 'test_helper'
2
+
3
+ class GestpayNotificationTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def test_successful_notification
7
+ Gestpay::Notification.any_instance.expects(:ssl_get).returns('#decryptstring#PAY1_UICCODE=242*P1*PAY1_AMOUNT=1234.56*P1*PAY1_TRANSACTIONRESULT=OK*P1*PAY1_BANKTRANSACTIONID=ABCD1234*P1*PAY1_SHOPTRANSACTIONID=1000#/decryptstring#')
8
+ notification = Gestpay::Notification.new(raw_query_string)
9
+ assert notification.complete?
10
+ assert !notification.test?
11
+ assert_equal "Completed", notification.status
12
+ assert_equal "ABCD1234", notification.transaction_id
13
+ assert_equal "1000", notification.item_id
14
+ assert_equal "1234.56", notification.gross
15
+ assert_equal "EUR", notification.currency
16
+ assert_equal Money.new(123456, 'EUR'), notification.amount
17
+ end
18
+
19
+ def test_failed_notification
20
+ Gestpay::Notification.any_instance.expects(:ssl_get).returns('#decryptstring#PAY1_UICCODE=242*P1*PAY1_AMOUNT=1234.56*P1*PAY1_TRANSACTIONRESULT=KO*P1*PAY1_BANKTRANSACTIONID=ABCD1234*P1*PAY1_SHOPTRANSACTIONID=1000#/decryptstring#')
21
+ notification = Gestpay::Notification.new(raw_query_string)
22
+ assert !notification.complete?
23
+ assert !notification.test?
24
+ assert_equal "Failed", notification.status
25
+ end
26
+
27
+ def test_empty_notification
28
+ Gestpay::Notification.any_instance.stubs(:ssl_get).returns('')
29
+ notification = Gestpay::Notification.new('')
30
+ assert !notification.complete?
31
+ assert !notification.test?
32
+ assert_equal "Failed", notification.status
33
+ end
34
+
35
+ def test_nil_notification
36
+ Gestpay::Notification.any_instance.stubs(:ssl_get).returns('')
37
+ notification = Gestpay::Notification.new(nil)
38
+ assert !notification.complete?
39
+ assert !notification.test?
40
+ assert_equal "Failed", notification.status
41
+ end
42
+
43
+ def test_abandoned_order
44
+ Gestpay::Notification.any_instance.expects(:ssl_get).returns(unencrypted_string)
45
+ notification = Gestpay::Notification.new(raw_query_string)
46
+ assert !notification.complete?
47
+ assert !notification.test?
48
+ assert_equal "Failed", notification.status
49
+ assert_equal '1000', notification.item_id
50
+ end
51
+
52
+ private
53
+ def raw_query_string
54
+ "a=900000&b=F7DEB36478FD84760F9134F23C922697272D57DE6D4518EB9B4D468B769D9A3A8071B6EB160B35CB412FC1820C7CC12D17B3141855B1ED55468613702A2E213DDE9DE5B0209E13C416448AE833525959F05693172D7F0656"
55
+ end
56
+
57
+ def unencrypted_string
58
+ "#decryptstring#PAY1_TRANSACTIONRESULT=KO*P1*PAY1_SHOPTRANSACTIONID=1000*P1*PAY1_BANKTRANSACTIONID=*P1*PAY1_UICCODE=242*P1*PAY1_AMOUNT=50.00*P1*PAY1_AUTHORIZATIONCODE=*P1*PAY1_ERRORCODE=1143*P1*PAY1_ERRORDESCRIPTION=Transazione abbandonata dal compratore*P1*PAY1_CHEMAIL=*P1*PAY1_CHNAME=#/decryptstring#\r\n"
59
+ end
60
+ end
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ class HiTrustNotificationTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ @notification = HiTrust::Notification.new(successful_response)
8
+ end
9
+
10
+ def teardown
11
+ ActiveMerchant::Billing::Base.integration_mode = :test
12
+ end
13
+
14
+ def test_accessors
15
+ assert @notification.complete?
16
+ assert_equal "Completed", @notification.status
17
+ assert_equal "012345678901", @notification.transaction_id
18
+ assert_equal "1000", @notification.item_id
19
+ assert_equal "101010", @notification.account
20
+ assert_equal "5.00", @notification.gross
21
+ assert_equal "USD", @notification.currency
22
+ assert_equal Time.parse("2007-12-01.12.35.40.123456"), @notification.received_at
23
+ assert @notification.test?
24
+ end
25
+
26
+ def test_compositions
27
+ assert_equal Money.new(500, 'USD'), @notification.amount
28
+ end
29
+
30
+ def test_send_acknowledgement
31
+ assert @notification.acknowledge
32
+ end
33
+
34
+ def test_respond_to_acknowledge
35
+ assert @notification.respond_to?(:acknowledge)
36
+ end
37
+
38
+ def test_valid_sender_in_testmode_always_true
39
+ assert @notification.test?
40
+ assert @notification.valid_sender?('127.0.0.1')
41
+ assert @notification.valid_sender?(nil)
42
+ end
43
+
44
+ def test_valid_sender
45
+ ActiveMerchant::Billing::Base.integration_mode = :production
46
+ assert @notification.valid_sender?('203.75.242.8')
47
+ end
48
+
49
+ def test_invalid_sender
50
+ ActiveMerchant::Billing::Base.integration_mode = :production
51
+ assert_false @notification.valid_sender?('127.0.0.1')
52
+ assert_false @notification.valid_sender?(nil)
53
+ end
54
+
55
+ private
56
+ def successful_response
57
+ 'retcode=00&ordernumber=1000&orderstatus=02&authCode=123456&eci=VISA3D&authRRN=012345678901&storeid=101010&approveamount=500&currency=USD&orderdate=2007-12-01.12.35.40.123456'
58
+ end
59
+ end