mattbauer-activemerchant 1.4.2

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 (292) hide show
  1. data/CHANGELOG +459 -0
  2. data/CONTRIBUTERS +118 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +134 -0
  5. data/Rakefile +153 -0
  6. data/gem-public_cert.pem +20 -0
  7. data/init.rb +3 -0
  8. data/lib/active_merchant.rb +60 -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 +3 -0
  19. data/lib/active_merchant/billing/gateways/authorize_net.rb +657 -0
  20. data/lib/active_merchant/billing/gateways/authorize_net_cim.rb +703 -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 +106 -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/linkpoint.rb +396 -0
  36. data/lib/active_merchant/billing/gateways/merchant_e_solutions.rb +154 -0
  37. data/lib/active_merchant/billing/gateways/merchant_ware.rb +283 -0
  38. data/lib/active_merchant/billing/gateways/modern_payments.rb +36 -0
  39. data/lib/active_merchant/billing/gateways/modern_payments_cim.rb +214 -0
  40. data/lib/active_merchant/billing/gateways/moneris.rb +295 -0
  41. data/lib/active_merchant/billing/gateways/moneris_usa.rb +258 -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 +259 -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 +325 -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 +110 -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/secure_pay.rb +31 -0
  72. data/lib/active_merchant/billing/gateways/secure_pay_au.rb +157 -0
  73. data/lib/active_merchant/billing/gateways/secure_pay_tech.rb +113 -0
  74. data/lib/active_merchant/billing/gateways/skip_jack.rb +442 -0
  75. data/lib/active_merchant/billing/gateways/smart_ps.rb +254 -0
  76. data/lib/active_merchant/billing/gateways/trans_first.rb +127 -0
  77. data/lib/active_merchant/billing/gateways/transax.rb +26 -0
  78. data/lib/active_merchant/billing/gateways/trust_commerce.rb +418 -0
  79. data/lib/active_merchant/billing/gateways/usa_epay.rb +194 -0
  80. data/lib/active_merchant/billing/gateways/verifi.rb +228 -0
  81. data/lib/active_merchant/billing/gateways/viaklix.rb +189 -0
  82. data/lib/active_merchant/billing/gateways/wirecard.rb +318 -0
  83. data/lib/active_merchant/billing/integrations.rb +22 -0
  84. data/lib/active_merchant/billing/integrations/action_view_helper.rb +79 -0
  85. data/lib/active_merchant/billing/integrations/bogus.rb +22 -0
  86. data/lib/active_merchant/billing/integrations/bogus/helper.rb +17 -0
  87. data/lib/active_merchant/billing/integrations/bogus/notification.rb +11 -0
  88. data/lib/active_merchant/billing/integrations/bogus/return.rb +10 -0
  89. data/lib/active_merchant/billing/integrations/chronopay.rb +22 -0
  90. data/lib/active_merchant/billing/integrations/chronopay/helper.rb +81 -0
  91. data/lib/active_merchant/billing/integrations/chronopay/notification.rb +156 -0
  92. data/lib/active_merchant/billing/integrations/chronopay/return.rb +10 -0
  93. data/lib/active_merchant/billing/integrations/gestpay.rb +26 -0
  94. data/lib/active_merchant/billing/integrations/gestpay/common.rb +42 -0
  95. data/lib/active_merchant/billing/integrations/gestpay/helper.rb +70 -0
  96. data/lib/active_merchant/billing/integrations/gestpay/notification.rb +83 -0
  97. data/lib/active_merchant/billing/integrations/gestpay/return.rb +10 -0
  98. data/lib/active_merchant/billing/integrations/helper.rb +93 -0
  99. data/lib/active_merchant/billing/integrations/hi_trust.rb +26 -0
  100. data/lib/active_merchant/billing/integrations/hi_trust/helper.rb +58 -0
  101. data/lib/active_merchant/billing/integrations/hi_trust/notification.rb +59 -0
  102. data/lib/active_merchant/billing/integrations/hi_trust/return.rb +67 -0
  103. data/lib/active_merchant/billing/integrations/nochex.rb +87 -0
  104. data/lib/active_merchant/billing/integrations/nochex/helper.rb +68 -0
  105. data/lib/active_merchant/billing/integrations/nochex/notification.rb +94 -0
  106. data/lib/active_merchant/billing/integrations/nochex/return.rb +10 -0
  107. data/lib/active_merchant/billing/integrations/notification.rb +62 -0
  108. data/lib/active_merchant/billing/integrations/paypal.rb +40 -0
  109. data/lib/active_merchant/billing/integrations/paypal/helper.rb +119 -0
  110. data/lib/active_merchant/billing/integrations/paypal/notification.rb +154 -0
  111. data/lib/active_merchant/billing/integrations/paypal/return.rb +10 -0
  112. data/lib/active_merchant/billing/integrations/quickpay.rb +18 -0
  113. data/lib/active_merchant/billing/integrations/quickpay/helper.rb +72 -0
  114. data/lib/active_merchant/billing/integrations/quickpay/notification.rb +74 -0
  115. data/lib/active_merchant/billing/integrations/return.rb +35 -0
  116. data/lib/active_merchant/billing/integrations/two_checkout.rb +23 -0
  117. data/lib/active_merchant/billing/integrations/two_checkout/helper.rb +59 -0
  118. data/lib/active_merchant/billing/integrations/two_checkout/notification.rb +114 -0
  119. data/lib/active_merchant/billing/integrations/two_checkout/return.rb +17 -0
  120. data/lib/active_merchant/billing/response.rb +32 -0
  121. data/lib/active_merchant/lib/connection.rb +170 -0
  122. data/lib/active_merchant/lib/country.rb +319 -0
  123. data/lib/active_merchant/lib/error.rb +4 -0
  124. data/lib/active_merchant/lib/post_data.rb +22 -0
  125. data/lib/active_merchant/lib/posts_data.rb +47 -0
  126. data/lib/active_merchant/lib/requires_parameters.rb +16 -0
  127. data/lib/active_merchant/lib/utils.rb +18 -0
  128. data/lib/active_merchant/lib/validateable.rb +76 -0
  129. data/lib/certs/cacert.pem +7815 -0
  130. data/lib/support/gateway_support.rb +58 -0
  131. data/script/destroy +14 -0
  132. data/script/generate +14 -0
  133. data/test/fixtures.yml +353 -0
  134. data/test/remote/gateways/remote_authorize_net_cim_test.rb +459 -0
  135. data/test/remote/gateways/remote_authorize_net_test.rb +145 -0
  136. data/test/remote/gateways/remote_beanstream_interac_test.rb +53 -0
  137. data/test/remote/gateways/remote_beanstream_test.rb +150 -0
  138. data/test/remote/gateways/remote_braintree_test.rb +154 -0
  139. data/test/remote/gateways/remote_card_stream_test.rb +148 -0
  140. data/test/remote/gateways/remote_cyber_source_test.rb +144 -0
  141. data/test/remote/gateways/remote_data_cash_test.rb +357 -0
  142. data/test/remote/gateways/remote_efsnet_test.rb +81 -0
  143. data/test/remote/gateways/remote_elavon_test.rb +66 -0
  144. data/test/remote/gateways/remote_eway_test.rb +74 -0
  145. data/test/remote/gateways/remote_exact_test.rb +60 -0
  146. data/test/remote/gateways/remote_first_pay_test.rb +87 -0
  147. data/test/remote/gateways/remote_instapay_test.rb +61 -0
  148. data/test/remote/gateways/remote_linkpoint_test.rb +112 -0
  149. data/test/remote/gateways/remote_merchant_e_solutions_test.rb +173 -0
  150. data/test/remote/gateways/remote_merchant_ware_test.rb +113 -0
  151. data/test/remote/gateways/remote_modern_payments_cim_test.rb +58 -0
  152. data/test/remote/gateways/remote_modern_payments_test.rb +43 -0
  153. data/test/remote/gateways/remote_moneris_test.rb +118 -0
  154. data/test/remote/gateways/remote_moneris_usa_test.rb +115 -0
  155. data/test/remote/gateways/remote_net_registry_test.rb +85 -0
  156. data/test/remote/gateways/remote_netbilling_test.rb +70 -0
  157. data/test/remote/gateways/remote_ogone_test.rb +108 -0
  158. data/test/remote/gateways/remote_pay_junction_test.rb +143 -0
  159. data/test/remote/gateways/remote_pay_secure_test.rb +39 -0
  160. data/test/remote/gateways/remote_payflow_express_test.rb +50 -0
  161. data/test/remote/gateways/remote_payflow_test.rb +237 -0
  162. data/test/remote/gateways/remote_payflow_uk_test.rb +173 -0
  163. data/test/remote/gateways/remote_payment_express_test.rb +136 -0
  164. data/test/remote/gateways/remote_paypal_express_test.rb +49 -0
  165. data/test/remote/gateways/remote_paypal_test.rb +178 -0
  166. data/test/remote/gateways/remote_plugnpay_test.rb +72 -0
  167. data/test/remote/gateways/remote_psigate_test.rb +50 -0
  168. data/test/remote/gateways/remote_psl_card_test.rb +125 -0
  169. data/test/remote/gateways/remote_quickpay_test.rb +190 -0
  170. data/test/remote/gateways/remote_realex_test.rb +224 -0
  171. data/test/remote/gateways/remote_sage_bankcard_test.rb +109 -0
  172. data/test/remote/gateways/remote_sage_pay_test.rb +219 -0
  173. data/test/remote/gateways/remote_sage_test.rb +87 -0
  174. data/test/remote/gateways/remote_sage_virtual_check_test.rb +62 -0
  175. data/test/remote/gateways/remote_secure_pay_au_test.rb +40 -0
  176. data/test/remote/gateways/remote_secure_pay_tech_test.rb +37 -0
  177. data/test/remote/gateways/remote_secure_pay_test.rb +28 -0
  178. data/test/remote/gateways/remote_skipjack_test.rb +105 -0
  179. data/test/remote/gateways/remote_trans_first_test.rb +34 -0
  180. data/test/remote/gateways/remote_transax_test.rb +112 -0
  181. data/test/remote/gateways/remote_trust_commerce_test.rb +152 -0
  182. data/test/remote/gateways/remote_usa_epay_test.rb +46 -0
  183. data/test/remote/gateways/remote_verifi_test.rb +107 -0
  184. data/test/remote/gateways/remote_viaklix_test.rb +43 -0
  185. data/test/remote/gateways/remote_wirecard_test.rb +111 -0
  186. data/test/remote/integrations/remote_gestpay_integration_test.rb +37 -0
  187. data/test/remote/integrations/remote_paypal_integration_test.rb +26 -0
  188. data/test/test_helper.rb +182 -0
  189. data/test/unit/avs_result_test.rb +59 -0
  190. data/test/unit/base_test.rb +55 -0
  191. data/test/unit/check_test.rb +88 -0
  192. data/test/unit/connection_test.rb +129 -0
  193. data/test/unit/country_code_test.rb +33 -0
  194. data/test/unit/country_test.rb +64 -0
  195. data/test/unit/credit_card_formatting_test.rb +19 -0
  196. data/test/unit/credit_card_methods_test.rb +179 -0
  197. data/test/unit/credit_card_test.rb +318 -0
  198. data/test/unit/cvv_result_test.rb +33 -0
  199. data/test/unit/expiry_date_test.rb +32 -0
  200. data/test/unit/gateways/authorize_net_cim_test.rb +638 -0
  201. data/test/unit/gateways/authorize_net_test.rb +290 -0
  202. data/test/unit/gateways/beanstream_interac_test.rb +51 -0
  203. data/test/unit/gateways/beanstream_test.rb +108 -0
  204. data/test/unit/gateways/bogus_test.rb +46 -0
  205. data/test/unit/gateways/braintree_test.rb +126 -0
  206. data/test/unit/gateways/card_stream_test.rb +90 -0
  207. data/test/unit/gateways/cyber_source_test.rb +188 -0
  208. data/test/unit/gateways/data_cash_test.rb +133 -0
  209. data/test/unit/gateways/efsnet_test.rb +123 -0
  210. data/test/unit/gateways/elavon_test.rb +139 -0
  211. data/test/unit/gateways/eway_test.rb +118 -0
  212. data/test/unit/gateways/exact_test.rb +156 -0
  213. data/test/unit/gateways/first_pay_test.rb +125 -0
  214. data/test/unit/gateways/gateway_test.rb +48 -0
  215. data/test/unit/gateways/instapay_test.rb +102 -0
  216. data/test/unit/gateways/linkpoint_test.rb +167 -0
  217. data/test/unit/gateways/merchant_e_solutions_test.rb +169 -0
  218. data/test/unit/gateways/merchant_ware_test.rb +188 -0
  219. data/test/unit/gateways/modern_payments_cim_test.rb +171 -0
  220. data/test/unit/gateways/moneris_test.rb +185 -0
  221. data/test/unit/gateways/moneris_usa_test.rb +183 -0
  222. data/test/unit/gateways/net_registry_test.rb +416 -0
  223. data/test/unit/gateways/netbilling_test.rb +54 -0
  224. data/test/unit/gateways/ogone_test.rb +256 -0
  225. data/test/unit/gateways/pay_junction_test.rb +123 -0
  226. data/test/unit/gateways/pay_secure_test.rb +71 -0
  227. data/test/unit/gateways/payflow_express_test.rb +173 -0
  228. data/test/unit/gateways/payflow_express_uk_test.rb +86 -0
  229. data/test/unit/gateways/payflow_test.rb +305 -0
  230. data/test/unit/gateways/payflow_uk_test.rb +30 -0
  231. data/test/unit/gateways/payment_express_test.rb +195 -0
  232. data/test/unit/gateways/paypal_express_test.rb +382 -0
  233. data/test/unit/gateways/paypal_test.rb +569 -0
  234. data/test/unit/gateways/plugnpay_test.rb +86 -0
  235. data/test/unit/gateways/psigate_test.rb +169 -0
  236. data/test/unit/gateways/psl_card_test.rb +64 -0
  237. data/test/unit/gateways/quickpay_test.rb +112 -0
  238. data/test/unit/gateways/realex_test.rb +151 -0
  239. data/test/unit/gateways/sage_bankcard_test.rb +162 -0
  240. data/test/unit/gateways/sage_pay_test.rb +139 -0
  241. data/test/unit/gateways/sage_virtual_check_test.rb +71 -0
  242. data/test/unit/gateways/secure_pay_au_test.rb +207 -0
  243. data/test/unit/gateways/secure_pay_tech_test.rb +44 -0
  244. data/test/unit/gateways/secure_pay_test.rb +87 -0
  245. data/test/unit/gateways/skip_jack_test.rb +133 -0
  246. data/test/unit/gateways/trans_first_test.rb +112 -0
  247. data/test/unit/gateways/trust_commerce_test.rb +90 -0
  248. data/test/unit/gateways/usa_epay_test.rb +128 -0
  249. data/test/unit/gateways/verifi_test.rb +96 -0
  250. data/test/unit/gateways/viaklix_test.rb +78 -0
  251. data/test/unit/gateways/wirecard_test.rb +250 -0
  252. data/test/unit/generators/test_gateway_generator.rb +46 -0
  253. data/test/unit/generators/test_generator_helper.rb +20 -0
  254. data/test/unit/generators/test_integration_generator.rb +53 -0
  255. data/test/unit/integrations/action_view_helper_test.rb +50 -0
  256. data/test/unit/integrations/bogus_module_test.rb +20 -0
  257. data/test/unit/integrations/chronopay_module_test.rb +13 -0
  258. data/test/unit/integrations/gestpay_module_test.rb +14 -0
  259. data/test/unit/integrations/helpers/bogus_helper_test.rb +28 -0
  260. data/test/unit/integrations/helpers/chronopay_helper_test.rb +67 -0
  261. data/test/unit/integrations/helpers/gestpay_helper_test.rb +100 -0
  262. data/test/unit/integrations/helpers/hi_trust_helper_test.rb +16 -0
  263. data/test/unit/integrations/helpers/nochex_helper_test.rb +53 -0
  264. data/test/unit/integrations/helpers/paypal_helper_test.rb +171 -0
  265. data/test/unit/integrations/helpers/quickpay_helper_test.rb +40 -0
  266. data/test/unit/integrations/helpers/two_checkout_helper_test.rb +92 -0
  267. data/test/unit/integrations/hi_trust_module_test.rb +13 -0
  268. data/test/unit/integrations/nochex_module_test.rb +13 -0
  269. data/test/unit/integrations/notifications/chronopay_notification_test.rb +66 -0
  270. data/test/unit/integrations/notifications/gestpay_notification_test.rb +60 -0
  271. data/test/unit/integrations/notifications/hi_trust_notification_test.rb +59 -0
  272. data/test/unit/integrations/notifications/nochex_notification_test.rb +51 -0
  273. data/test/unit/integrations/notifications/notification_test.rb +54 -0
  274. data/test/unit/integrations/notifications/paypal_notification_test.rb +85 -0
  275. data/test/unit/integrations/notifications/quickpay_notification_test.rb +69 -0
  276. data/test/unit/integrations/notifications/two_checkout_notification_test.rb +55 -0
  277. data/test/unit/integrations/paypal_module_test.rb +28 -0
  278. data/test/unit/integrations/quickpay_module_test.rb +9 -0
  279. data/test/unit/integrations/returns/chronopay_return_test.rb +11 -0
  280. data/test/unit/integrations/returns/gestpay_return_test.rb +10 -0
  281. data/test/unit/integrations/returns/hi_trust_return_test.rb +24 -0
  282. data/test/unit/integrations/returns/nochex_return_test.rb +10 -0
  283. data/test/unit/integrations/returns/paypal_return_test.rb +10 -0
  284. data/test/unit/integrations/returns/return_test.rb +11 -0
  285. data/test/unit/integrations/returns/two_checkout_return_test.rb +24 -0
  286. data/test/unit/integrations/two_checkout_module_test.rb +13 -0
  287. data/test/unit/post_data_test.rb +55 -0
  288. data/test/unit/posts_data_test.rb +48 -0
  289. data/test/unit/response_test.rb +28 -0
  290. data/test/unit/utils_test.rb +7 -0
  291. data/test/unit/validateable_test.rb +60 -0
  292. metadata +396 -0
@@ -0,0 +1,171 @@
1
+ require 'test_helper'
2
+
3
+ class PaypalHelperTest < Test::Unit::TestCase
4
+ include ActiveMerchant::Billing::Integrations
5
+
6
+ def setup
7
+ @helper = Paypal::Helper.new(1,'cody@example.com', :amount => 500, :currency => 'CAD')
8
+ @url = 'http://example.com'
9
+ end
10
+
11
+ def test_static_fields
12
+ assert_field 'cmd', '_ext-enter'
13
+ assert_field 'redirect_cmd', '_xclick'
14
+ assert_field 'quantity', '1'
15
+ assert_field 'item_name', 'Store purchase'
16
+ assert_field 'no_shipping', '1'
17
+ assert_field 'no_note', '1'
18
+ assert_field 'charset', 'utf-8'
19
+ end
20
+
21
+ def test_basic_helper_fields
22
+ assert_field 'item_number', '1'
23
+ assert_field 'custom', '1'
24
+ assert_field 'business', 'cody@example.com'
25
+ assert_field 'amount', '500'
26
+ assert_field 'currency_code', 'CAD'
27
+ end
28
+
29
+ def test_invoice
30
+ @helper.invoice = 'Shopify shirt'
31
+ assert_field 'invoice', 'Shopify shirt'
32
+ end
33
+
34
+ def test_notification_url
35
+ @helper.notify_url = @url
36
+ assert_field 'notify_url', @url
37
+ end
38
+
39
+ def test_return_url
40
+ @helper.return_url = @url
41
+ assert_field 'return', @url
42
+ end
43
+
44
+ def test_cancel_return_url
45
+ @helper.cancel_return_url = @url
46
+ assert_field 'cancel_return', @url
47
+ end
48
+
49
+ def test_customer_fields
50
+ @helper.customer :first_name => 'Cody',
51
+ :last_name => 'Fauser',
52
+ :email => 'cody@example.com'
53
+
54
+ assert_field 'first_name', 'Cody'
55
+ assert_field 'last_name', 'Fauser'
56
+ assert_field 'email', 'cody@example.com'
57
+ end
58
+
59
+ def test_shipping_address
60
+ @helper.shipping_address :country => 'CA',
61
+ :address1 => '1 My Street',
62
+ :city => 'Ottawa',
63
+ :zip => '90210',
64
+ :phone => '(555)123-4567'
65
+
66
+ assert_field 'country', 'CA'
67
+ assert_field 'address1', '1 My Street'
68
+ assert_field 'zip', '90210'
69
+ assert_field 'night_phone_a', '555'
70
+ assert_field 'night_phone_b', '123'
71
+ assert_field 'night_phone_c', '4567'
72
+ end
73
+
74
+ def test_phone_parsing
75
+ @helper.shipping_address :country => 'CA', :phone => '111-222-3333'
76
+
77
+ assert_field 'night_phone_a', '111'
78
+ assert_field 'night_phone_b', '222'
79
+ assert_field 'night_phone_c', '3333'
80
+ end
81
+
82
+
83
+ def test_phone_parsing_for_non_us
84
+ @helper.shipping_address :country => 'UK', :phone => '028 38841670'
85
+
86
+ assert_field 'night_phone_a', nil
87
+ assert_field 'night_phone_b', '02838841670'
88
+ assert_field 'night_phone_c', nil
89
+ end
90
+
91
+
92
+ def test_province
93
+ @helper.shipping_address :country => 'CA',
94
+ :state => 'On'
95
+
96
+ assert_field 'country', 'CA'
97
+ assert_field 'state', 'Ontario'
98
+ end
99
+
100
+ def test_state
101
+ @helper.shipping_address :country => 'US',
102
+ :state => 'TX'
103
+
104
+ assert_field 'country', 'US'
105
+ assert_field 'state', 'TX'
106
+ end
107
+
108
+ def test_shipping
109
+ @helper.shipping '7.99'
110
+ assert_field 'shipping', '7.99'
111
+ end
112
+
113
+ def test_tax
114
+ @helper.tax '14.99'
115
+ assert_field 'tax', '14.99'
116
+ end
117
+
118
+ def test_country_code
119
+ @helper.shipping_address :country => 'CAN'
120
+ assert_field 'country', 'CA'
121
+ end
122
+
123
+ def test_setting_invalid_address_field
124
+ fields = @helper.fields.dup
125
+ fields["state"] = 'N/A'
126
+
127
+ @helper.shipping_address :street => 'My Street'
128
+ assert_equal fields, @helper.fields
129
+ end
130
+
131
+ def test_setting_item_name
132
+ @helper.item_name = 'Really Cool Gizmo'
133
+ assert_field 'item_name', 'Really Cool Gizmo'
134
+ end
135
+
136
+ def test_setting_quantity
137
+ @helper.quantity = '10'
138
+ assert_field 'quantity', '10'
139
+ end
140
+
141
+ def test_setting_no_shipping
142
+ @helper.no_shipping = '0'
143
+ assert_field 'no_shipping', '0'
144
+ end
145
+
146
+ def test_setting_no_note
147
+ @helper.no_note = '0'
148
+ assert_field 'no_note', '0'
149
+ end
150
+
151
+ def test_uk_shipping_address_with_no_state
152
+ @helper.shipping_address :country => 'GB',
153
+ :state => ''
154
+
155
+ assert_field 'state', 'N/A'
156
+ end
157
+
158
+ def test_default_bn
159
+ assert_field 'bn', ActiveMerchant::Billing::Integrations::Helper.application_id
160
+ end
161
+
162
+ def test_override_bn
163
+ identifier = 'CodeGenies_ShoppingCart_IC_CA'
164
+
165
+ Paypal::Helper.application_id = identifier
166
+
167
+ @helper = Paypal::Helper.new(1,'cody@example.com', :amount => 500, :currency => 'CAD')
168
+ assert_field 'bn', identifier
169
+ end
170
+
171
+ end
@@ -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,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,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