Ogone_ePayments - Version 16.05.26

Version Notes

Download this release

Release Info

Developer Michael Lühr
Extension Ogone_ePayments
Version 16.05.26
Comparing to
See all releases


Code changes from version 16.04.13 to 16.05.26

Files changed (33) hide show
  1. app/code/community/Netresearch/OPS/Block/Checkout/DeviceFingerprinting.php +79 -0
  2. app/code/community/Netresearch/OPS/Helper/Data.php +45 -14
  3. app/code/community/Netresearch/OPS/Helper/Payment.php +1 -1
  4. app/code/community/Netresearch/OPS/Model/Observer.php +41 -7
  5. app/code/community/Netresearch/OPS/Model/Payment/Abstract.php +4 -0
  6. app/code/community/Netresearch/OPS/Model/Payment/Cc.php +10 -1
  7. app/code/community/Netresearch/OPS/Model/Response/Type/Authorize.php +8 -3
  8. app/code/community/Netresearch/OPS/Model/Response/Type/Capture.php +11 -2
  9. app/code/community/Netresearch/OPS/Model/Response/Type/Special.php +3 -6
  10. app/code/community/Netresearch/OPS/Model/Status.php +1 -0
  11. app/code/community/Netresearch/OPS/Test/Block/Checkout/DeviceFingerprintingTest.php +75 -0
  12. app/code/community/Netresearch/OPS/Test/Block/Checkout/DeviceFingerprintingTest/fixtures/fingerPrintingDisabled.yaml +3 -0
  13. app/code/community/Netresearch/OPS/Test/Block/Checkout/DeviceFingerprintingTest/fixtures/fingerPrintingEnabled.yaml +3 -0
  14. app/code/community/Netresearch/OPS/Test/Helper/DataTest.php +100 -17
  15. app/code/community/Netresearch/OPS/Test/Helper/DirectLinkTest.php +26 -10
  16. app/code/community/Netresearch/OPS/Test/Helper/PaymentTest.php +86 -119
  17. app/code/community/Netresearch/OPS/Test/Model/ObserverTest.php +180 -2
  18. app/code/community/Netresearch/OPS/Test/Model/Payment/CcTest.php +1 -0
  19. app/code/community/Netresearch/OPS/Test/Model/Payment/Features/PaymentEmailTest.php +124 -94
  20. app/code/community/Netresearch/OPS/Test/Model/Response/TestCase.php +64 -0
  21. app/code/community/Netresearch/OPS/Test/Model/Response/Type/AuthorizeTest.php +21 -20
  22. app/code/community/Netresearch/OPS/Test/Model/Response/Type/CaptureTest.php +15 -19
  23. app/code/community/Netresearch/OPS/Test/Model/Response/Type/RefundTest.php +2 -12
  24. app/code/community/Netresearch/OPS/Test/Model/Status/UpdateTest.php +33 -18
  25. app/code/community/Netresearch/OPS/Test/var/fixtures/orders.yaml +21 -12
  26. app/code/community/Netresearch/OPS/Trait/AliasController.php +3 -3
  27. app/code/community/Netresearch/OPS/data/ops_setup/data-upgrade-15.11.09-16.03.09.php +3 -3
  28. app/code/community/Netresearch/OPS/etc/config.xml +13 -3
  29. app/design/adminhtml/default/default/template/ops/form/cc.phtml +1 -1
  30. app/design/frontend/base/default/layout/ops.xml +5 -10
  31. app/design/frontend/base/default/template/ops/checkout/deviceFingerprinting.phtml +5 -14
  32. js/netresearch/ops/payment.js +5 -1
  33. package.xml +1 -1
app/code/community/Netresearch/OPS/Block/Checkout/DeviceFingerprinting.php ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Netresearch OPS
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * DISCLAIMER
13
+ *
14
+ * Do not edit or add to this file if you wish to upgrade this extension to
15
+ * newer versions in the future.
16
+ *
17
+ * PHP version 5
18
+ *
19
+ * @category Netresearch
20
+ * @package Netresearch_OPS
21
+ * @author Christoph Aßmann <christoph.assmann@netresearch.de>
22
+ * @copyright 2016 Netresearch GmbH & Co. KG
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ * @link http://www.netresearch.de/
25
+ */
26
+
27
+ /**
28
+ * Netresearch_OPS_Block_Checkout_DeviceFingerprinting
29
+ *
30
+ * @category Netresearch
31
+ * @package Netresearch_OPS
32
+ * @author Christoph Aßmann <christoph.assmann@netresearch.de>
33
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
+ * @link http://www.netresearch.de/
35
+ */
36
+ class Netresearch_OPS_Block_Checkout_DeviceFingerprinting
37
+ extends Mage_Core_Block_Template
38
+ {
39
+ /**
40
+ * @var string
41
+ */
42
+ protected $_template = 'ops/checkout/deviceFingerprinting.phtml';
43
+
44
+ /**
45
+ * @return Mage_Core_Block_Abstract
46
+ */
47
+ protected function _prepareLayout()
48
+ {
49
+ if (Mage::getModel('ops/config')->getDeviceFingerPrinting()) {
50
+ /** @var Mage_Page_Block_Html_Head $headBlock */
51
+ $headBlock = $this->getLayout()->getBlock('head');
52
+ if ($headBlock) {
53
+ $headBlock->addJs('netresearch/ops/deviceFingerprinting.js');
54
+ }
55
+ }
56
+
57
+ return parent::_prepareLayout();
58
+ }
59
+
60
+ /**
61
+ * @return string
62
+ */
63
+ protected function _toHtml()
64
+ {
65
+ if (!Mage::getModel('ops/config')->getDeviceFingerPrinting()) {
66
+ return '';
67
+ }
68
+
69
+ return parent::_toHtml();
70
+ }
71
+
72
+ /**
73
+ * @return string
74
+ */
75
+ public function getConsentUrl()
76
+ {
77
+ return $this->getUrl('ops/device');
78
+ }
79
+ }
app/code/community/Netresearch/OPS/Helper/Data.php CHANGED
@@ -1,8 +1,8 @@
1
  <?php
2
  /**
3
  * Netresearch_OPS_Helper_Data
4
- *
5
- * @package
6
  * @copyright 2011 Netresearch
7
  * @author Thomas Kappel <thomas.kappel@netresearch.de>
8
  * @author André Herrn <andre.herrn@netresearch.de>
@@ -14,19 +14,23 @@ class Netresearch_OPS_Helper_Data extends Mage_Core_Helper_Abstract
14
 
15
  /**
16
  * Returns config model
17
- *
18
  * @return Netresearch_OPS_Model_Config
19
  */
20
  public function getConfig()
21
  {
22
  return Mage::getSingleton('ops/config');
23
  }
24
-
 
 
 
 
25
  public function getModuleVersionString()
26
  {
27
  $version = Mage::getConfig()->getNode('modules/Netresearch_OPS/version');
28
- $plainversion = str_replace('.', '', $version);
29
- return 'IGmg' . $plainversion;
30
  }
31
 
32
  /**
@@ -78,7 +82,7 @@ class Netresearch_OPS_Helper_Data extends Mage_Core_Helper_Abstract
78
  }
79
  return $message;
80
  }
81
-
82
  public function redirect($url)
83
  {
84
  Mage::app()->getResponse()->setRedirect($url);
@@ -129,25 +133,25 @@ class Netresearch_OPS_Helper_Data extends Mage_Core_Helper_Abstract
129
  }
130
  return false;
131
  }
132
-
133
  /*
134
- * check if user is registering or not
135
  */
136
  public function checkIfUserIsRegistering()
137
  {
138
  $isRegistering = false;
139
  $checkoutMethod = Mage::getSingleton('checkout/session')->getQuote()->getCheckoutMethod();
140
- if ($checkoutMethod === Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER
141
  || $checkoutMethod === Mage_Sales_Model_Quote::CHECKOUT_METHOD_LOGIN_IN
142
  ) {
143
  $isRegistering = true;
144
  }
145
  return $isRegistering;
146
-
147
  }
148
-
149
  /*
150
- * check if user is registering or not
151
  */
152
  public function checkIfUserIsNotRegistering()
153
  {
@@ -157,7 +161,34 @@ class Netresearch_OPS_Helper_Data extends Mage_Core_Helper_Abstract
157
  $isRegistering = true;
158
  }
159
  return $isRegistering;
160
-
161
  }
162
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
163
  }
1
  <?php
2
  /**
3
  * Netresearch_OPS_Helper_Data
4
+ *
5
+ * @package
6
  * @copyright 2011 Netresearch
7
  * @author Thomas Kappel <thomas.kappel@netresearch.de>
8
  * @author André Herrn <andre.herrn@netresearch.de>
14
 
15
  /**
16
  * Returns config model
17
+ *
18
  * @return Netresearch_OPS_Model_Config
19
  */
20
  public function getConfig()
21
  {
22
  return Mage::getSingleton('ops/config');
23
  }
24
+
25
+ /**
26
+ * Replace all dots or any content following and including plus ("+") and minus ("-") signs.
27
+ * @return string
28
+ */
29
  public function getModuleVersionString()
30
  {
31
  $version = Mage::getConfig()->getNode('modules/Netresearch_OPS/version');
32
+ $plainversion = preg_replace('/\.|[+-].+$/','', $version);
33
+ return 'IG1X' . $plainversion;
34
  }
35
 
36
  /**
82
  }
83
  return $message;
84
  }
85
+
86
  public function redirect($url)
87
  {
88
  Mage::app()->getResponse()->setRedirect($url);
133
  }
134
  return false;
135
  }
136
+
137
  /*
138
+ * check if user is registering or not
139
  */
140
  public function checkIfUserIsRegistering()
141
  {
142
  $isRegistering = false;
143
  $checkoutMethod = Mage::getSingleton('checkout/session')->getQuote()->getCheckoutMethod();
144
+ if ($checkoutMethod === Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER
145
  || $checkoutMethod === Mage_Sales_Model_Quote::CHECKOUT_METHOD_LOGIN_IN
146
  ) {
147
  $isRegistering = true;
148
  }
149
  return $isRegistering;
150
+
151
  }
152
+
153
  /*
154
+ * check if user is registering or not
155
  */
156
  public function checkIfUserIsNotRegistering()
157
  {
161
  $isRegistering = true;
162
  }
163
  return $isRegistering;
164
+
165
  }
166
 
167
+ /**
168
+ * Trigger sending order confirmation and invoice emails when Magento does not:
169
+ * - "authorization" after return from gateway (order emails)
170
+ * - "authorization+capture" (order or invoice emails)
171
+ *
172
+ * @param Mage_Sales_Model_Abstract $document
173
+ * @return Mage_Sales_Model_Abstract
174
+ * @throws Exception
175
+ */
176
+ public function sendTransactionalEmail(Mage_Sales_Model_Abstract $document)
177
+ {
178
+ if ($document instanceof Mage_Sales_Model_Order) {
179
+
180
+ if (!$document->getEmailSent() && $document->getCanSendNewEmailFlag()) {
181
+ $document->sendNewOrderEmail();
182
+ }
183
+
184
+ } elseif ($document instanceof Mage_Sales_Model_Order_Invoice) {
185
+
186
+ if (!$document->getEmailSent() && Mage::getModel('ops/config')->getSendInvoice()) {
187
+ $document->sendEmail();
188
+ }
189
+
190
+ }
191
+
192
+ return $document;
193
+ }
194
  }
app/code/community/Netresearch/OPS/Helper/Payment.php CHANGED
@@ -270,7 +270,7 @@ class Netresearch_OPS_Helper_Payment extends Mage_Core_Helper_Abstract
270
  * @param Mage_Sales_Model_Order $order Order
271
  * @param array $params Request params
272
  *
273
- * @return void
274
  */
275
  public function applyStateForOrder($order, $params)
276
  {
270
  * @param Mage_Sales_Model_Order $order Order
271
  * @param array $params Request params
272
  *
273
+ * @return string
274
  */
275
  public function applyStateForOrder($order, $params)
276
  {
app/code/community/Netresearch/OPS/Model/Observer.php CHANGED
@@ -16,7 +16,7 @@
16
  */
17
  class Netresearch_OPS_Model_Observer
18
  {
19
-
20
  /**
21
  * Get one page checkout model
22
  *
@@ -113,7 +113,7 @@ class Netresearch_OPS_Model_Observer
113
  Mage::helper('ops/alias')->cleanUpAdditionalInformation($quote->getPayment(), true);
114
 
115
  return $this->performDirectLinkRequest($quote, $requestParams, $quote->getStoreId());
116
-
117
  }
118
 
119
  public function confirmDdPayment($order, $quote)
@@ -141,10 +141,10 @@ class Netresearch_OPS_Model_Observer
141
  throw new Mage_Core_Exception($this->getHelper()->__('Ingenico ePayments Payment failed'));
142
  }
143
  $quote->getPayment()->setAdditionalInformation('ops_response', $response)->save();
144
-
145
  }
146
 
147
-
148
  /**
149
  * Check if checkout was made with OPS CreditCart or DirectDebit
150
  *
@@ -172,12 +172,12 @@ class Netresearch_OPS_Model_Observer
172
  {
173
  /* @var $block Mage_Adminhtml_Block_Template */
174
  $block = $observer->getEvent()->getBlock();
175
-
176
  //Stop if block is not sales order view
177
  if ($block->getType() != 'adminhtml/sales_order_view') {
178
  return $this;
179
  }
180
-
181
  //If payment method is one of the Ingenico ePayments-ones and order can be cancelled manually
182
  if ($block->getOrder()->getPayment()->getMethodInstance() instanceof Netresearch_OPS_Model_Payment_Abstract
183
  && true === $block->getOrder()->getPayment()->getMethodInstance()->canCancelManually($block->getOrder())
@@ -284,7 +284,7 @@ class Netresearch_OPS_Model_Observer
284
  return $html;
285
  }
286
 
287
-
288
  /**
289
  * triggered by cron for deleting old payment data from the additional payment information
290
  *
@@ -662,4 +662,38 @@ class Netresearch_OPS_Model_Observer
662
 
663
  return $this;
664
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
665
  }
16
  */
17
  class Netresearch_OPS_Model_Observer
18
  {
19
+
20
  /**
21
  * Get one page checkout model
22
  *
113
  Mage::helper('ops/alias')->cleanUpAdditionalInformation($quote->getPayment(), true);
114
 
115
  return $this->performDirectLinkRequest($quote, $requestParams, $quote->getStoreId());
116
+
117
  }
118
 
119
  public function confirmDdPayment($order, $quote)
141
  throw new Mage_Core_Exception($this->getHelper()->__('Ingenico ePayments Payment failed'));
142
  }
143
  $quote->getPayment()->setAdditionalInformation('ops_response', $response)->save();
144
+
145
  }
146
 
147
+
148
  /**
149
  * Check if checkout was made with OPS CreditCart or DirectDebit
150
  *
172
  {
173
  /* @var $block Mage_Adminhtml_Block_Template */
174
  $block = $observer->getEvent()->getBlock();
175
+
176
  //Stop if block is not sales order view
177
  if ($block->getType() != 'adminhtml/sales_order_view') {
178
  return $this;
179
  }
180
+
181
  //If payment method is one of the Ingenico ePayments-ones and order can be cancelled manually
182
  if ($block->getOrder()->getPayment()->getMethodInstance() instanceof Netresearch_OPS_Model_Payment_Abstract
183
  && true === $block->getOrder()->getPayment()->getMethodInstance()->canCancelManually($block->getOrder())
284
  return $html;
285
  }
286
 
287
+
288
  /**
289
  * triggered by cron for deleting old payment data from the additional payment information
290
  *
662
 
663
  return $this;
664
  }
665
+
666
+ /**
667
+ * Magento does not send order confirmation emails when
668
+ * - payment action "authorization" is processed in frontend via gateway.
669
+ * Magento does not send invoice emails when
670
+ * - payment action "authorization+capture" is processed in frontend or admin
671
+ *
672
+ * event: checkout_submit_all_after
673
+ *
674
+ * @param Varien_Event_Observer $observer
675
+ */
676
+ public function sendTransactionalEmails(Varien_Event_Observer $observer)
677
+ {
678
+ /** @var Mage_Sales_Model_Order $order */
679
+ $order = $observer->getOrder();
680
+ if (!$order->getPayment()->getMethodInstance() instanceof Netresearch_OPS_Model_Payment_Abstract) {
681
+ // ignore third-party payment methods
682
+ return;
683
+ }
684
+
685
+ /** @var Mage_Sales_Model_Quote $quote */
686
+ $quote = $observer->getQuote();
687
+ if ($quote->getPayment()->getOrderPlaceRedirectUrl()) {
688
+ // redirect payments require special treatment, may still get cancelled or declined
689
+ return;
690
+ }
691
+
692
+ try {
693
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
694
+ Mage::helper('ops/data')->sendTransactionalEmail($order->getPayment()->getCreatedInvoice());
695
+ } catch (Exception $e) {
696
+ Mage::logException($e);
697
+ }
698
+ }
699
  }
app/code/community/Netresearch/OPS/Model/Payment/Abstract.php CHANGED
@@ -531,6 +531,10 @@ class Netresearch_OPS_Model_Payment_Abstract extends Mage_Payment_Model_Method_A
531
  $stateObject->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT)
532
  ->setStatus(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
533
 
 
 
 
 
534
  $message = $this->getHelper()
535
  ->__('Customer got redirected to Ingenico ePayments for %s. Awaiting feedback.', $paymentAction);
536
 
531
  $stateObject->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT)
532
  ->setStatus(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
533
 
534
+ if (!$paymentAction) {
535
+ $paymentAction = $this->getConfigPaymentAction();
536
+ }
537
+
538
  $message = $this->getHelper()
539
  ->__('Customer got redirected to Ingenico ePayments for %s. Awaiting feedback.', $paymentAction);
540
 
app/code/community/Netresearch/OPS/Model/Payment/Cc.php CHANGED
@@ -52,9 +52,18 @@ class Netresearch_OPS_Model_Payment_Cc extends Netresearch_OPS_Model_Payment_Dir
52
  return $payment->getAdditionalInformation('CC_BRAND');
53
  }
54
 
 
 
 
 
 
 
 
 
55
  public function getOrderPlaceRedirectUrl($payment = null)
56
  {
57
- if ($this->hasBrandAliasInterfaceSupport($payment)) {
 
58
  if ('' == $this->getOpsHtmlAnswer($payment)) {
59
  return false;
60
  } // Prevent redirect on cc payment
52
  return $payment->getAdditionalInformation('CC_BRAND');
53
  }
54
 
55
+ /**
56
+ * If payment is inline there should be no orderPlaceRedirectUrl except for 3d secure cards - if order was placed
57
+ * through admin it is definitely an inline payment.
58
+ *
59
+ * @param Mage_Sales_Model_Order_Payment $payment
60
+ *
61
+ * @return bool|string
62
+ */
63
  public function getOrderPlaceRedirectUrl($payment = null)
64
  {
65
+ $salesObject = $this->getInfoInstance()->getOrder() ? : $this->getInfoInstance()->getQuote();
66
+ if ($this->hasBrandAliasInterfaceSupport($payment) || is_null($salesObject->getRemoteIp())) {
67
  if ('' == $this->getOpsHtmlAnswer($payment)) {
68
  return false;
69
  } // Prevent redirect on cc payment
app/code/community/Netresearch/OPS/Model/Response/Type/Authorize.php CHANGED
@@ -123,6 +123,8 @@ class Netresearch_OPS_Model_Response_Type_Authorize extends Netresearch_OPS_Mode
123
  }
124
  }
125
  }
 
 
126
  }
127
 
128
  if ($this->getShouldRegisterFeedback()) {
@@ -175,8 +177,11 @@ class Netresearch_OPS_Model_Response_Type_Authorize extends Netresearch_OPS_Mode
175
  if ($this->getShouldRegisterFeedback()) {
176
  $payment->save();
177
  $order->save();
178
- }
179
 
180
- return $this;
 
 
 
 
181
  }
182
- }
123
  }
124
  }
125
  }
126
+ } elseif ($this->getStatus() == Netresearch_OPS_Model_Status::CANCELED_BY_CUSTOMER) {
127
+ $order->registerCancellation($this->getFinalStatusComment());
128
  }
129
 
130
  if ($this->getShouldRegisterFeedback()) {
177
  if ($this->getShouldRegisterFeedback()) {
178
  $payment->save();
179
  $order->save();
 
180
 
181
+ // gateway payments do not send confirmation emails by default
182
+ if ($order->getState() != Mage_Sales_Model_Order::STATE_CANCELED){
183
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
184
+ }
185
+ }
186
  }
187
+ }
app/code/community/Netresearch/OPS/Model/Response/Type/Capture.php CHANGED
@@ -100,9 +100,18 @@ class Netresearch_OPS_Model_Response_Type_Capture extends Netresearch_OPS_Model_
100
  }
101
  }
102
  }
103
- if($this->getShouldRegisterFeedback()) {
 
104
  $payment->save();
105
  $order->save();
 
 
 
 
 
 
 
 
106
  }
107
  }
108
- }
100
  }
101
  }
102
  }
103
+
104
+ if ($this->getShouldRegisterFeedback()) {
105
  $payment->save();
106
  $order->save();
107
+
108
+ // gateway payments do not send confirmation emails by default
109
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
110
+
111
+ $invoice = Mage::getModel('sales/order_invoice')->load($this->getTransactionId(), 'transaction_id');
112
+ if($invoice->getId()){
113
+ Mage::helper('ops')->sendTransactionalEmail($invoice);
114
+ }
115
  }
116
  }
117
+ }
app/code/community/Netresearch/OPS/Model/Response/Type/Special.php CHANGED
@@ -63,9 +63,8 @@ class Netresearch_OPS_Model_Response_Type_Special extends Netresearch_OPS_Model_
63
 
64
  );
65
 
66
- if ($this->getMethodInstance() instanceof Netresearch_OPS_Model_Payment_OpenInvoice_Abstract) {
67
-
68
- }
69
  }
70
 
71
  if ($this->getStatus() == Netresearch_OPS_Model_Status::STORED_WAITING_EXTERNAL_RESULT) {
@@ -87,6 +86,4 @@ class Netresearch_OPS_Model_Response_Type_Special extends Netresearch_OPS_Model_
87
  $payment->save();
88
  $order->save();
89
  }
90
-
91
-
92
- }
63
 
64
  );
65
 
66
+ // gateway payments do not send confirmation emails by default
67
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
 
68
  }
69
 
70
  if ($this->getStatus() == Netresearch_OPS_Model_Status::STORED_WAITING_EXTERNAL_RESULT) {
86
  $payment->save();
87
  $order->save();
88
  }
89
+ }
 
 
app/code/community/Netresearch/OPS/Model/Status.php CHANGED
@@ -275,6 +275,7 @@ class Netresearch_OPS_Model_Status
275
  self::AUTHORISATION_TO_BE_REQUESTED_MANUALLY,
276
  self::PAYMENT_UNCERTAIN,
277
  self::PAYMENT_REFUSED,
 
278
  )
279
  );
280
  }
275
  self::AUTHORISATION_TO_BE_REQUESTED_MANUALLY,
276
  self::PAYMENT_UNCERTAIN,
277
  self::PAYMENT_REFUSED,
278
+ self::INVALID_INCOMPLETE
279
  )
280
  );
281
  }
app/code/community/Netresearch/OPS/Test/Block/Checkout/DeviceFingerprintingTest.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Netresearch OPS
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * DISCLAIMER
13
+ *
14
+ * Do not edit or add to this file if you wish to upgrade this extension to
15
+ * newer versions in the future.
16
+ *
17
+ * PHP version 5
18
+ *
19
+ * @category Netresearch
20
+ * @package Netresearch_OPS
21
+ * @author Christoph Aßmann <christoph.assmann@netresearch.de>
22
+ * @copyright 2016 Netresearch GmbH & Co. KG
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ * @link http://www.netresearch.de/
25
+ */
26
+
27
+ /**
28
+ * Netresearch_OPS_Test_Block_Checkout_DeviceFingerprintingTest
29
+ *
30
+ * @category Netresearch
31
+ * @package Netresearch_OPS
32
+ * @author Christoph Aßmann <christoph.assmann@netresearch.de>
33
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
+ * @link http://www.netresearch.de/
35
+ */
36
+ class Netresearch_OPS_Test_Block_Checkout_DeviceFingerprintingTest
37
+ extends EcomDev_PHPUnit_Test_Case
38
+ {
39
+ protected function setUp()
40
+ {
41
+ $sessionMock = $this->getModelMock('core/session', array('init'));
42
+ $this->replaceByMock('singleton', 'core/session', $sessionMock);
43
+ }
44
+
45
+ /**
46
+ * @test
47
+ * @loadFixture
48
+ */
49
+ public function fingerPrintingEnabled()
50
+ {
51
+ /** @var Netresearch_OPS_Block_Checkout_DeviceFingerprinting $block */
52
+ $block = Mage::app()->getLayout()->createBlock('ops/checkout_deviceFingerprinting');
53
+
54
+ $html = $block->toHtml();
55
+ $this->assertNotEmpty($html);
56
+
57
+ $url = $block->getConsentUrl();
58
+ $this->assertStringEndsWith('ops/device/', $url);
59
+ }
60
+
61
+ /**
62
+ * @test
63
+ * @loadFixture
64
+ */
65
+ public function fingerPrintingDisabled()
66
+ {
67
+ /** @var Netresearch_OPS_Block_Checkout_DeviceFingerprinting $block */
68
+ $block = Mage::app()->getLayout()->createBlock('ops/checkout_deviceFingerprinting');
69
+ $html = $block->toHtml();
70
+ $this->assertEmpty($html);
71
+
72
+ $url = $block->getConsentUrl();
73
+ $this->assertStringEndsWith('ops/device/', $url);
74
+ }
75
+ }
app/code/community/Netresearch/OPS/Test/Block/Checkout/DeviceFingerprintingTest/fixtures/fingerPrintingDisabled.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ config:
2
+ default/dev/template/allow_symlink: 1
3
+ default/payment_services/ops/device_fingerprinting: 0
app/code/community/Netresearch/OPS/Test/Block/Checkout/DeviceFingerprintingTest/fixtures/fingerPrintingEnabled.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ config:
2
+ default/dev/template/allow_symlink: 1
3
+ default/payment_services/ops/device_fingerprinting: 1
app/code/community/Netresearch/OPS/Test/Helper/DataTest.php CHANGED
@@ -1,16 +1,16 @@
1
  <?php
2
- class Netresearch_OPS_Test_Helper_DataTest extends EcomDev_PHPUnit_Test_Case_Controller
3
  {
4
  protected $helper;
5
  protected $store;
6
-
7
  public function setUp()
8
  {
9
  parent::setup();
10
  $this->helper = Mage::helper('ops');
11
  $this->store = Mage::app()->getStore(0)->load(0);
12
  }
13
-
14
  /**
15
  * @test
16
  */
@@ -18,51 +18,54 @@ class Netresearch_OPS_Test_Helper_DataTest extends EcomDev_PHPUnit_Test_Case_Con
18
  {
19
  $path = 'modules/Netresearch_OPS/version';
20
 
21
- Mage::getConfig()->setNode('modules/Netresearch_OPS/version', '120301');
22
  $this->assertSame('OGmg120301', $this->helper->getModuleVersionString());
23
 
24
- Mage::getConfig()->setNode('modules/Netresearch_OPS/version', '120612');
25
  $this->assertSame('OGmg120612', $this->helper->getModuleVersionString());
26
 
 
 
 
27
  $this->store->resetConfig();
28
  }
29
-
30
  public function testCheckIfUserIsRegistering()
31
  {
32
  $quote = new Varien_Object();
33
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER);
34
- $sessionMock = $this->getModelMock('checkout/session', array('getQuote'));
35
  $sessionMock->expects($this->any())
36
  ->method('getQuote')
37
  ->will($this->returnValue($quote));
38
  $this->replaceByMock('model', 'checkout/session', $sessionMock);
39
-
40
-
41
  $this->assertTrue(Mage::helper('ops/data')->checkIfUserIsRegistering());
42
-
43
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_LOGIN_IN);
44
  $this->assertTrue(Mage::helper('ops/data')->checkIfUserIsRegistering());
45
-
46
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_GUEST);
47
  $this->assertFalse(Mage::helper('ops/data')->checkIfUserIsRegistering());
48
-
49
  }
50
-
51
  public function testCheckIfUserIsNotRegistering()
52
  {
53
  $quote = new Varien_Object();
54
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER);
55
- $sessionMock = $this->getModelMock('checkout/session', array('getQuote'));
56
  $sessionMock->expects($this->any())
57
  ->method('getQuote')
58
  ->will($this->returnValue($quote));
59
  $this->replaceByMock('model', 'checkout/session', $sessionMock);
60
-
61
  $this->assertTrue(Mage::helper('ops/data')->checkIfUserIsNotRegistering());
62
-
63
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_LOGIN_IN);
64
  $this->assertFalse(Mage::helper('ops/data')->checkIfUserIsNotRegistering());
65
-
66
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_GUEST);
67
  $this->assertFalse(Mage::helper('ops/data')->checkIfUserIsNotRegistering());
68
  }
@@ -87,5 +90,85 @@ class Netresearch_OPS_Test_Helper_DataTest extends EcomDev_PHPUnit_Test_Case_Con
87
  $this->assertFalse(strpos($helper->clearMsg($testString), 'CVC'));
88
  $this->assertTrue(false !== strpos($helper->clearMsg($testString), 'Homer'));
89
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
  }
91
 
1
  <?php
2
+ class Netresearch_OPS_Test_Helper_DataTest extends EcomDev_PHPUnit_Test_Case
3
  {
4
  protected $helper;
5
  protected $store;
6
+
7
  public function setUp()
8
  {
9
  parent::setup();
10
  $this->helper = Mage::helper('ops');
11
  $this->store = Mage::app()->getStore(0)->load(0);
12
  }
13
+
14
  /**
15
  * @test
16
  */
18
  {
19
  $path = 'modules/Netresearch_OPS/version';
20
 
21
+ Mage::getConfig()->setNode($path, '12.03.01');
22
  $this->assertSame('OGmg120301', $this->helper->getModuleVersionString());
23
 
24
+ Mage::getConfig()->setNode($path, '12.06.12+383');
25
  $this->assertSame('OGmg120612', $this->helper->getModuleVersionString());
26
 
27
+ Mage::getConfig()->setNode($path, '12.09.12-beta2+808');
28
+ $this->assertSame('OGmg120912', $this->helper->getModuleVersionString());
29
+
30
  $this->store->resetConfig();
31
  }
32
+
33
  public function testCheckIfUserIsRegistering()
34
  {
35
  $quote = new Varien_Object();
36
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER);
37
+ $sessionMock = $this->getModelMock('checkout/session', array('getQuote', 'init', 'save'));
38
  $sessionMock->expects($this->any())
39
  ->method('getQuote')
40
  ->will($this->returnValue($quote));
41
  $this->replaceByMock('model', 'checkout/session', $sessionMock);
42
+
43
+
44
  $this->assertTrue(Mage::helper('ops/data')->checkIfUserIsRegistering());
45
+
46
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_LOGIN_IN);
47
  $this->assertTrue(Mage::helper('ops/data')->checkIfUserIsRegistering());
48
+
49
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_GUEST);
50
  $this->assertFalse(Mage::helper('ops/data')->checkIfUserIsRegistering());
51
+
52
  }
53
+
54
  public function testCheckIfUserIsNotRegistering()
55
  {
56
  $quote = new Varien_Object();
57
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_REGISTER);
58
+ $sessionMock = $this->getModelMock('checkout/session', array('getQuote', 'init', 'save'));
59
  $sessionMock->expects($this->any())
60
  ->method('getQuote')
61
  ->will($this->returnValue($quote));
62
  $this->replaceByMock('model', 'checkout/session', $sessionMock);
63
+
64
  $this->assertTrue(Mage::helper('ops/data')->checkIfUserIsNotRegistering());
65
+
66
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_LOGIN_IN);
67
  $this->assertFalse(Mage::helper('ops/data')->checkIfUserIsNotRegistering());
68
+
69
  $quote->setCheckoutMethod(Mage_Sales_Model_Quote::CHECKOUT_METHOD_GUEST);
70
  $this->assertFalse(Mage::helper('ops/data')->checkIfUserIsNotRegistering());
71
  }
90
  $this->assertFalse(strpos($helper->clearMsg($testString), 'CVC'));
91
  $this->assertTrue(false !== strpos($helper->clearMsg($testString), 'Homer'));
92
  }
93
+
94
+ /**
95
+ * @test
96
+ */
97
+ public function sendNoMail()
98
+ {
99
+ $documentMock = $this->getMockBuilder('Mage_Sales_Model_Order_Shipment')
100
+ ->setMethods(['getEmailSent'])
101
+ ->getMock()
102
+ ;
103
+ $documentMock
104
+ ->expects($this->never())
105
+ ->method('getEmailSent')
106
+ ;
107
+
108
+ Mage::helper('ops/data')->sendTransactionalEmail($documentMock);
109
+ }
110
+
111
+ /**
112
+ * @test
113
+ */
114
+ public function sendOrderEmail()
115
+ {
116
+ $orderMock = $this->getModelMock('sales/order', [
117
+ 'getEmailSent', 'getCanSendNewEmailFlag', 'sendNewOrderEmail'
118
+ ]);
119
+ $orderMock
120
+ ->expects($this->exactly(3))
121
+ ->method('getEmailSent')
122
+ ->willReturnOnConsecutiveCalls(true, false, false)
123
+ ;
124
+ $orderMock
125
+ ->expects($this->exactly(2))
126
+ ->method('getCanSendNewEmailFlag')
127
+ ->willReturnOnConsecutiveCalls(false, true)
128
+ ;
129
+ $orderMock
130
+ ->expects($this->once())
131
+ ->method('sendNewOrderEmail')
132
+ ;
133
+ $this->replaceByMock('model', 'sales/order', $orderMock);
134
+
135
+ $order = Mage::getModel('sales/order');
136
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
137
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
138
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
139
+ }
140
+
141
+ /**
142
+ * @test
143
+ */
144
+ public function sendInvoiceEmail()
145
+ {
146
+ $configMock = $this->getModelMock('ops/config', ['getSendInvoice']);
147
+ $configMock
148
+ ->expects($this->exactly(2))
149
+ ->method('getSendInvoice')
150
+ ->willReturnOnConsecutiveCalls(false, true)
151
+ ;
152
+ $this->replaceByMock('model', 'ops/config', $configMock);
153
+
154
+ $invoiceMock = $this->getModelMock('sales/order_invoice', [
155
+ 'getEmailSent', 'sendEmail'
156
+ ]);
157
+ $invoiceMock
158
+ ->expects($this->exactly(3))
159
+ ->method('getEmailSent')
160
+ ->willReturnOnConsecutiveCalls(true, false, false)
161
+ ;
162
+ $invoiceMock
163
+ ->expects($this->once())
164
+ ->method('sendEmail')
165
+ ;
166
+ $this->replaceByMock('model', 'sales/order', $invoiceMock);
167
+
168
+ $order = Mage::getModel('sales/order');
169
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
170
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
171
+ Mage::helper('ops/data')->sendTransactionalEmail($order);
172
+ }
173
  }
174
 
app/code/community/Netresearch/OPS/Test/Helper/DirectLinkTest.php CHANGED
@@ -1,5 +1,6 @@
1
  <?php
2
- class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Case
 
3
  {
4
  public function setUp()
5
  {
@@ -85,6 +86,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
85
  */
86
  public function testProcessFeedbackCaptureSuccess()
87
  {
 
88
 
89
  $order = Mage::getModel('sales/order')->load(11);
90
  $directlinkHelperMock = $this->getHelperMock('ops/directlink', array('isValidOpsRequest'));
@@ -112,6 +114,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
112
  */
113
  public function testProcessFeedbackRefundSuccess()
114
  {
 
115
 
116
  $mock = $this->getModelMock('sales/order', array('getBillingAddress'));
117
  $mock->expects($this->any())
@@ -136,6 +139,8 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
136
  */
137
  public function testProcessFeedbackRefundWithStatusEightyFiveSuccess()
138
  {
 
 
139
  $order = Mage::getModel('sales/order')->load(11);
140
  $directlinkHelperMock = $this->getHelperMock('ops/directlink', array('isValidOpsRequest'));
141
  $directlinkHelperMock->expects($this->any())
@@ -166,6 +171,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
166
  */
167
  public function testProcessFeedbackPaymentWaiting()
168
  {
 
169
 
170
  /** @var Mage_Sales_Model_Order $order */
171
  $order = Mage::getModel('sales/order')->load(11);
@@ -195,6 +201,8 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
195
  */
196
  public function testProcessFeedbackPaymentRefused()
197
  {
 
 
198
 
199
  /** @var Mage_Sales_Model_Order $order */
200
  $order = Mage::getModel('sales/order')->load(11);
@@ -224,6 +232,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
224
  */
225
  public function testProcessFeedbackRefundWaiting()
226
  {
 
227
 
228
  $paymentMock = $this->getModelMock('core/resource_transaction', array('save'));
229
  $this->replaceByMock('model', 'core/resource_transaction', $paymentMock);
@@ -266,6 +275,8 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
266
  */
267
  public function testProcessFeedbackRefundRefused()
268
  {
 
 
269
  $transMock = $this->getModelMock('core/resource_transaction', array('save'));
270
  $this->replaceByMock('model', 'core/resource_transaction', $transMock);
271
 
@@ -306,7 +317,9 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
306
  */
307
  public function testProcessFeedbackVoidSuccess()
308
  {
 
309
  $this->mockOrderConfig();
 
310
  $transMock = $this->getModelMock('core/resource_transaction', array('save'));
311
  $this->replaceByMock('model', 'core/resource_transaction', $transMock);
312
 
@@ -338,6 +351,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
338
  */
339
  public function testProcessFeedbackVoidWaiting()
340
  {
 
341
 
342
  /** @var Mage_Sales_Model_Order $order */
343
  $order = Mage::getModel('sales/order')->load(11);
@@ -358,6 +372,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
358
  */
359
  public function testProcessFeedbackVoidRefused()
360
  {
 
361
 
362
  /** @var Mage_Sales_Model_Order $order */
363
  $order = Mage::getModel('sales/order')->load(11);
@@ -393,6 +408,8 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
393
  */
394
  public function testProcessFeedbackAuthorizeChanged()
395
  {
 
 
396
  $this->mockOrderConfig();
397
 
398
  /** @var Mage_Sales_Model_Order $order */
@@ -416,6 +433,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
416
  */
417
  public function testProcessFeedbackAuthorizeKwixoAccepted()
418
  {
 
419
  $this->mockOrderConfig();
420
 
421
  /** @var Mage_Sales_Model_Order $order */
@@ -452,6 +470,7 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
452
  */
453
  public function testProcessFeedbackUnknownStatus()
454
  {
 
455
 
456
  /** @var Mage_Sales_Model_Order $order */
457
  $order = Mage::getModel('sales/order')->load(11);
@@ -473,10 +492,12 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
473
  */
474
  public function testProcessFeedbackInvalidStatus()
475
  {
476
- $helperMock = $this->getHelperMock('ops', array('isAdminSession'));
477
  $helperMock->expects($this->once())
478
  ->method('isAdminSession')
479
  ->will($this->returnValue(false));
 
 
480
  $this->replaceByMock('helper', 'ops', $helperMock);
481
 
482
  /** @var Mage_Sales_Model_Order $order */
@@ -499,10 +520,12 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
499
  */
500
  public function testProcessFeedbackInvalidStatusAsAdmin()
501
  {
502
- $helperMock = $this->getHelperMock('ops', array('isAdminSession'));
503
  $helperMock->expects($this->once())
504
  ->method('isAdminSession')
505
  ->will($this->returnValue(true));
 
 
506
  $this->replaceByMock('helper', 'ops', $helperMock);
507
 
508
  /** @var Mage_Sales_Model_Order $order */
@@ -517,12 +540,5 @@ class Netresearch_OPS_Test_Helper_DirectLinkTest extends EcomDev_PHPUnit_Test_Ca
517
  $directlinkHelperMock->processFeedback($order, $params);
518
 
519
  }
520
- protected function mockOrderConfig(){
521
- $configMock = $this->getModelMock('sales/order_config',array('getDefaultStatus'));
522
- $configMock->expects($this->any())
523
- ->method('getDefaultStatus')
524
- ->will($this->returnArgument(0));
525
- $this->replaceByMock('singleton', 'sales/order_config', $configMock);
526
- }
527
  }
528
 
1
  <?php
2
+ class Netresearch_OPS_Test_Helper_DirectLinkTest
3
+ extends Netresearch_OPS_Test_Model_Response_TestCase
4
  {
5
  public function setUp()
6
  {
86
  */
87
  public function testProcessFeedbackCaptureSuccess()
88
  {
89
+ $this->mockEmailHelper($this->once());
90
 
91
  $order = Mage::getModel('sales/order')->load(11);
92
  $directlinkHelperMock = $this->getHelperMock('ops/directlink', array('isValidOpsRequest'));
114
  */
115
  public function testProcessFeedbackRefundSuccess()
116
  {
117
+ $this->mockEmailHelper($this->never());
118
 
119
  $mock = $this->getModelMock('sales/order', array('getBillingAddress'));
120
  $mock->expects($this->any())
139
  */
140
  public function testProcessFeedbackRefundWithStatusEightyFiveSuccess()
141
  {
142
+ $this->mockEmailHelper($this->never());
143
+
144
  $order = Mage::getModel('sales/order')->load(11);
145
  $directlinkHelperMock = $this->getHelperMock('ops/directlink', array('isValidOpsRequest'));
146
  $directlinkHelperMock->expects($this->any())
171
  */
172
  public function testProcessFeedbackPaymentWaiting()
173
  {
174
+ $this->mockEmailHelper($this->once());
175
 
176
  /** @var Mage_Sales_Model_Order $order */
177
  $order = Mage::getModel('sales/order')->load(11);
201
  */
202
  public function testProcessFeedbackPaymentRefused()
203
  {
204
+ // mail sending is triggered but getEmailSent takes effect
205
+ $this->mockEmailHelper($this->once());
206
 
207
  /** @var Mage_Sales_Model_Order $order */
208
  $order = Mage::getModel('sales/order')->load(11);
232
  */
233
  public function testProcessFeedbackRefundWaiting()
234
  {
235
+ $this->mockEmailHelper($this->never());
236
 
237
  $paymentMock = $this->getModelMock('core/resource_transaction', array('save'));
238
  $this->replaceByMock('model', 'core/resource_transaction', $paymentMock);
275
  */
276
  public function testProcessFeedbackRefundRefused()
277
  {
278
+ $this->mockEmailHelper($this->never());
279
+
280
  $transMock = $this->getModelMock('core/resource_transaction', array('save'));
281
  $this->replaceByMock('model', 'core/resource_transaction', $transMock);
282
 
317
  */
318
  public function testProcessFeedbackVoidSuccess()
319
  {
320
+ $this->mockEmailHelper($this->never());
321
  $this->mockOrderConfig();
322
+
323
  $transMock = $this->getModelMock('core/resource_transaction', array('save'));
324
  $this->replaceByMock('model', 'core/resource_transaction', $transMock);
325
 
351
  */
352
  public function testProcessFeedbackVoidWaiting()
353
  {
354
+ $this->mockEmailHelper($this->never());
355
 
356
  /** @var Mage_Sales_Model_Order $order */
357
  $order = Mage::getModel('sales/order')->load(11);
372
  */
373
  public function testProcessFeedbackVoidRefused()
374
  {
375
+ $this->mockEmailHelper($this->never());
376
 
377
  /** @var Mage_Sales_Model_Order $order */
378
  $order = Mage::getModel('sales/order')->load(11);
408
  */
409
  public function testProcessFeedbackAuthorizeChanged()
410
  {
411
+ // mail sending is triggered but getEmailSent takes effect
412
+ $this->mockEmailHelper($this->once());
413
  $this->mockOrderConfig();
414
 
415
  /** @var Mage_Sales_Model_Order $order */
433
  */
434
  public function testProcessFeedbackAuthorizeKwixoAccepted()
435
  {
436
+ $this->mockEmailHelper($this->once());
437
  $this->mockOrderConfig();
438
 
439
  /** @var Mage_Sales_Model_Order $order */
470
  */
471
  public function testProcessFeedbackUnknownStatus()
472
  {
473
+ $this->mockEmailHelper($this->never());
474
 
475
  /** @var Mage_Sales_Model_Order $order */
476
  $order = Mage::getModel('sales/order')->load(11);
492
  */
493
  public function testProcessFeedbackInvalidStatus()
494
  {
495
+ $helperMock = $this->getHelperMock('ops', array('isAdminSession', 'sendTransactionalEmail'));
496
  $helperMock->expects($this->once())
497
  ->method('isAdminSession')
498
  ->will($this->returnValue(false));
499
+ $helperMock->expects($this->never())
500
+ ->method('sendTransactionalEmail');
501
  $this->replaceByMock('helper', 'ops', $helperMock);
502
 
503
  /** @var Mage_Sales_Model_Order $order */
520
  */
521
  public function testProcessFeedbackInvalidStatusAsAdmin()
522
  {
523
+ $helperMock = $this->getHelperMock('ops', array('isAdminSession', 'sendTransactionalEmail'));
524
  $helperMock->expects($this->once())
525
  ->method('isAdminSession')
526
  ->will($this->returnValue(true));
527
+ $helperMock->expects($this->never())
528
+ ->method('sendTransactionalEmail');
529
  $this->replaceByMock('helper', 'ops', $helperMock);
530
 
531
  /** @var Mage_Sales_Model_Order $order */
540
  $directlinkHelperMock->processFeedback($order, $params);
541
 
542
  }
 
 
 
 
 
 
 
543
  }
544
 
app/code/community/Netresearch/OPS/Test/Helper/PaymentTest.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  class Netresearch_OPS_Test_Helper_PaymentTest
3
- extends EcomDev_PHPUnit_Test_Case
4
  {
5
  private $_helper;
6
  private $store;
@@ -381,131 +381,106 @@ class Netresearch_OPS_Test_Helper_PaymentTest
381
 
382
 
383
  /**
384
- * @loadFixture ../../../var/fixtures/orders.yaml
 
 
385
  *
 
 
386
  */
387
- public function testApplyStateForOrder()
388
  {
 
389
  $this->mockOrderConfig();
 
390
  $helperMock = $this->getHelperMock('ops', array('isAdminSession'));
391
  $helperMock->expects($this->any())
392
  ->method('isAdminSession')
393
  ->will($this->returnValue(false));
394
  $this->replaceByMock('helper', 'ops', $helperMock);
395
 
396
-
397
- $order = Mage::getModel('sales/order')->load(19);
398
  /** @var Netresearch_OPS_Helper_Payment $paymenthelperMock */
399
- $paymenthelperMock = $this->getHelperMock(
400
- 'ops/payment', array(
401
- 'acceptOrder',
402
- 'waitOrder',
403
- 'declineOrder',
404
- 'cancelOrder',
405
- 'handleException'
406
- )
407
- );
408
-
409
- // assertion for OPS_OPEN_INVOICE_DE_PROCESSED = 41000001
410
- $this->assertEquals(
411
- 'accept', $paymenthelperMock->applyStateForOrder(
412
- $order,
413
- array('STATUS' => Netresearch_OPS_Model_Status::WAITING_CLIENT_PAYMENT)
414
- )
415
- );
416
-
417
- // assertion for WAITING_FOR_IDENTIFICATION = 46
418
- $this->assertEquals(
419
- 'accept', $paymenthelperMock->applyStateForOrder(
420
- $order,
421
- array('STATUS' => Netresearch_OPS_Model_Status::WAITING_FOR_IDENTIFICATION)
422
- )
423
- );
424
-
425
- // assertion for AUTHORIZED = 5
426
- $this->assertEquals(
427
- 'accept', $paymenthelperMock->applyStateForOrder(
428
- $order,
429
- array('STATUS' => Netresearch_OPS_Model_Status::AUTHORIZED)
430
- )
431
- );
432
- // assertion for AUTHORIZED_WAITING_EXTERNAL_RESULT = 50
433
- $this->assertEquals(
434
- 'accept', $paymenthelperMock->applyStateForOrder(
435
- $order,
436
- array('STATUS' => Netresearch_OPS_Model_Status::AUTHORIZED_WAITING_EXTERNAL_RESULT)
437
- )
438
- );
439
-
440
- // assertion for AUTHORIZATION_WAITING = 51
441
- $this->assertEquals(
442
- 'accept', $paymenthelperMock->applyStateForOrder(
443
- $order,
444
- array('STATUS' => Netresearch_OPS_Model_Status::AUTHORIZATION_WAITING)
445
- )
446
- );
447
-
448
- // assertion for AUTHORIZED_UNKNOWN = 52
449
- $this->assertEquals(
450
- 'accept', $paymenthelperMock->applyStateForOrder(
451
- $order,
452
- array('STATUS' => Netresearch_OPS_Model_Status::AUTHORIZED_UNKNOWN)
453
- )
454
- );
455
 
456
- // assertion for WAITING_CLIENT_PAYMENT = 41
457
  $this->assertEquals(
458
- 'accept', $paymenthelperMock->applyStateForOrder(
459
- $order,
460
- array('STATUS' => Netresearch_OPS_Model_Status::WAITING_CLIENT_PAYMENT)
461
- )
462
  );
 
463
 
464
- // assertion for PAYMENT_REQUESTED = 9
465
- $this->assertEquals(
466
- 'accept', $paymenthelperMock->applyStateForOrder(
467
- $order,
468
- array('STATUS' => Netresearch_OPS_Model_Status::PAYMENT_REQUESTED)
469
- )
470
- );
471
- // assertion for PAYMENT_PROCESSING = 91
472
- $this->assertEquals(
473
- 'accept', $paymenthelperMock->applyStateForOrder(
474
- $order,
475
- array('STATUS' => Netresearch_OPS_Model_Status::PAYMENT_PROCESSING)
476
- )
477
- );
478
- // assertion for OPS_OPEN_INVOICE_DE_PROCESSED = 41000001
479
- $this->assertEquals(
480
- 'accept', $paymenthelperMock->applyStateForOrder(
481
- $order,
482
- array('STATUS' => Netresearch_OPS_Model_Status::WAITING_CLIENT_PAYMENT)
483
- )
484
- );
485
- // assertion for AUTHORISATION_DECLINED = 2
486
- $this->assertEquals(
487
- 'decline', $paymenthelperMock->applyStateForOrder(
488
- $order,
489
- array('STATUS' => Netresearch_OPS_Model_Status::AUTHORISATION_DECLINED)
490
- )
491
- );
492
- // assertion for PAYMENT_REFUSED = 93
493
- $this->assertEquals(
494
- 'decline', $paymenthelperMock->applyStateForOrder(
495
- $order,
496
- array('STATUS' => Netresearch_OPS_Model_Status::PAYMENT_REFUSED)
497
- )
498
- );
499
- // assertion for CANCELED_BY_CUSTOMER = 1
500
- $this->assertEquals(
501
- 'cancel', $paymenthelperMock->applyStateForOrder(
502
- $order,
503
- array(
504
- 'STATUS' => Netresearch_OPS_Model_Status::CANCELED_BY_CUSTOMER,
505
- 'PAYID' => 4711
506
- )
507
- )
508
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
509
  }
510
 
511
  /**
@@ -799,12 +774,4 @@ class Netresearch_OPS_Test_Helper_PaymentTest
799
  $paymentHelperMock->declineOrder($order, $params);
800
 
801
  }
802
-
803
- protected function mockOrderConfig(){
804
- $configMock = $this->getModelMock('sales/order_config',array('getDefaultStatus'));
805
- $configMock->expects($this->any())
806
- ->method('getDefaultStatus')
807
- ->will($this->returnArgument(0));
808
- $this->replaceByMock('singleton', 'sales/order_config', $configMock);
809
- }
810
  }
1
  <?php
2
  class Netresearch_OPS_Test_Helper_PaymentTest
3
+ extends Netresearch_OPS_Test_Model_Response_TestCase
4
  {
5
  private $_helper;
6
  private $store;
381
 
382
 
383
  /**
384
+ * @param int $opsStatus Incoming postBack status
385
+ * @param bool $sendMail Indicates whether opsStatus should trigger order confirmation mail
386
+ * @param string $feedbackStatus Indicates the route that the customer should get redirected to
387
  *
388
+ * @loadFixture ../../../var/fixtures/orders.yaml
389
+ * @dataProvider applyStateForOrderProvider
390
  */
391
+ public function testApplyStateForOrder($opsStatus, $sendMail, $feedbackStatus)
392
  {
393
+ $this->mockEmailHelper($this->exactly(intval($sendMail)));
394
  $this->mockOrderConfig();
395
+
396
  $helperMock = $this->getHelperMock('ops', array('isAdminSession'));
397
  $helperMock->expects($this->any())
398
  ->method('isAdminSession')
399
  ->will($this->returnValue(false));
400
  $this->replaceByMock('helper', 'ops', $helperMock);
401
 
 
 
402
  /** @var Netresearch_OPS_Helper_Payment $paymenthelperMock */
403
+ $paymenthelperMock = $this->getHelperMock('ops/payment', [
404
+ 'acceptOrder', 'waitOrder', 'declineOrder', 'cancelOrder', 'handleException',
405
+ ]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
406
 
407
+ $order = Mage::getModel('sales/order')->load(19);
408
  $this->assertEquals(
409
+ $feedbackStatus,
410
+ $paymenthelperMock->applyStateForOrder($order, ['STATUS' => $opsStatus])
 
 
411
  );
412
+ }
413
 
414
+ public function applyStateForOrderProvider()
415
+ {
416
+ return [
417
+ // assertion for WAITING_FOR_IDENTIFICATION = 46
418
+ [
419
+ $opsStatus = Netresearch_OPS_Model_Status::WAITING_FOR_IDENTIFICATION,
420
+ $sendMail = false,
421
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
422
+ ],
423
+ // assertion for AUTHORIZED = 5
424
+ [
425
+ $opsStatus = Netresearch_OPS_Model_Status::AUTHORIZED,
426
+ $sendMail = true,
427
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
428
+ ],
429
+ // assertion for AUTHORIZED_WAITING_EXTERNAL_RESULT = 50
430
+ [
431
+ $opsStatus = Netresearch_OPS_Model_Status::AUTHORIZED_WAITING_EXTERNAL_RESULT,
432
+ $sendMail = true,
433
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
434
+ ],
435
+ // assertion for AUTHORIZATION_WAITING = 51
436
+ [
437
+ $opsStatus = Netresearch_OPS_Model_Status::AUTHORIZATION_WAITING,
438
+ $sendMail = true,
439
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
440
+ ],
441
+ // assertion for AUTHORIZED_UNKNOWN = 52
442
+ [
443
+ $opsStatus = Netresearch_OPS_Model_Status::AUTHORIZED_UNKNOWN,
444
+ $sendMail = true,
445
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
446
+ ],
447
+ // assertion for WAITING_CLIENT_PAYMENT = 41
448
+ [
449
+ $opsStatus = Netresearch_OPS_Model_Status::WAITING_CLIENT_PAYMENT,
450
+ $sendMail = true,
451
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
452
+ ],
453
+ // assertion for PAYMENT_REQUESTED = 9
454
+ [
455
+ $opsStatus = Netresearch_OPS_Model_Status::PAYMENT_REQUESTED,
456
+ $sendMail = true,
457
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
458
+ ],
459
+ // assertion for PAYMENT_PROCESSING = 91
460
+ [
461
+ $opsStatus = Netresearch_OPS_Model_Status::PAYMENT_PROCESSING,
462
+ $sendMail = true,
463
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_ACCEPT,
464
+ ],
465
+ // assertion for AUTHORISATION_DECLINED = 2
466
+ [
467
+ $opsStatus = Netresearch_OPS_Model_Status::AUTHORISATION_DECLINED,
468
+ $sendMail = true,
469
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_DECLINE,
470
+ ],
471
+ // assertion for PAYMENT_REFUSED = 93
472
+ [
473
+ $opsStatus = Netresearch_OPS_Model_Status::PAYMENT_REFUSED,
474
+ $sendMail = true,
475
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_DECLINE,
476
+ ],
477
+ // assertion for CANCELED_BY_CUSTOMER = 1
478
+ [
479
+ $opsStatus = Netresearch_OPS_Model_Status::CANCELED_BY_CUSTOMER,
480
+ $sendMail = false,
481
+ $feedbackStatus = Netresearch_OPS_Model_Status_Feedback::OPS_ORDER_FEEDBACK_STATUS_CANCEL,
482
+ ],
483
+ ];
484
  }
485
 
486
  /**
774
  $paymentHelperMock->declineOrder($order, $params);
775
 
776
  }
 
 
 
 
 
 
 
 
777
  }
app/code/community/Netresearch/OPS/Test/Model/ObserverTest.php CHANGED
@@ -1,6 +1,7 @@
1
  <?php
2
 
3
- class Netresearch_OPS_Test_Model_ObserverTest extends EcomDev_PHPUnit_Test_Case_Controller
 
4
  {
5
  private $_model;
6
 
@@ -306,7 +307,7 @@ class Netresearch_OPS_Test_Model_ObserverTest extends EcomDev_PHPUnit_Test_Case_
306
  'ECOM_SHIPTO_POSTAL_STATE' => '',
307
  );
308
  }
309
-
310
  private function getRequestParamsWithoutAlias($quote, $order)
311
  {
312
  return array(
@@ -879,4 +880,181 @@ class Netresearch_OPS_Test_Model_ObserverTest extends EcomDev_PHPUnit_Test_Case_
879
  $this->assertEquals('def', $profile->getState());
880
  }
881
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
882
  }
1
  <?php
2
 
3
+ class Netresearch_OPS_Test_Model_ObserverTest
4
+ extends EcomDev_PHPUnit_Test_Case_Controller
5
  {
6
  private $_model;
7
 
307
  'ECOM_SHIPTO_POSTAL_STATE' => '',
308
  );
309
  }
310
+
311
  private function getRequestParamsWithoutAlias($quote, $order)
312
  {
313
  return array(
880
  $this->assertEquals('def', $profile->getState());
881
  }
882
 
883
+ /**
884
+ * @test
885
+ */
886
+ public function sendTransactionalEmailsNoOps()
887
+ {
888
+ // no emails on third party payments
889
+ $helperMock = $this->getHelperMock('ops/data', ['sendTransactionalEmail']);
890
+ $helperMock
891
+ ->expects($this->never())
892
+ ->method('sendTransactionalEmail')
893
+ ->with($this->isInstanceOf('Mage_Sales_Model_Order'))
894
+ ;
895
+ $this->replaceByMock('helper', 'ops/data', $helperMock);
896
+
897
+ $payment = new Varien_Object([
898
+ 'method' => Mage::getModel('payment/method_checkmo')->getCode(),
899
+ ]);
900
+ $order = new Varien_Object([
901
+ 'payment' => $payment,
902
+ ]);
903
+
904
+ $observerMock = $this->getMockBuilder('Varien_Event_Observer')
905
+ ->setMethods(['getOrder'])
906
+ ->getMock()
907
+ ;
908
+ $observerMock
909
+ ->expects($this->once())
910
+ ->method('getOrder')
911
+ ->willReturn($order)
912
+ ;
913
+
914
+ Mage::getModel('ops/observer')->sendTransactionalEmails($observerMock);
915
+ }
916
+
917
+ /**
918
+ * @test
919
+ */
920
+ public function sendTransactionalEmailsGatewayPayment()
921
+ {
922
+ // no emails on ingenico redirect payments
923
+ $helperMock = $this->getHelperMock('ops/data', ['sendTransactionalEmail']);
924
+ $helperMock
925
+ ->expects($this->never())
926
+ ->method('sendTransactionalEmail')
927
+ ->with($this->isInstanceOf('Mage_Sales_Model_Order'))
928
+ ;
929
+ $this->replaceByMock('helper', 'ops/data', $helperMock);
930
+
931
+ $payment = new Varien_Object([
932
+ 'method_instance' => Mage::getModel('ops/payment_bankTransfer'),
933
+ 'order_place_redirect_url' => 'foo',
934
+ ]);
935
+ $order = new Varien_Object([
936
+ 'payment' => $payment,
937
+ ]);
938
+ $quote = new Varien_Object([
939
+ 'payment' => $payment,
940
+ ]);
941
+
942
+ $observerMock = $this->getMockBuilder('Varien_Event_Observer')
943
+ ->setMethods(['getOrder', 'getQuote'])
944
+ ->getMock()
945
+ ;
946
+ $observerMock
947
+ ->expects($this->once())
948
+ ->method('getOrder')
949
+ ->willReturn($order)
950
+ ;
951
+ $observerMock
952
+ ->expects($this->once())
953
+ ->method('getQuote')
954
+ ->willReturn($quote)
955
+ ;
956
+
957
+ Mage::getModel('ops/observer')->sendTransactionalEmails($observerMock);
958
+ }
959
+
960
+ /**
961
+ * @test
962
+ */
963
+ public function sendTransactionalEmailsException()
964
+ {
965
+ // exception not really testable.
966
+ // just assert that second call to sendTransactionalEmail is not invoked
967
+ $helperMock = $this->getHelperMock('ops/data', ['sendTransactionalEmail']);
968
+ $helperMock
969
+ ->expects($this->exactly(1))
970
+ ->method('sendTransactionalEmail')
971
+ ->withConsecutive(
972
+ $this->isInstanceOf('Mage_Sales_Model_Order'),
973
+ $this->isInstanceOf('Mage_Sales_Model_Order_Invoice')
974
+ )
975
+ ->willThrowException(new Exception('no mails foo'))
976
+ ;
977
+ $this->replaceByMock('helper', 'ops/data', $helperMock);
978
+
979
+
980
+ $payment = new Varien_Object([
981
+ 'method_instance' => Mage::getModel('ops/payment_bankTransfer'),
982
+ ]);
983
+ $quote = new Varien_Object([
984
+ 'payment' => $payment,
985
+ ]);
986
+ $orderMock = $this->getModelMock('sales/order', ['getPayment']);
987
+ $orderMock
988
+ ->expects($this->once())
989
+ ->method('getPayment')
990
+ ->willReturn($payment)
991
+ ;
992
+
993
+ $observerMock = $this->getMockBuilder('Varien_Event_Observer')
994
+ ->setMethods(['getOrder', 'getQuote'])
995
+ ->getMock()
996
+ ;
997
+ $observerMock
998
+ ->expects($this->once())
999
+ ->method('getOrder')
1000
+ ->willReturn($orderMock)
1001
+ ;
1002
+ $observerMock
1003
+ ->expects($this->once())
1004
+ ->method('getQuote')
1005
+ ->willReturn($quote)
1006
+ ;
1007
+
1008
+ Mage::getModel('ops/observer')->sendTransactionalEmails($observerMock);
1009
+ }
1010
+
1011
+ /**
1012
+ * @test
1013
+ */
1014
+ public function sendTransactionalEmailsSuccess()
1015
+ {
1016
+ $helperMock = $this->getHelperMock('ops/data', ['sendTransactionalEmail']);
1017
+ $helperMock
1018
+ ->expects($this->exactly(2))
1019
+ ->method('sendTransactionalEmail')
1020
+ ->withConsecutive(
1021
+ $this->isInstanceOf('Mage_Sales_Model_Order'),
1022
+ $this->isInstanceOf('Mage_Sales_Model_Order_Invoice')
1023
+ )
1024
+ ;
1025
+ $this->replaceByMock('helper', 'ops/data', $helperMock);
1026
+
1027
+ // invoice
1028
+ $invoice = Mage::getModel('sales/order_invoice');
1029
+
1030
+ // order payment
1031
+ $payment = new Varien_Object([
1032
+ 'method_instance' => Mage::getModel('ops/payment_cc'),
1033
+ 'created_invoice' => $invoice,
1034
+ ]);
1035
+
1036
+ // order
1037
+ $orderMock = $this->getModelMock('sales/order', ['getPayment']);
1038
+ $orderMock
1039
+ ->expects($this->exactly(2))
1040
+ ->method('getPayment')
1041
+ ->willReturn($payment)
1042
+ ;
1043
+ $this->replaceByMock('model', 'sales/order', $orderMock);
1044
+ $order = Mage::getModel('sales/order');
1045
+
1046
+ // quote
1047
+ $quote = new Varien_Object([
1048
+ 'payment' => $payment,
1049
+ ]);
1050
+
1051
+ $observerMock = $this->getMockBuilder('Varien_Event_Observer')
1052
+ ->setMethods(['getOrder', 'getQuote'])
1053
+ ->getMock()
1054
+ ;
1055
+ $observerMock->expects($this->once())->method('getOrder')->willReturn($order);
1056
+ $observerMock->expects($this->once())->method('getQuote')->willReturn($quote);
1057
+
1058
+ Mage::getModel('ops/observer')->sendTransactionalEmails($observerMock);
1059
+ }
1060
  }
app/code/community/Netresearch/OPS/Test/Model/Payment/CcTest.php CHANGED
@@ -37,6 +37,7 @@ class Netresearch_OPS_Test_Model_Payment_CcTest extends EcomDev_PHPUnit_Test_Cas
37
 
38
  public function testOrderPlaceRedirectUrl()
39
  {
 
40
  $this->_payment->setAdditionalInformation('CC_BRAND', 'VISA');
41
  $this->assertFalse($this->_model->getOrderPlaceRedirectUrl($this->_payment), 'VISA should NOT require a redirect after checkout');
42
 
37
 
38
  public function testOrderPlaceRedirectUrl()
39
  {
40
+ $this->_model->setInfoInstance($this->_payment);
41
  $this->_payment->setAdditionalInformation('CC_BRAND', 'VISA');
42
  $this->assertFalse($this->_model->getOrderPlaceRedirectUrl($this->_payment), 'VISA should NOT require a redirect after checkout');
43
 
app/code/community/Netresearch/OPS/Test/Model/Payment/Features/PaymentEmailTest.php CHANGED
@@ -1,94 +1,124 @@
1
- <?php
2
-
3
- /**
4
- * PaymentEmailTest.php
5
- *
6
- * @author paul.siedler@netresearch.de
7
- * @copyright Copyright (c) 2015 Netresearch GmbH & Co. KG
8
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License
9
- */
10
- class Netresearch_OPS_Test_Model_Payment_Features_PaymentEmailTest extends EcomDev_PHPUnit_Test_Case
11
- {
12
-
13
- /** @var Netresearch_OPS_Model_Payment_Features_PaymentEmail $testSubject */
14
- protected $testSubject;
15
-
16
- public function setUp()
17
- {
18
- parent::setUp();
19
- $this->testSubject = Mage::getModel('ops/payment_features_paymentEmail');
20
- }
21
-
22
- public function testIsAvailableForOrder()
23
- {
24
-
25
- // given object is no order model -> returns false
26
- $order = new Varien_Object();
27
- $this->assertFalse($this->testSubject->isAvailableForOrder($order));
28
-
29
- // given payment has not fitting status -> returns false
30
- $payment = Mage::getModel('sales/order_payment');
31
- $payment->setAdditionalInformation(array('status' => 9));
32
- $order = $this->getModelMock('sales/order', array('getPayment'));
33
- $order->expects($this->once())
34
- ->method('getPayment')
35
- ->will($this->returnValue($payment));
36
- $this->assertFalse($this->testSubject->isAvailableForOrder($order));
37
-
38
- // payment has relevant status -> returns true
39
- $payment = Mage::getModel('sales/order_payment');
40
- $payment->setAdditionalInformation(array('status' => 1));
41
- $order = $this->getModelMock('sales/order', array('getPayment'));
42
- $order->expects($this->once())
43
- ->method('getPayment')
44
- ->will($this->returnValue($payment));
45
- $this->assertTrue($this->testSubject->isAvailableForOrder($order));
46
-
47
- }
48
-
49
- public function testResendPaymentInfo()
50
- {
51
- $genericMethod = Mage::getModel('ops/payment_flex');
52
-
53
-
54
- $payment = $this->getModelMock('sales/order_payment', array('save'));
55
- $payment->expects($this->once())
56
- ->method('save')
57
- ->will($this->returnValue(null));
58
-
59
- $order = Mage::getModel('sales/order');
60
- $order->setData('customer_email', 'a@bc.de')
61
- ->setData('customer_firstname', 'Hans')
62
- ->setData('customer_lastname', 'Wurst')
63
- ->setStoreId(0)
64
- ->setPayment($payment);
65
-
66
- $this->assertTrue($this->testSubject->resendPaymentInfo($order));
67
- $this->assertNotEquals($order->getPayment()->getMethod(), 'foobar');
68
- $this->assertEquals($order->getPayment()->getMethod(), Netresearch_OPS_Model_Payment_Flex::CODE);
69
- }
70
-
71
- /**
72
- * @expectedException Exception
73
- * @expectedExceptionMessage Could not send mail due to internal error!
74
- */
75
- public function testSendSuspendSubscriptionMailWithException()
76
- {
77
- $this->testSubject->sendSuspendSubscriptionMail(null, null);
78
- }
79
-
80
- public function testSendSuspendSubscriptionMail()
81
- {
82
- $profile = Mage::getModel('sales/recurring_profile');
83
- $profile->setReferenceId('SUB-123')
84
- ->setStoreId(0);
85
-
86
- $customer = Mage::getModel('customer/customer');
87
- $customer->setEmail('a@bc.de')
88
- ->setFirstName('Hans')
89
- ->setLastName('Wurst');
90
-
91
- $this->assertTrue($this->testSubject->sendSuspendSubscriptionMail($profile, $customer));
92
-
93
- }
94
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * PaymentEmailTest.php
5
+ *
6
+ * @author paul.siedler@netresearch.de
7
+ * @copyright Copyright (c) 2015 Netresearch GmbH & Co. KG
8
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License
9
+ */
10
+ class Netresearch_OPS_Test_Model_Payment_Features_PaymentEmailTest extends EcomDev_PHPUnit_Test_Case
11
+ {
12
+
13
+ /** @var Netresearch_OPS_Model_Payment_Features_PaymentEmail $testSubject */
14
+ protected $testSubject;
15
+
16
+ public function setUp()
17
+ {
18
+ parent::setUp();
19
+ $this->testSubject = Mage::getModel('ops/payment_features_paymentEmail');
20
+ }
21
+
22
+ public function testIsAvailableForOrder()
23
+ {
24
+ // given object is no order model -> returns false
25
+ $order = new Varien_Object();
26
+ $this->assertFalse($this->testSubject->isAvailableForOrder($order));
27
+
28
+ // given payment has not fitting status -> returns false
29
+ $payment = Mage::getModel('sales/order_payment');
30
+ $payment->setAdditionalInformation(array('status' => 9));
31
+ $order = $this->getModelMock('sales/order', array('getPayment'));
32
+ $order->expects($this->once())
33
+ ->method('getPayment')
34
+ ->will($this->returnValue($payment));
35
+ $this->assertFalse($this->testSubject->isAvailableForOrder($order));
36
+
37
+ // payment has relevant status -> returns true
38
+ $payment = Mage::getModel('sales/order_payment');
39
+ $payment->setAdditionalInformation(array('status' => 1));
40
+ $order = $this->getModelMock('sales/order', array('getPayment'));
41
+ $order->expects($this->once())
42
+ ->method('getPayment')
43
+ ->will($this->returnValue($payment));
44
+ $this->assertTrue($this->testSubject->isAvailableForOrder($order));
45
+ }
46
+
47
+ public function testResendPaymentInfo()
48
+ {
49
+ $mailMock = $this->getMockBuilder('Zend_Mail')
50
+ ->setMethods(['send'])
51
+ ->getMock()
52
+ ;
53
+ $mailMock
54
+ ->expects($this->once())
55
+ ->method('send')
56
+ ->willReturnSelf()
57
+ ;
58
+
59
+ $templateMock = $this->getModelMock('core/email_template', ['getMail']);
60
+ $templateMock
61
+ ->expects($this->any())
62
+ ->method('getMail')
63
+ ->willReturn($mailMock)
64
+ ;
65
+ $this->replaceByMock('model', 'core/email_template', $templateMock);
66
+
67
+ $payment = $this->getModelMock('sales/order_payment', array('save'));
68
+ $payment->expects($this->once())
69
+ ->method('save')
70
+ ->will($this->returnValue(null));
71
+
72
+ $order = Mage::getModel('sales/order');
73
+ $order->setData('customer_email', 'a@bc.de')
74
+ ->setData('customer_firstname', 'Hans')
75
+ ->setData('customer_lastname', 'Wurst')
76
+ ->setStoreId(0)
77
+ ->setPayment($payment);
78
+
79
+ $this->assertTrue($this->testSubject->resendPaymentInfo($order));
80
+ $this->assertNotEquals($order->getPayment()->getMethod(), 'foobar');
81
+ $this->assertEquals($order->getPayment()->getMethod(), Netresearch_OPS_Model_Payment_Flex::CODE);
82
+ }
83
+
84
+ /**
85
+ * @expectedException Exception
86
+ * @expectedExceptionMessage Could not send mail due to internal error!
87
+ */
88
+ public function testSendSuspendSubscriptionMailWithException()
89
+ {
90
+ $this->testSubject->sendSuspendSubscriptionMail(null, null);
91
+ }
92
+
93
+ public function testSendSuspendSubscriptionMail()
94
+ {
95
+ $mailMock = $this->getMockBuilder('Zend_Mail')
96
+ ->setMethods(['send'])
97
+ ->getMock()
98
+ ;
99
+ $mailMock
100
+ ->expects($this->once())
101
+ ->method('send')
102
+ ->willReturnSelf()
103
+ ;
104
+
105
+ $templateMock = $this->getModelMock('core/email_template', ['getMail']);
106
+ $templateMock
107
+ ->expects($this->any())
108
+ ->method('getMail')
109
+ ->willReturn($mailMock)
110
+ ;
111
+ $this->replaceByMock('model', 'core/email_template', $templateMock);
112
+
113
+ $profile = Mage::getModel('sales/recurring_profile');
114
+ $profile->setReferenceId('SUB-123')
115
+ ->setStoreId(0);
116
+
117
+ $customer = Mage::getModel('customer/customer');
118
+ $customer->setEmail('a@bc.de')
119
+ ->setFirstName('Hans')
120
+ ->setLastName('Wurst');
121
+
122
+ $this->assertTrue($this->testSubject->sendSuspendSubscriptionMail($profile, $customer));
123
+ }
124
+ }
app/code/community/Netresearch/OPS/Test/Model/Response/TestCase.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Netresearch OPS
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ *
12
+ * DISCLAIMER
13
+ *
14
+ * Do not edit or add to this file if you wish to upgrade this extension to
15
+ * newer versions in the future.
16
+ *
17
+ * PHP version 5
18
+ *
19
+ * @category Netresearch
20
+ * @package Netresearch_OPS
21
+ * @author Christoph Aßmann <christoph.assmann@netresearch.de>
22
+ * @copyright 2016 Netresearch GmbH & Co. KG
23
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
24
+ * @link http://www.netresearch.de/
25
+ */
26
+
27
+ /**
28
+ * Netresearch_OPS_Test_Model_Response_TestCase
29
+ *
30
+ * @category Netresearch
31
+ * @package Netresearch_OPS
32
+ * @author Christoph Aßmann <christoph.assmann@netresearch.de>
33
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
34
+ * @link http://www.netresearch.de/
35
+ */
36
+ abstract class Netresearch_OPS_Test_Model_Response_TestCase extends EcomDev_PHPUnit_Test_Case
37
+ {
38
+ protected function mockOrderConfig()
39
+ {
40
+ $configMock = $this->getModelMock('sales/order_config', ['getDefaultStatus']);
41
+ $configMock
42
+ ->expects($this->any())
43
+ ->method('getDefaultStatus')
44
+ ->will($this->returnArgument(0))
45
+ ;
46
+ $this->replaceByMock('singleton', 'sales/order_config', $configMock);
47
+ }
48
+
49
+ /**
50
+ * Assert order confirmation email being (not) sent.
51
+ *
52
+ * @param PHPUnit_Framework_MockObject_Matcher_Invocation $matcher
53
+ */
54
+ protected function mockEmailHelper(PHPUnit_Framework_MockObject_Matcher_Invocation $matcher)
55
+ {
56
+ $helperMock = $this->getHelperMock('ops/data', ['sendTransactionalEmail']);
57
+ $helperMock
58
+ ->expects($matcher)
59
+ ->method('sendTransactionalEmail')
60
+ ->with($this->isInstanceOf('Mage_Sales_Model_Order'))
61
+ ;
62
+ $this->replaceByMock('helper', 'ops/data', $helperMock);
63
+ }
64
+ }
app/code/community/Netresearch/OPS/Test/Model/Response/Type/AuthorizeTest.php CHANGED
@@ -6,9 +6,9 @@
6
  * Time: 12:51
7
  */
8
 
9
- class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHPUnit_Test_Case
 
10
  {
11
-
12
  /**
13
  * @test
14
  * @loadFixture orders.yaml
@@ -16,7 +16,7 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
16
  */
17
  public function testExceptionThrown()
18
  {
19
- /** @var Netresearch_OPS_Model_Payment_IDeal $instance */
20
 
21
  $order = Mage::getModel('sales/order')->load(25);
22
  $response = array(
@@ -39,7 +39,7 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
39
  */
40
  public function testExceptionThrownForNoAuthorizeStatus()
41
  {
42
- /** @var Netresearch_OPS_Model_Payment_IDeal $instance */
43
 
44
  $order = Mage::getModel('sales/order')->load(25);
45
  $response = array(
@@ -54,16 +54,15 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
54
  $handler->handleResponse($response, $order->getPayment()->getMethodInstance(), false);
55
  }
56
 
57
-
58
  /**
59
  * @test
60
  * @loadFixture orders.yaml
61
  */
62
  public function testHandleResponseWithPendingPaymentAndIntermediate()
63
  {
 
64
  $this->mockOrderConfig();
65
 
66
- /** @var Netresearch_OPS_Model_Payment_IDeal $instance */
67
  $order = Mage::getModel('sales/order')->load(28);
68
 
69
  $response = array(
@@ -89,8 +88,9 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
89
  */
90
  public function testHandleResponseWithPaymentReviewAndFinal()
91
  {
 
92
  $this->mockOrderConfig();
93
- /** @var Netresearch_OPS_Model_Payment_IDeal $instance */
94
  $order = Mage::getModel('sales/order')->load(26);
95
 
96
  $response = array(
@@ -116,7 +116,7 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
116
  */
117
  public function testHandleResponseWithPaymentReviewAndIntermediate()
118
  {
119
-
120
  $this->mockOrderConfig();
121
 
122
  $order = Mage::getModel('sales/order')->load(26);
@@ -143,10 +143,10 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
143
  */
144
  public function testHandleResponseWithPaymentReviewAndFinalDeclined()
145
  {
 
146
  $this->mockOrderConfig();
147
 
148
  $order = Mage::getModel('sales/order')->load(26);
149
- $this->mockOrderConfig();
150
 
151
  $response = array(
152
  'status' => 2,
@@ -173,7 +173,9 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
173
  */
174
  public function testHandleResponseWithPendingPaymentAndFinal()
175
  {
 
176
  $this->mockOrderConfig();
 
177
  $order = Mage::getModel('sales/order')->load(29);
178
  $response = array(
179
  'status' => 5,
@@ -191,14 +193,15 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
191
  $this->assertEquals($response['status'], $order->getPayment()->getAdditionalInformation('status'));
192
  }
193
 
194
-
195
  /**
196
  * @test
197
  * @loadFixture orders.yaml
198
  */
199
  public function testHandleResponseWithPendingPaymentAndSuspectedFraudStatus()
200
  {
 
201
  $order = Mage::getModel('sales/order')->load(30);
 
202
  $response = array(
203
  'status' => 55,
204
  'payid' => 12345678,
@@ -222,6 +225,8 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
222
  */
223
  public function testHandleResponseWithPaymentReviewAndSuspectedFraudStatus()
224
  {
 
 
225
  $order = Mage::getModel('sales/order')->load(31);
226
  $response = array(
227
  'status' => 55,
@@ -240,18 +245,14 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
240
  $this->assertEquals($response['status'], $order->getPayment()->getAdditionalInformation('status'));
241
  }
242
 
243
- protected function mockOrderConfig(){
244
- $configMock = $this->getModelMock('sales/order_config',array('getDefaultStatus'));
245
- $configMock->expects($this->any())
246
- ->method('getDefaultStatus')
247
- ->will($this->returnArgument(0));
248
- $this->replaceByMock('singleton', 'sales/order_config', $configMock);
249
- }
250
 
251
- public function testStatusAuthorizationUnclear(){
252
  $order = Mage::getModel('sales/order')->setState(Mage_Sales_Model_Order::STATE_NEW);
253
  $payment = Mage::getModel('sales/order_payment')->setMethod('ops_cc');
254
  $order->setPayment($payment);
 
255
  $response = array(
256
  'status' => 52,
257
  'payid' => 12345678,
@@ -260,7 +261,7 @@ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest extends EcomDev_PHP
260
  );
261
  $handler = Mage::getModel('ops/response_handler');
262
  $handler->processResponse($response, $order->getPayment()->getMethodInstance(), false);
263
- $this->assertEquals(true, $payment->getIsTransactionPending());
264
 
 
265
  }
266
- }
6
  * Time: 12:51
7
  */
8
 
9
+ class Netresearch_OPS_Test_Model_Response_Type_AuthorizeTest
10
+ extends Netresearch_OPS_Test_Model_Response_TestCase
11
  {
 
12
  /**
13
  * @test
14
  * @loadFixture orders.yaml
16
  */
17
  public function testExceptionThrown()
18
  {
19
+ $this->mockEmailHelper($this->never());
20
 
21
  $order = Mage::getModel('sales/order')->load(25);
22
  $response = array(
39
  */
40
  public function testExceptionThrownForNoAuthorizeStatus()
41
  {
42
+ $this->mockEmailHelper($this->never());
43
 
44
  $order = Mage::getModel('sales/order')->load(25);
45
  $response = array(
54
  $handler->handleResponse($response, $order->getPayment()->getMethodInstance(), false);
55
  }
56
 
 
57
  /**
58
  * @test
59
  * @loadFixture orders.yaml
60
  */
61
  public function testHandleResponseWithPendingPaymentAndIntermediate()
62
  {
63
+ $this->mockEmailHelper($this->once());
64
  $this->mockOrderConfig();
65
 
 
66
  $order = Mage::getModel('sales/order')->load(28);
67
 
68
  $response = array(
88
  */
89
  public function testHandleResponseWithPaymentReviewAndFinal()
90
  {
91
+ $this->mockEmailHelper($this->once());
92
  $this->mockOrderConfig();
93
+
94
  $order = Mage::getModel('sales/order')->load(26);
95
 
96
  $response = array(
116
  */
117
  public function testHandleResponseWithPaymentReviewAndIntermediate()
118
  {
119
+ $this->mockEmailHelper($this->once());
120
  $this->mockOrderConfig();
121
 
122
  $order = Mage::getModel('sales/order')->load(26);
143
  */
144
  public function testHandleResponseWithPaymentReviewAndFinalDeclined()
145
  {
146
+ $this->mockEmailHelper($this->never());
147
  $this->mockOrderConfig();
148
 
149
  $order = Mage::getModel('sales/order')->load(26);
 
150
 
151
  $response = array(
152
  'status' => 2,
173
  */
174
  public function testHandleResponseWithPendingPaymentAndFinal()
175
  {
176
+ $this->mockEmailHelper($this->once());
177
  $this->mockOrderConfig();
178
+
179
  $order = Mage::getModel('sales/order')->load(29);
180
  $response = array(
181
  'status' => 5,
193
  $this->assertEquals($response['status'], $order->getPayment()->getAdditionalInformation('status'));
194
  }
195
 
 
196
  /**
197
  * @test
198
  * @loadFixture orders.yaml
199
  */
200
  public function testHandleResponseWithPendingPaymentAndSuspectedFraudStatus()
201
  {
202
+ $this->mockEmailHelper($this->once());
203
  $order = Mage::getModel('sales/order')->load(30);
204
+
205
  $response = array(
206
  'status' => 55,
207
  'payid' => 12345678,
225
  */
226
  public function testHandleResponseWithPaymentReviewAndSuspectedFraudStatus()
227
  {
228
+ $this->mockEmailHelper($this->once());
229
+
230
  $order = Mage::getModel('sales/order')->load(31);
231
  $response = array(
232
  'status' => 55,
245
  $this->assertEquals($response['status'], $order->getPayment()->getAdditionalInformation('status'));
246
  }
247
 
248
+ public function testStatusAuthorizationUnclear()
249
+ {
250
+ $this->mockEmailHelper($this->never());
 
 
 
 
251
 
 
252
  $order = Mage::getModel('sales/order')->setState(Mage_Sales_Model_Order::STATE_NEW);
253
  $payment = Mage::getModel('sales/order_payment')->setMethod('ops_cc');
254
  $order->setPayment($payment);
255
+
256
  $response = array(
257
  'status' => 52,
258
  'payid' => 12345678,
261
  );
262
  $handler = Mage::getModel('ops/response_handler');
263
  $handler->processResponse($response, $order->getPayment()->getMethodInstance(), false);
 
264
 
265
+ $this->assertEquals(true, $payment->getIsTransactionPending());
266
  }
267
+ }
app/code/community/Netresearch/OPS/Test/Model/Response/Type/CaptureTest.php CHANGED
@@ -20,17 +20,14 @@
20
  */
21
 
22
  /**
23
- * CaptureTest.php
24
  *
25
  * @category OPS
26
  * @package Netresearch_OPS
27
  * @author Paul Siedler <paul.siedler@netresearch.de>
28
  */
29
- ?>
30
- <?php
31
-
32
-
33
- class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUnit_Test_Case
34
  {
35
  /**
36
  * @test
@@ -38,6 +35,8 @@ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUn
38
  */
39
  public function testHandleResponseWithPaymentReviewAndIntermediate()
40
  {
 
 
41
  $order = Mage::getModel('sales/order')->load(26);
42
 
43
  $response = array(
@@ -62,7 +61,8 @@ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUn
62
  */
63
  public function testHandleResponseWithPendingPaymentAndIntermediate()
64
  {
65
- /** @var Netresearch_OPS_Model_Payment_IDeal $instance */
 
66
  $order = Mage::getModel('sales/order')->load(25);
67
 
68
  $response = array(
@@ -87,8 +87,9 @@ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUn
87
  */
88
  public function testHandleResponseWithPaymentReviewAndFinal()
89
  {
 
90
  $this->mockOrderConfig();
91
- /** @var Netresearch_OPS_Model_Payment_IDeal $instance */
92
  $order = Mage::getModel('sales/order')->load(26);
93
 
94
  $response = array(
@@ -113,7 +114,9 @@ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUn
113
  */
114
  public function testHandleResponseWithPendingPaymentAndFinal()
115
  {
 
116
  $this->mockOrderConfig();
 
117
  $order = Mage::getModel('sales/order')->load(25);
118
  $order->setBaseGrandTotal(33.33);
119
 
@@ -141,9 +144,10 @@ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUn
141
  */
142
  public function testExceptionThrown()
143
  {
144
- /** @var Netresearch_OPS_Model_Payment_IDeal $instance */
145
 
146
  $order = Mage::getModel('sales/order')->load(25);
 
147
  $response = array(
148
  'status' => 43,
149
  'payid' => 1234567,
@@ -162,11 +166,11 @@ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUn
162
  */
163
  public function testAbortBecauseSameStatus()
164
  {
 
 
165
  $order = Mage::getModel('sales/order')->load(27);
166
  $order->getPayment()->setAdditionalInformation('status', 9);
167
 
168
-
169
-
170
  $response = array(
171
  'status' => 9,
172
  'payid' => 1234567,
@@ -181,12 +185,4 @@ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest extends EcomDev_PHPUn
181
  $handler->handleResponse($response, $order->getPayment()->getMethodInstance());
182
  $this->assertEquals(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, $order->getState());
183
  }
184
-
185
- protected function mockOrderConfig(){
186
- $configMock = $this->getModelMock('sales/order_config',array('getDefaultStatus'));
187
- $configMock->expects($this->any())
188
- ->method('getDefaultStatus')
189
- ->will($this->returnArgument(0));
190
- $this->replaceByMock('singleton', 'sales/order_config', $configMock);
191
- }
192
  }
20
  */
21
 
22
  /**
23
+ * Netresearch_OPS_Test_Model_Response_Type_CaptureTest
24
  *
25
  * @category OPS
26
  * @package Netresearch_OPS
27
  * @author Paul Siedler <paul.siedler@netresearch.de>
28
  */
29
+ class Netresearch_OPS_Test_Model_Response_Type_CaptureTest
30
+ extends Netresearch_OPS_Test_Model_Response_TestCase
 
 
 
31
  {
32
  /**
33
  * @test
35
  */
36
  public function testHandleResponseWithPaymentReviewAndIntermediate()
37
  {
38
+ $this->mockEmailHelper($this->once());
39
+
40
  $order = Mage::getModel('sales/order')->load(26);
41
 
42
  $response = array(
61
  */
62
  public function testHandleResponseWithPendingPaymentAndIntermediate()
63
  {
64
+ $this->mockEmailHelper($this->once());
65
+
66
  $order = Mage::getModel('sales/order')->load(25);
67
 
68
  $response = array(
87
  */
88
  public function testHandleResponseWithPaymentReviewAndFinal()
89
  {
90
+ $this->mockEmailHelper($this->once());
91
  $this->mockOrderConfig();
92
+
93
  $order = Mage::getModel('sales/order')->load(26);
94
 
95
  $response = array(
114
  */
115
  public function testHandleResponseWithPendingPaymentAndFinal()
116
  {
117
+ $this->mockEmailHelper($this->once());
118
  $this->mockOrderConfig();
119
+
120
  $order = Mage::getModel('sales/order')->load(25);
121
  $order->setBaseGrandTotal(33.33);
122
 
144
  */
145
  public function testExceptionThrown()
146
  {
147
+ $this->mockEmailHelper($this->never());
148
 
149
  $order = Mage::getModel('sales/order')->load(25);
150
+
151
  $response = array(
152
  'status' => 43,
153
  'payid' => 1234567,
166
  */
167
  public function testAbortBecauseSameStatus()
168
  {
169
+ $this->mockEmailHelper($this->never());
170
+
171
  $order = Mage::getModel('sales/order')->load(27);
172
  $order->getPayment()->setAdditionalInformation('status', 9);
173
 
 
 
174
  $response = array(
175
  'status' => 9,
176
  'payid' => 1234567,
185
  $handler->handleResponse($response, $order->getPayment()->getMethodInstance());
186
  $this->assertEquals(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, $order->getState());
187
  }
 
 
 
 
 
 
 
 
188
  }
app/code/community/Netresearch/OPS/Test/Model/Response/Type/RefundTest.php CHANGED
@@ -30,10 +30,9 @@
30
  <?php
31
 
32
 
33
- class Netresearch_OPS_Test_Model_Response_Type_RefundTest extends EcomDev_PHPUnit_Test_Case
 
34
  {
35
-
36
-
37
  /**
38
  * @test
39
  * @loadFixture orders.yaml
@@ -271,14 +270,5 @@ class Netresearch_OPS_Test_Model_Response_Type_RefundTest extends EcomDev_PHPUni
271
  $this->assertNotEmpty($order->getInvoiceCollection());
272
  $this->assertEquals($response['status'], $payment->getAdditionalInformation('status'));
273
  $this->assertEquals(Mage_Sales_Model_Order_Creditmemo::STATE_OPEN, $creditMemo->getState());
274
-
275
- }
276
-
277
- protected function mockOrderConfig(){
278
- $configMock = $this->getModelMock('sales/order_config',array('getDefaultStatus'));
279
- $configMock->expects($this->any())
280
- ->method('getDefaultStatus')
281
- ->will($this->returnArgument(0));
282
- $this->replaceByMock('singleton', 'sales/order_config', $configMock);
283
  }
284
  }
30
  <?php
31
 
32
 
33
+ class Netresearch_OPS_Test_Model_Response_Type_RefundTest
34
+ extends Netresearch_OPS_Test_Model_Response_TestCase
35
  {
 
 
36
  /**
37
  * @test
38
  * @loadFixture orders.yaml
270
  $this->assertNotEmpty($order->getInvoiceCollection());
271
  $this->assertEquals($response['status'], $payment->getAdditionalInformation('status'));
272
  $this->assertEquals(Mage_Sales_Model_Order_Creditmemo::STATE_OPEN, $creditMemo->getState());
 
 
 
 
 
 
 
 
 
273
  }
274
  }
app/code/community/Netresearch/OPS/Test/Model/Status/UpdateTest.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /**
3
- * @author Michael Lühr <michael.luehr@netresearch.de>
4
  * @category Netresearch
5
  * @copyright Copyright (c) 2014 Netresearch GmbH & Co. KG (http://www.netresearch.de)
6
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
@@ -179,7 +179,7 @@ class Netresearch_OPS_Test_Model_Status_UpdateTest extends EcomDev_PHPUnit_Test_
179
  $payment = Mage::getModel('sales/order_payment');
180
  $payment->setMethod('ops_directDebit');
181
  $payment->setAdditionalInformation('paymentId', 4711);
182
- $payment->setAdditionalInformation('status', 8);
183
  $order->setPayment($payment);
184
 
185
  $paymentHelperMock = $this->getHelperMock('ops/payment', array('saveOpsStatusToPayment'));
@@ -188,9 +188,17 @@ class Netresearch_OPS_Test_Model_Status_UpdateTest extends EcomDev_PHPUnit_Test_
188
  ->will($this->returnValue('foo'));
189
  ;
190
 
 
 
 
 
 
 
 
 
191
 
192
 
193
- $statusUpdateApiMock = Mage::getModel('ops/status_update');
194
  $directLinkApiMock = $this->getModelMock('ops/api_directlink', array('performRequest'));
195
  $directLinkApiMock->expects($this->once())
196
  ->method('performRequest')
@@ -200,18 +208,17 @@ class Netresearch_OPS_Test_Model_Status_UpdateTest extends EcomDev_PHPUnit_Test_
200
  Mage::getModel('ops/config')->getDirectLinkMaintenanceApiPath($order->getStoreId()),
201
  $order->getStoreId()
202
  )
203
- ->will($this->returnValue(array('STATUS' => 8,)))
204
  ;
205
 
206
  $adminSessionMock = $this->getModelMock('adminhtml/session', array('init', 'save', 'addNotice'));
207
- $statusUpdateApiMock->setMessageContainer($adminSessionMock);
208
- $statusUpdateApiMock->setPaymentHelper($paymentHelperMock);
209
- $statusUpdateApiMock->setDirectLinkApi($directLinkApiMock);
210
- $statusUpdateApiMock->updateStatusFor($order);
211
- $opsResponse = $statusUpdateApiMock->getOpsResponse();
212
  $this->assertArrayHasKey('STATUS', $opsResponse);
213
- $this->assertEquals(8, $opsResponse['STATUS']);
214
-
215
  }
216
 
217
  public function testUpdatePaymentStatusWithStatusChange()
@@ -229,10 +236,18 @@ class Netresearch_OPS_Test_Model_Status_UpdateTest extends EcomDev_PHPUnit_Test_
229
  ->with($payment, $response)
230
  ;
231
 
 
 
 
 
 
 
 
 
232
  $adminSessionMock = $this->getModelMock('adminhtml/session', array('init', 'save', 'addSuccess'));
233
 
234
- $statusUpdateApiMock = Mage::getModel('ops/status_update');
235
- $statusUpdateApiMock->setMessageContainer($adminSessionMock);
236
  $directLinkApiMock = $this->getModelMock('ops/api_directlink', array('performRequest'));
237
  $directLinkApiMock->expects($this->once())
238
  ->method('performRequest')
@@ -245,11 +260,11 @@ class Netresearch_OPS_Test_Model_Status_UpdateTest extends EcomDev_PHPUnit_Test_
245
  ->will($this->returnValue($response))
246
  ;
247
 
248
- $statusUpdateApiMock->setPaymentHelper($paymentHelperMock);
249
- $statusUpdateApiMock->setDirectLinkApi($directLinkApiMock);
250
 
251
- $statusUpdateApiMock->updateStatusFor($order);
252
- $opsResponse = $statusUpdateApiMock->getOpsResponse();
253
  $this->assertArrayHasKey('STATUS', $opsResponse);
254
  $this->assertEquals(91, $opsResponse['STATUS']);
255
 
@@ -297,4 +312,4 @@ class Netresearch_OPS_Test_Model_Status_UpdateTest extends EcomDev_PHPUnit_Test_
297
  $this->assertEquals(91, $opsResponse['STATUS']);
298
 
299
  }
300
- }
1
  <?php
2
  /**
3
+ * @author Michael Lühr <michael.luehr@netresearch.de>
4
  * @category Netresearch
5
  * @copyright Copyright (c) 2014 Netresearch GmbH & Co. KG (http://www.netresearch.de)
6
  * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
179
  $payment = Mage::getModel('sales/order_payment');
180
  $payment->setMethod('ops_directDebit');
181
  $payment->setAdditionalInformation('paymentId', 4711);
182
+ $payment->setAdditionalInformation('status', Netresearch_OPS_Model_Status::REFUNDED);
183
  $order->setPayment($payment);
184
 
185
  $paymentHelperMock = $this->getHelperMock('ops/payment', array('saveOpsStatusToPayment'));
188
  ->will($this->returnValue('foo'));
189
  ;
190
 
191
+ // no email on refund response type
192
+ $dataHelperMock = $this->getHelperMock('ops/data', ['sendTransactionalEmail']);
193
+ $dataHelperMock
194
+ ->expects($this->never())
195
+ ->method('sendTransactionalEmail')
196
+ ->with($this->isInstanceOf('Mage_Sales_Model_Order'))
197
+ ;
198
+ $this->replaceByMock('helper', 'ops/data', $dataHelperMock);
199
 
200
 
201
+ $statusUpdateApi = Mage::getModel('ops/status_update');
202
  $directLinkApiMock = $this->getModelMock('ops/api_directlink', array('performRequest'));
203
  $directLinkApiMock->expects($this->once())
204
  ->method('performRequest')
208
  Mage::getModel('ops/config')->getDirectLinkMaintenanceApiPath($order->getStoreId()),
209
  $order->getStoreId()
210
  )
211
+ ->will($this->returnValue(array('STATUS' => Netresearch_OPS_Model_Status::REFUNDED,)))
212
  ;
213
 
214
  $adminSessionMock = $this->getModelMock('adminhtml/session', array('init', 'save', 'addNotice'));
215
+ $statusUpdateApi->setMessageContainer($adminSessionMock);
216
+ $statusUpdateApi->setPaymentHelper($paymentHelperMock);
217
+ $statusUpdateApi->setDirectLinkApi($directLinkApiMock);
218
+ $statusUpdateApi->updateStatusFor($order);
219
+ $opsResponse = $statusUpdateApi->getOpsResponse();
220
  $this->assertArrayHasKey('STATUS', $opsResponse);
221
+ $this->assertEquals(Netresearch_OPS_Model_Status::REFUNDED, $opsResponse['STATUS']);
 
222
  }
223
 
224
  public function testUpdatePaymentStatusWithStatusChange()
236
  ->with($payment, $response)
237
  ;
238
 
239
+ $dataHelperMock = $this->getHelperMock('ops/data', ['sendTransactionalEmail']);
240
+ $dataHelperMock
241
+ ->expects($this->once())
242
+ ->method('sendTransactionalEmail')
243
+ ->with($this->isInstanceOf('Mage_Sales_Model_Order'))
244
+ ;
245
+ $this->replaceByMock('helper', 'ops/data', $dataHelperMock);
246
+
247
  $adminSessionMock = $this->getModelMock('adminhtml/session', array('init', 'save', 'addSuccess'));
248
 
249
+ $statusUpdateApi = Mage::getModel('ops/status_update');
250
+ $statusUpdateApi->setMessageContainer($adminSessionMock);
251
  $directLinkApiMock = $this->getModelMock('ops/api_directlink', array('performRequest'));
252
  $directLinkApiMock->expects($this->once())
253
  ->method('performRequest')
260
  ->will($this->returnValue($response))
261
  ;
262
 
263
+ $statusUpdateApi->setPaymentHelper($paymentHelperMock);
264
+ $statusUpdateApi->setDirectLinkApi($directLinkApiMock);
265
 
266
+ $statusUpdateApi->updateStatusFor($order);
267
+ $opsResponse = $statusUpdateApi->getOpsResponse();
268
  $this->assertArrayHasKey('STATUS', $opsResponse);
269
  $this->assertEquals(91, $opsResponse['STATUS']);
270
 
312
  $this->assertEquals(91, $opsResponse['STATUS']);
313
 
314
  }
315
+ }
app/code/community/Netresearch/OPS/Test/var/fixtures/orders.yaml CHANGED
@@ -40,7 +40,7 @@ tables:
40
  status: 'processing'
41
  quote_id: 25
42
  store_id: 0
43
-
44
  - entity_id: 14
45
  increment_id: 100000014
46
  shipping_address_id: 43
@@ -105,7 +105,7 @@ tables:
105
  state: 'pending_payment'
106
  status: 'pending_payment'
107
  quote_id: 30
108
-
109
  - entity_id: 19
110
  increment_id: 100000019
111
  shipping_address_id: 50
@@ -168,7 +168,7 @@ tables:
168
  customer_email: 'hubertus.von.fuerstenberg@trash-mail.com'
169
  state: 'pending_payment'
170
  status: 'pending_payment'
171
-
172
  - entity_id: 24
173
  increment_id: 100000024
174
  store_id: 1
@@ -345,7 +345,7 @@ tables:
345
  parent_id: 13
346
  additional_information: a:3:{s:2:"PM";s:16:"Bank transfer DE";s:5:"BRAND";s:16:"Bank transfer DE";s:6:"status";s:1:"0";}
347
  method: 'ops_bankTransfer'
348
-
349
  - entity_id: 4
350
  parent_id: 14
351
  additional_information: a:2:{s:2:"PM";s:16:"Bank transfer DE";s:5:"BRAND";s:16:"Bank transfer DE";}
@@ -366,7 +366,7 @@ tables:
366
  - entity_id: 8
367
  parent_id: 18
368
  additional_information: a:4:{s:2:"PM";s:16:"Bank transfer DE";s:5:"BRAND";s:16:"Bank transfer DE";s:23:"lastRefundOperationCode";s:3:"RFD";s:9:"canRefund";b:1;}
369
-
370
  - entity_id: 9
371
  parent_id: 19
372
  method: 'ops_openInvoiceDe'
@@ -431,12 +431,12 @@ tables:
431
  increment_id: 100000077
432
  order_id: 11
433
  shipping_address_id: 42
434
-
435
  - entity_id: 2
436
  increment_id: 100000078
437
  order_id: 12
438
  shipping_address_id: 43
439
-
440
  sales/order_address:
441
  - entity_id: 42
442
  parent_id: 11
@@ -453,7 +453,7 @@ tables:
453
  suffix: 'MdL'
454
  company: ''
455
  fax: 12345678
456
-
457
  - entity_id: 43
458
  parent_id: 11
459
  address_type: 'shipping'
@@ -469,7 +469,7 @@ tables:
469
  suffix: 'MdL'
470
  company: ''
471
  same_as_billing: 1
472
-
473
  - entity_id: 44
474
  parent_id: 12
475
  address_type: 'billing'
@@ -484,7 +484,7 @@ tables:
484
  middlename: 'von'
485
  suffix: 'MdL'
486
  company: ''
487
-
488
  - entity_id: 45
489
  parent_id: 12
490
  address_type: 'shipping'
@@ -500,7 +500,7 @@ tables:
500
  suffix: 'MdL'
501
  company: ''
502
  same_as_billing: 1
503
-
504
  - entity_id: 46
505
  parent_id: 24
506
  address_type: 'shipping'
@@ -618,7 +618,7 @@ tables:
618
  name: 'some great test item'
619
  price: 19.99
620
  tax_amount: 1.99
621
-
622
  - item_id: 12
623
  order_id: 11
624
  qty_ordered: 2.0000
@@ -628,3 +628,12 @@ tables:
628
  price: 19.99
629
  tax_amount: 1.99
630
 
 
 
 
 
 
 
 
 
 
40
  status: 'processing'
41
  quote_id: 25
42
  store_id: 0
43
+
44
  - entity_id: 14
45
  increment_id: 100000014
46
  shipping_address_id: 43
105
  state: 'pending_payment'
106
  status: 'pending_payment'
107
  quote_id: 30
108
+
109
  - entity_id: 19
110
  increment_id: 100000019
111
  shipping_address_id: 50
168
  customer_email: 'hubertus.von.fuerstenberg@trash-mail.com'
169
  state: 'pending_payment'
170
  status: 'pending_payment'
171
+
172
  - entity_id: 24
173
  increment_id: 100000024
174
  store_id: 1
345
  parent_id: 13
346
  additional_information: a:3:{s:2:"PM";s:16:"Bank transfer DE";s:5:"BRAND";s:16:"Bank transfer DE";s:6:"status";s:1:"0";}
347
  method: 'ops_bankTransfer'
348
+
349
  - entity_id: 4
350
  parent_id: 14
351
  additional_information: a:2:{s:2:"PM";s:16:"Bank transfer DE";s:5:"BRAND";s:16:"Bank transfer DE";}
366
  - entity_id: 8
367
  parent_id: 18
368
  additional_information: a:4:{s:2:"PM";s:16:"Bank transfer DE";s:5:"BRAND";s:16:"Bank transfer DE";s:23:"lastRefundOperationCode";s:3:"RFD";s:9:"canRefund";b:1;}
369
+
370
  - entity_id: 9
371
  parent_id: 19
372
  method: 'ops_openInvoiceDe'
431
  increment_id: 100000077
432
  order_id: 11
433
  shipping_address_id: 42
434
+
435
  - entity_id: 2
436
  increment_id: 100000078
437
  order_id: 12
438
  shipping_address_id: 43
439
+
440
  sales/order_address:
441
  - entity_id: 42
442
  parent_id: 11
453
  suffix: 'MdL'
454
  company: ''
455
  fax: 12345678
456
+
457
  - entity_id: 43
458
  parent_id: 11
459
  address_type: 'shipping'
469
  suffix: 'MdL'
470
  company: ''
471
  same_as_billing: 1
472
+
473
  - entity_id: 44
474
  parent_id: 12
475
  address_type: 'billing'
484
  middlename: 'von'
485
  suffix: 'MdL'
486
  company: ''
487
+
488
  - entity_id: 45
489
  parent_id: 12
490
  address_type: 'shipping'
500
  suffix: 'MdL'
501
  company: ''
502
  same_as_billing: 1
503
+
504
  - entity_id: 46
505
  parent_id: 24
506
  address_type: 'shipping'
618
  name: 'some great test item'
619
  price: 19.99
620
  tax_amount: 1.99
621
+
622
  - item_id: 12
623
  order_id: 11
624
  qty_ordered: 2.0000
628
  price: 19.99
629
  tax_amount: 1.99
630
 
631
+ - item_id: 13
632
+ order_id: 19
633
+ qty_ordered: 1.0000
634
+ qty_shipped: 0.0000
635
+ sku: 4711
636
+ name: 'some great test item'
637
+ price: 19.99
638
+ tax_amount: 1.99
639
+
app/code/community/Netresearch/OPS/Trait/AliasController.php CHANGED
@@ -167,13 +167,13 @@ trait Netresearch_OPS_Trait_AliasController
167
  {
168
  if (!is_null($quote->getId()) && $quote->getPayment() && !is_null($quote->getPayment()->getId())) {
169
  $payment = $quote->getPayment();
170
- if (array_key_exists('Alias', $params)) {
171
  $payment->setAdditionalInformation('alias', $params['Alias_AliasId']);
172
  }
173
- if (array_key_exists('Brand', $params)) {
174
  $payment->setAdditionalInformation('CC_BRAND', $params['Card_Brand']);
175
  }
176
- if (array_key_exists('CN', $params)) {
177
  $payment->setAdditionalInformation('CC_CN', $params['Card_CardHolderName']);
178
  }
179
  if ($this->userIsRegistering()) {
167
  {
168
  if (!is_null($quote->getId()) && $quote->getPayment() && !is_null($quote->getPayment()->getId())) {
169
  $payment = $quote->getPayment();
170
+ if (array_key_exists('Alias_AliasId', $params)) {
171
  $payment->setAdditionalInformation('alias', $params['Alias_AliasId']);
172
  }
173
+ if (array_key_exists('Card_Brand', $params)) {
174
  $payment->setAdditionalInformation('CC_BRAND', $params['Card_Brand']);
175
  }
176
+ if (array_key_exists('Card_CardHolderName', $params)) {
177
  $payment->setAdditionalInformation('CC_CN', $params['Card_CardHolderName']);
178
  }
179
  if ($this->userIsRegistering()) {
app/code/community/Netresearch/OPS/data/ops_setup/data-upgrade-15.11.09-16.03.09.php CHANGED
@@ -9,7 +9,7 @@
9
  $aliasUrlPath = 'payment_services/ops/ops_alias_gateway';
10
 
11
  $oldAliasUrl = Mage::getStoreConfig($aliasUrlPath, 0);
12
- $newAliasUrl = str_replace('alias_gateway_utf8.asp', 'Tokenization/HostedPage', $oldAliasUrl);
13
  Mage::getConfig()->saveConfig($aliasUrlPath, $newAliasUrl);
14
 
15
  $websites = Mage::app()->getWebsites();
@@ -19,14 +19,14 @@ foreach($websites as $website){
19
  $oldWebsiteAliasUrl = $website->getConfig($aliasUrlPath);
20
  if(strlen($oldWebsiteAliasUrl) > 0 && $oldWebsiteAliasUrl != $oldAliasUrl){
21
 
22
- $newWebsiteAliasUrl = str_replace('alias_gateway_utf8.asp', 'Tokenization/HostedPage', $oldWebsiteAliasUrl);
23
  Mage::getConfig()->saveConfig($aliasUrlPath, $newWebsiteAliasUrl, 'websites', $website->getId());
24
  }
25
  /** @var Mage_Core_Model_Store $store */
26
  foreach($website->getStores() as $store){
27
  $oldStoreAliasUrl = Mage::getStoreConfig($aliasUrlPath, $store->getId());
28
  if(strlen($oldStoreAliasUrl) > 0 && $oldStoreAliasUrl != $oldAliasUrl) {
29
- $newStoreAliasUrl = str_replace('alias_gateway_utf8.asp', 'Tokenization/HostedPage', $oldStoreAliasUrl);
30
  Mage::getConfig()->saveConfig($aliasUrlPath, $newStoreAliasUrl, 'stores', $store->getId());
31
  }
32
  }
9
  $aliasUrlPath = 'payment_services/ops/ops_alias_gateway';
10
 
11
  $oldAliasUrl = Mage::getStoreConfig($aliasUrlPath, 0);
12
+ $newAliasUrl = str_replace('ncol/prod/alias_gateway_utf8.asp', 'Tokenization/HostedPage', $oldAliasUrl);
13
  Mage::getConfig()->saveConfig($aliasUrlPath, $newAliasUrl);
14
 
15
  $websites = Mage::app()->getWebsites();
19
  $oldWebsiteAliasUrl = $website->getConfig($aliasUrlPath);
20
  if(strlen($oldWebsiteAliasUrl) > 0 && $oldWebsiteAliasUrl != $oldAliasUrl){
21
 
22
+ $newWebsiteAliasUrl = str_replace('ncol/prod/alias_gateway_utf8.asp', 'Tokenization/HostedPage', $oldWebsiteAliasUrl);
23
  Mage::getConfig()->saveConfig($aliasUrlPath, $newWebsiteAliasUrl, 'websites', $website->getId());
24
  }
25
  /** @var Mage_Core_Model_Store $store */
26
  foreach($website->getStores() as $store){
27
  $oldStoreAliasUrl = Mage::getStoreConfig($aliasUrlPath, $store->getId());
28
  if(strlen($oldStoreAliasUrl) > 0 && $oldStoreAliasUrl != $oldAliasUrl) {
29
+ $newStoreAliasUrl = str_replace('ncol/prod/alias_gateway_utf8.asp', 'Tokenization/HostedPage', $oldStoreAliasUrl);
30
  Mage::getConfig()->saveConfig($aliasUrlPath, $newStoreAliasUrl, 'stores', $store->getId());
31
  }
32
  }
app/code/community/Netresearch/OPS/etc/config.xml CHANGED
@@ -28,7 +28,7 @@
28
  <config>
29
  <modules>
30
  <Netresearch_OPS>
31
- <version>16.04.13</version>
32
  </Netresearch_OPS>
33
  </modules>
34
  <global>
@@ -124,6 +124,16 @@
124
  </add_cc_payment_method>
125
  </observers>
126
  </core_block_abstract_prepare_layout_before>
 
 
 
 
 
 
 
 
 
 
127
  </events>
128
  <resources>
129
  <!-- initialize sql upgrade setup -->
@@ -305,8 +315,8 @@
305
  <support_mail>support@ecom.ingenico.com</support_mail>
306
  <doc_link_de></doc_link_de>
307
  <doc_link_en>http://payment-services.ingenico.com/en/ogone/support/guides/integration%20guides/magento-extension</doc_link_en>
308
- <faq_link_de>http://de.nr-apps.com/faq/ingenico</faq_link_de>
309
- <faq_link_en>http://www.nr-apps.com/faq/ingenico</faq_link_en>
310
  <redirectOrderReference>orderId</redirectOrderReference>
311
  <inlineOrderReference>orderId</inlineOrderReference>
312
  <showQuoteIdInOrderGrid>1</showQuoteIdInOrderGrid>
28
  <config>
29
  <modules>
30
  <Netresearch_OPS>
31
+ <version>16.05.26</version>
32
  </Netresearch_OPS>
33
  </modules>
34
  <global>
124
  </add_cc_payment_method>
125
  </observers>
126
  </core_block_abstract_prepare_layout_before>
127
+
128
+ <checkout_submit_all_after>
129
+ <observers>
130
+ <send_transactional_emails>
131
+ <class>ops/observer</class>
132
+ <method>sendTransactionalEmails</method>
133
+ <type>singleton</type>
134
+ </send_transactional_emails>
135
+ </observers>
136
+ </checkout_submit_all_after>
137
  </events>
138
  <resources>
139
  <!-- initialize sql upgrade setup -->
315
  <support_mail>support@ecom.ingenico.com</support_mail>
316
  <doc_link_de></doc_link_de>
317
  <doc_link_en>http://payment-services.ingenico.com/en/ogone/support/guides/integration%20guides/magento-extension</doc_link_en>
318
+ <faq_link_de>http://ingenico.support.netresearch.de/</faq_link_de>
319
+ <faq_link_en>http://ingenico.support.netresearch.de/</faq_link_en>
320
  <redirectOrderReference>orderId</redirectOrderReference>
321
  <inlineOrderReference>orderId</inlineOrderReference>
322
  <showQuoteIdInOrderGrid>1</showQuoteIdInOrderGrid>
app/design/adminhtml/default/default/template/ops/form/cc.phtml CHANGED
@@ -183,7 +183,7 @@
183
 
184
  // on reload we have to hide the iframe and show a success token if save was successfull already
185
 
186
- if (payment.opsAliasSuccess) {
187
  payment.fillOpsLoader('SUCCESS_TOKEN');
188
  }
189
 
183
 
184
  // on reload we have to hide the iframe and show a success token if save was successfull already
185
 
186
+ if (payment.opsAliasSuccess && typeof payment.currentMethodObject != 'undefined') {
187
  payment.fillOpsLoader('SUCCESS_TOKEN');
188
  }
189
 
app/design/frontend/base/default/layout/ops.xml CHANGED
@@ -34,15 +34,12 @@
34
  <action method="addJs">
35
  <script>netresearch/ops/tokenization.js</script>
36
  </action>
37
- <action method="addJs" ifconfig="payment_services/ops/device_fingerprinting">
38
- <script>netresearch/ops/deviceFingerprinting.js</script>
39
- </action>
40
- <block type="core/template" template="ops/checkout/deviceFingerprinting.phtml"
41
- name="ops_deviceFingerprinting" as="ops.devicefingerprinting"/>
42
  <action method="addCss">
43
  <stylesheet>css/ops.css</stylesheet>
44
  </action>
45
 
 
 
46
  </reference>
47
  </checkout_onepage_index>
48
  <onestepcheckout_index_index>
@@ -56,14 +53,12 @@
56
  <action method="addJs">
57
  <script>netresearch/ops/tokenization.js</script>
58
  </action>
59
- <action method="addJs" ifconfig="payment_services/ops/device_fingerprinting">
60
- <script>netresearch/ops/deviceFingerprinting.js</script>
61
- </action>
62
- <block type="core/template" template="ops/checkout/deviceFingerprinting.phtml"
63
- name="ops_deviceFingerprinting" as="ops.devicefingerprinting"/>
64
  <action method="addCss">
65
  <stylesheet>css/ops.css</stylesheet>
66
  </action>
 
 
 
67
  </reference>
68
  </onestepcheckout_index_index>
69
  <checkout_onepage_paymentmethod>
34
  <action method="addJs">
35
  <script>netresearch/ops/tokenization.js</script>
36
  </action>
 
 
 
 
 
37
  <action method="addCss">
38
  <stylesheet>css/ops.css</stylesheet>
39
  </action>
40
 
41
+ <block type="ops/checkout_deviceFingerprinting"
42
+ name="ops_deviceFingerprinting" as="ops.devicefingerprinting" />
43
  </reference>
44
  </checkout_onepage_index>
45
  <onestepcheckout_index_index>
53
  <action method="addJs">
54
  <script>netresearch/ops/tokenization.js</script>
55
  </action>
 
 
 
 
 
56
  <action method="addCss">
57
  <stylesheet>css/ops.css</stylesheet>
58
  </action>
59
+
60
+ <block type="ops/checkout_deviceFingerprinting"
61
+ name="ops_deviceFingerprinting" as="ops.devicefingerprinting" />
62
  </reference>
63
  </onestepcheckout_index_index>
64
  <checkout_onepage_paymentmethod>
app/design/frontend/base/default/template/ops/checkout/deviceFingerprinting.phtml CHANGED
@@ -14,26 +14,17 @@
14
  * Do not edit or add to this file if you wish to upgrade this extension to
15
  * newer versions in the future.
16
  *
 
 
 
17
  * @copyright Copyright (c) 2016 Netresearch GmbH & Co. KG (http://www.netresearch.de/)
18
  * @license Open Software License (OSL 3.0)
19
  * @link http://opensource.org/licenses/osl-3.0.php
20
  */
21
-
22
- /**
23
- * deviceFingerprinting.phtml
24
- *
25
- * @category payment
26
- * @package Netresearch_OPS
27
- * @author Paul Siedler <paul.siedler@netresearch.de>
28
- */
29
-
30
- /** @var Mage_Core_Block_Text $this */
31
- $consentUrl = $this->getUrl('ops/device');
32
  ?>
33
-
34
  <script type="application/javascript">
35
  //<![CDATA[
36
- consentHandler = new ConsentHandler('<?php echo $consentUrl; ?>');
37
  //]]>
38
  </script>
39
-
14
  * Do not edit or add to this file if you wish to upgrade this extension to
15
  * newer versions in the future.
16
  *
17
+ * @category design
18
+ * @package base_default
19
+ * @author Paul Siedler <paul.siedler@netresearch.de>
20
  * @copyright Copyright (c) 2016 Netresearch GmbH & Co. KG (http://www.netresearch.de/)
21
  * @license Open Software License (OSL 3.0)
22
  * @link http://opensource.org/licenses/osl-3.0.php
23
  */
 
 
 
 
 
 
 
 
 
 
 
24
  ?>
25
+ <?php /** @var Netresearch_OPS_Block_Checkout_DeviceFingerprinting $this */ ?>
26
  <script type="application/javascript">
27
  //<![CDATA[
28
+ consentHandler = new ConsentHandler('<?php echo $this->getConsentUrl(); ?>');
29
  //]]>
30
  </script>
 
js/netresearch/ops/payment.js CHANGED
@@ -11,7 +11,11 @@ Event.observe(window, 'load', function () {
11
  payment.toggleContinue(true);
12
  }
13
  } else {
14
- delete payment.currentMethodObject;
 
 
 
 
15
  }
16
  originalMethod(method);
17
  });
11
  payment.toggleContinue(true);
12
  }
13
  } else {
14
+ if (typeof checkout != 'undefined') {
15
+ payment.toggleContinue(true);
16
+ } else {
17
+ toggleOrderSubmit(true);
18
+ }
19
  }
20
  originalMethod(method);
21
  });
package.xml CHANGED
@@ -1,2 +1,2 @@
1
  <?xml version="1.0"?>
2
- <package><name>Ogone</name><version>16.04.13</version><stability>stable</stability><license>OSL3</license><channel>community</channel><extends></extends><summary>Ingenico ePayments</summary><description>The official Ingenico ePayments Module</description><notes></notes><authors><author><name>Michael L&#xFC;hr</name><user>MichaelLuehr</user><email>michael.luehr@netresearch.de</email></author></authors><date>2016-04-13</date><time>9:28:47</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="ops.css" hash="010563d95937a17cb9af02c1d71cb768"/></dir><dir name="images"><dir name="ops"><dir name="alias"><dir name="brands"><file name="AmericanExpress.png" hash="afc18008b5955317cfa45bb8b548a084"/><file name="DinnerClub.png" hash="02125cddc176ed9b365fa9365df7c3a3"/><file name="Maestro.png" hash="6c792b579bab78fb1501ddd46ac49cef"/><file name="MasterCard.png" hash="7a5344320f5a930bbce931bcac7a5874"/><file name="VISA.png" hash="e91086b731f5c4bfc7f8466c67e47878"/></dir></dir><dir name="kwixo"><file name="apres_reception.jpg" hash="1d990d1b7c535a04eeb755fadd3323c0"/><file name="comptant.jpg" hash="4452f353667bca7d4f98d84076bb8dde"/><file name="credit.jpg" hash="93d7eeb2fbb57aa6a23585e01b4f6e0e"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ops.css" hash="94d06b794318c6b27ec6cc7fb8721ce4"/><dir name="js"><dir name="ops"><file name="payment.js" hash="9fc200650f011fea3684f143ca6ee364"/></dir></dir></dir></dir></dir></dir><dir name="app"><dir name="locale"><dir name="de_DE"><file name="Netresearch_OPS.csv" hash="f30a1488299f4536e4cbb872c223a06a"/><dir name="template"><dir name="email"><dir name="ops"><file name="ops_email_resend_payment_info.html" hash="181dcaf5da73ff69e1a57a0f57fa87e9"/><file name="suspend_subscription.html" hash="81aa8ba21a14ab178e19962839ab2e20"/></dir></dir></dir></dir><dir name="it_IT"><file name="Netresearch_OPS.csv" hash="735a4aba0c7afa0d366ddd0b8220ada4"/></dir><dir name="nl_NL"><file name="Netresearch_OPS.csv" hash="4e7273536fbe23692b131df9621fed05"/></dir><dir name="en_US"><file name="Netresearch_OPS.csv" hash="6ead1c0e0539c65ba9e6a39fb21f513f"/><dir name="template"><dir name="email"><dir name="ops"><file name="ops_email_resend_payment_info.html" hash="ae6ecc41ccab4e36d6a5c068dc4c8864"/><file name="suspend_subscription.html" hash="98f525c3df48b8e1ddde2b63489b8025"/></dir></dir></dir></dir><dir name="fr_FR"><file name="Netresearch_OPS.csv" hash="7d3eefcba3e29928447beec30fa2eef8"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ops"><file name="form.phtml" hash="4dc0b59aa52f578138f594a46a2006fc"/><file name="frauddetection.phtml" hash="696660d8ad249a1f785cfcd20c8133f4"/><file name="info.phtml" hash="ab903c6655ff46d650829043d6e81f5f"/><file name="paypage.phtml" hash="296ed4b5132a7005d3ed31cd1b73347d"/><file name="placeform.phtml" hash="5255b158262c734cb3ef9ad2a4c85979"/><file name="placeform3dsecure.phtml" hash="777317261d36ea4a3759b6ebaa3990e8"/><dir name="checkout"><file name="deviceFingerprinting.phtml" hash="cd9f78bbec48f9ac04c74ab6d567d021"/><file name="subscriptionNotice.phtml" hash="0bb9e2f3629f94acfdbc202d38a61346"/></dir><dir name="customer"><dir name="alias"><file name="list.phtml" hash="a497e6e74a2652f6accfa61cdb2381ca"/></dir></dir><dir name="info"><file name="alias.phtml" hash="fbfbeb775bdf9f665f27a9c82119cd29"/><file name="cc.phtml" hash="3aaceec6b1504c13a4757f4eeed7f72d"/><file name="flex.phtml" hash="aace6c97d9faf251ea475aa0865954b1"/><file name="opsId.phtml" hash="80900b80b7564e6178789a71b8f5e3d6"/><file name="redirect.phtml" hash="99b7183cda78ae7289b299058caa8902"/></dir><dir name="form"><file name="alias.phtml" hash="e8dc63bb11d3b7d0e9a61d0f88cc9877"/><file name="cc.phtml" hash="722415f8382ef0690f6dcd4b6a6d6e8e"/><file name="directDebit.phtml" hash="3a35dc9b8b22a3c6481b11a2eaae7508"/><file name="flex.phtml" hash="6fa6b3e488f628e63850b8398ae37798"/><file name="ideal.phtml" hash="9ea3e504be12dabbf433a228f4fd7eba"/><file name="intersolve.phtml" hash="6bdf45f822febd989ce915b5dda8a151"/><file name="other.phtml" hash="e5de501ba60d4083528b998e9b155d79"/><dir name="kwixo"><file name="apres_reception.phtml" hash="3f0afdb85696a62410ddb170c939d1c5"/><file name="comptant.phtml" hash="2a6ab9884375d9bd99d9160d00283d85"/><file name="credit.phtml" hash="de5650273e9fef7775d04e9326220249"/></dir></dir></dir></dir><dir name="layout"><file name="ops.xml" hash="da87d933cfb5e1cad31264b608d8eb52"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="ops"><file name="categoriestree.phtml" hash="5159f62105c978f7bfb51326d2f99cc0"/><file name="info.phtml" hash="27596da4f99818af71a1a5ad8778ecc0"/><dir name="info"><file name="cc.phtml" hash="5b2ab8ca86d40103bed6db23c839b549"/><file name="flex.phtml" hash="b69225173261f06b465b36a46bca86e9"/><file name="opsId.phtml" hash="3cce07989543bf66b8ebe3eba12d493a"/><file name="redirect.phtml" hash="16f4d44b6716fa7c543534fecbcb205b"/></dir><dir name="sales"><dir name="order"><dir name="creditmemo"><dir name="totals"><file name="checkbox.phtml" hash="880236e567930deb1189e4ce95eb9626"/></dir><dir name="closed-transaction"><file name="warning.phtml" hash="d975663203c1eb5bf173a032c9f14abd"/></dir></dir></dir></dir><dir name="system"><dir name="config"><file name="kwixoconfiglinks.phtml" hash="4b832195dc1a220cd32bed1b8d791784"/><file name="support.phtml" hash="5422fdfa4d7a876257135da905317fef"/></dir></dir><dir name="form"><file name="cc.phtml" hash="fb8ad7dde543181103abab1facebdffc"/><file name="directDebit.phtml" hash="7e51f09ec2845ed4f697e57e70f2f791"/><file name="opsId.phtml" hash="cdc4df9650b479f68babb1b711336732"/><dir name="kwixo"><file name="category.phtml" hash="eede6c977cf7ebe6e77e680910fc3df7"/><file name="shipping.phtml" hash="53c03be27367a45800d688e35b18b596"/></dir></dir></dir></dir><dir name="layout"><file name="ops.xml" hash="9595f61227bbb7f4db85b6f26f2a3519"/></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="Netresearch"><dir name="OPS"><dir name="sql"><dir name="ops_setup"><file name="mysql4-install-1.0.1.php" hash="8310cbcc045a399772a4f24b354f4688"/><file name="mysql4-upgrade-1.0.1-12.12.03.php" hash="3f1ad2f1dcaea8e129c5cbe108563385"/><file name="mysql4-upgrade-13.04.10-13.04.16.php" hash="f94b907ad855d29cbc299036de16ef46"/><file name="mysql4-upgrade-13.05.30-13.06.07.php" hash="ffcdd931218285338937b5d49477486c"/><file name="mysql4-upgrade-13.06.07-13.07.04.php" hash="5ec9745a6e891eacc31467940b3098a8"/><file name="mysql4-upgrade-13.07.10-13.07.23.php" hash="ceb4a2aee7f68ce4c2d85f9b82ce4240"/><file name="mysql4-upgrade-13.11.04-13.11.05.php" hash="4c5d2d5bf45d6e6a826fe32f3915e80e"/><file name="mysql4-upgrade-14.01.27-14.02.05.php" hash="c77a8a2180a44fbd537aebccb806147d"/></dir></dir><dir name="Controller"><file name="Abstract.php" hash="b538a2d024d8cb4cb6da1d00ebfee6f2"/></dir><dir name="Trait"><file name="AliasController.php" hash="02ba3dc4c46882e7ddf74d70e8d9ae6e"/><file name="PaymentHelper.php" hash="c1fed9656562af6a6264e6f8a81ebb63"/></dir><dir name="Test"><dir name="Controller"><file name="AliasControllerTest.php" hash="1059aee6288c33c67da46c7a718ca899"/><file name="ApiControllerTest.php" hash="53aa2d53e34e31329e118cafa1c13f1c"/><file name="DeviceControllerTest.php" hash="dd4e144adbe440d1fe705a71469de633"/><file name="PaymentControllerTest.php" hash="7cb035cf669bf4bcfb9199a7f4964f90"/><dir name="Adminhtml"><file name="AdminControllerTest.php" hash="9929b7d6d3b709239e7a79acdee988e8"/><file name="KwixocategoryControllerTest.php" hash="65854670e4d019f6fc30db4416139b09"/><file name="KwixoshippingControllerTest.php" hash="08d75d9bb293cfe7e68a91651238d060"/><file name="OpsstatusControllerTest.php" hash="380a0d91545fe2b21e41b131476eb8b5"/><dir name="KwixocategoryControllerTest"><dir name="fixtures"><file name="category_mapping.yaml" hash="eb9c31076e7ca9b0ae627fe4793c554c"/></dir></dir><dir name="KwixoshippingControllerTest"><dir name="fixtures"><file name="shipping_settings.yaml" hash="7e6c11812894b1f13353983bd83443e9"/></dir></dir></dir><dir name="AliasControllerTest"><dir name="fixtures"><file name="orders.yaml" hash="acdaed2b02ca0ac591d570a9a6d6821a"/></dir></dir></dir><dir name="Helper"><file name="AliasTest.php" hash="d4eca213f5d4fc4c8a3fea1dc94b975c"/><file name="ApiTest.php" hash="e29c72b3c87c481d9b383fedfc8cc498"/><file name="DataTest.php" hash="07d85b4579957d24943c4a157fa7831a"/><file name="DirectDebitTest.php" hash="03ad39dd65892bba2625170bf7ea8626"/><file name="DirectLinkTest.php" hash="ff7921f8a34bee4712b902becffabb1f"/><file name="KwixoTest.php" hash="780b94af0b0d3982914b0a156718c597"/><file name="OrderTest.php" hash="0c3c67b2d60084c45f824e7b69d070fb"/><file name="PaymentTest.php" hash="df618f01f57545960566b42cebc05e49"/><file name="QuoteTest.php" hash="e8822449d01a83d1991e6367af22ba79"/><file name="SubscriptionTest.php" hash="6ea294262aea00aff1006c5c50029e33"/><file name="VersionTest.php" hash="73a3cdcdf8ce6f6d6c52861fd851252c"/><dir name="SubscriptionTest"><dir name="fixtures"><file name="profile.yaml" hash="ebc1cec0ccb4f96b3ed8354b19983158"/></dir></dir><dir name="KwixoTest"><dir name="fixtures"><file name="category_mapping.yaml" hash="aeda66674aaf1cd5c6bd09f1c5d2cfd0"/></dir></dir><dir name="OrderTest"><dir name="fixtures"><file name="order.yaml" hash="0d3331a6405770fe85da3c53278a606d"/></dir></dir><dir name="Payment"><file name="RequestTest.php" hash="9ebdcb3cb1ce9a24547ea1c51772896b"/><dir name="DirectLink"><file name="RequestTest.php" hash="2ed040a7531ac6327c645b4ea54cbcdf"/></dir></dir><dir name="Validation"><file name="ResultTest.php" hash="d1f78c064631fc7c08c47d70aea3c210"/><dir name="ResultTest"><dir name="fixtures"><file name="quotes.yaml" hash="1bdf98ba844d78d02b0c0fe773085931"/></dir></dir><dir name="Checkout"><file name="StepTest.php" hash="580d62fa4dbca48b57f7e6a413d65e4a"/></dir></dir><dir name="Order"><file name="CaptureTest.php" hash="1048a781112d23256c91ad96c0c93f1a"/><file name="RefundTest.php" hash="3031b10fcec45cebeab8afef7a1654a7"/></dir></dir><dir name="Model"><file name="ConfigTest.php" hash="98a3364a2baeaf5530dab9c79fd0e9b1"/><file name="ObserverTest.php" hash="2675d4429d1c8f583354e1750313c3a0"/><file name="StatusTest.php" hash="4fd9fdf4acc583e244c01cd46dae6858"/><dir name="Mysql4"><file name="AliasTest.php" hash="8b3894362f762561b930cb5b6a58b741"/><dir name="Alias"><file name="AliasTest.php" hash="abd64ea898ab80ae396d9f20c4d78e3a"/></dir></dir><dir name="Source"><file name="ModeTest.php" hash="97237c752c74af73046a5684b919d8cb"/><file name="OrderReferenceTest.php" hash="fc78f1604c81ac093764403f429898ba"/><dir name="Cc"><file name="AliasInterfaceEnabledTypesTest.php" hash="11e3eb870c8bf03dee77b48ae3186907"/><file name="RecurringTypesTest.php" hash="4755f319e675148b29ccaddfe8ab0e5e"/></dir><dir name="DirectEbanking"><file name="BrandsTest.php" hash="5290165b57e0d02588aba5cd713f6d4a"/></dir><dir name="Kwixo"><file name="ProductCategoriesTest.php" hash="6032dddeb4a3327a95da3186c4824be3"/><file name="ShipMethodTypeTest.php" hash="8cd09f6cb9283345a33b15b95128310c"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Flex"><file name="MethodsTest.php" hash="79982ae6c1a4510a55d1e1323720c9e5"/></dir><dir name="Design"><file name="BrandsTest.php" hash="2e37e802e3338e6da80ea646f7ff53c7"/></dir></dir></dir></dir><dir name="File"><file name="Download.php" hash="3d79f6786d1779e128dd34148154f71c"/></dir><dir name="Api"><file name="DirectLinkShaTest.php" hash="68ada430361699d5bf62ee30df024feb"/><file name="DirectLinkTest.php" hash="a2aa8b5652840a25ec7505ca2017eab9"/></dir><dir name="Payment"><file name="AbstractCaptureTest.php" hash="5ae158e87dd5675cc4f766ff46e16d0b"/><file name="AbstractRefundTest.php" hash="38658995e86caa3862b62d41e7751b5a"/><file name="AbstractTest.php" hash="bf6b97218e2b03b96e86efd0b1ca2223"/><file name="BancontactTest.php" hash="881f2a8958d2563165e2c9c0ee415b73"/><file name="CcTest.php" hash="d50e1216a20e9c2fcd09f1208e861efc"/><file name="ChinaUnionPayTest.php" hash="6f75c25933cda963aad11cc70986019b"/><file name="DebitcardTest.php" hash="4ef9326db28038247f6c7754a9da155d"/><file name="DirectDebitTest.php" hash="7f2b79a941d6b88361823a0765cf2823"/><file name="DirectEbankingTest.php" hash="16566265ffb905a5635b82d50c3969cb"/><file name="DirectLinkTest.php" hash="67adbbaef09c2a3821b6b423fa24c9df"/><file name="FlexTest.php" hash="736652f102573da8226d1d63b418464c"/><file name="IDealTest.php" hash="1a2d6419112041bba88e40ea3152fe81"/><file name="InterSolveTest.php" hash="b4323757c80d99574e2299fc2fd514f9"/><file name="KwixoApresReceptionTest.php" hash="61953f3d6e4fe87f4175a70d05ad2d3d"/><file name="KwixoComptantTest.php" hash="3178b4c03c69690fcc3631ba78e4bff3"/><file name="KwixoCreditTest.php" hash="2c29f95416e5d3cb43268c6eba27bc8d"/><file name="ObjectHandler.php" hash="d3461d810c6df684b643bbb1a0b4d6e5"/><file name="OpenInvoiceAtTest.php" hash="6f4a7dbdd1e68bd1b9533b47569209f5"/><file name="OpenInvoiceDeTest.php" hash="e9c02960119266d9f3ba542e18108b75"/><file name="OpenInvoiceNlTest.php" hash="eb3f9a2707216f62af69ef240ae7b020"/><file name="objects.xml" hash="c034e9ebbbf3e885681a5ed2e54b3c65"/><dir name="Features"><file name="PaymentEmailTest.php" hash="6a6769933eb35fb01cc1d47ec93b697f"/><file name="ZeroAmountAuthTest.php" hash="18e55d5568b98fae47313ae4f2611d39"/></dir><dir name="AbstractTest"><dir name="fixtures"><file name="orders.yaml" hash="27f0e621eef276c706160bc383a4bca7"/></dir><dir name="expectations"><file name="paymentMethods.yaml" hash="011f2209f040a8a4c8c44e96a18f4193"/></dir></dir><dir name="IDealTest"><dir name="fixtures"><file name="orders.yaml" hash="36a861b34134868cc24141587896c0ca"/></dir></dir><dir name="Recurring"><file name="CcTest.php" hash="d05727c1ca06e911ade683f062da01c9"/><dir name="Cc"><file name="ParameterBagTest.php" hash="441aa8db4e580bb3ffd801734b1ff8da"/></dir></dir><dir name="Kwixo"><file name="AbstractTest.php" hash="90e19da30a83f87d8e757ac46d27adba"/><dir name="AbstractTest"><dir name="fixtures"><file name="orders.yaml" hash="640872bf29a7c75915916e10c43122b0"/></dir><dir name="expectations"><file name="paymentMethods.yaml" hash="011f2209f040a8a4c8c44e96a18f4193"/></dir></dir></dir></dir><dir name="Kwixo"><dir name="Category"><file name="MappingTest.php" hash="cea9916436e62c61413277a0ac2fe3cf"/><dir name="MappingTest"><dir name="fixtures"><file name="category_mapping.yaml" hash="aeda66674aaf1cd5c6bd09f1c5d2cfd0"/></dir></dir></dir></dir><dir name="Status"><file name="UpdateTest.php" hash="af8fe8e272bf6d2c0f818cc01aaf3e10"/><dir name="UpdateTest"><dir name="fixtures"><file name="orders.yaml" hash="c0e5af3c7dbd17610e9c421364713539"/></dir></dir></dir><dir name="Subscription"><file name="ManagerTest.php" hash="1866ccd98f6829ee59526c4d643d3164"/></dir><dir name="Response"><dir name="Type"><file name="AuthorizeTest.php" hash="26b49c6a953bc288245948fd64eb8702"/><file name="CaptureTest.php" hash="c647beef57e22664c291ec528f9c8a4b"/><file name="RefundTest.php" hash="aacb538dda598d058a98aa63af2b19f6"/><dir name="AuthorizeTest"><dir name="fixtures"><file name="orders.yaml" hash="2af029c270b5fdaac683e19283af4248"/></dir></dir><dir name="CaptureTest"><dir name="fixtures"><file name="orders.yaml" hash="06f4d02d0c6b9645ef0ffd793b581bbf"/></dir></dir><dir name="RefundTest"><dir name="fixtures"><file name="orders.yaml" hash="ad4d03fac6b978ab2e7aed35bf83eeb7"/></dir></dir></dir></dir><dir name="Validator"><dir name="Parameter"><file name="FactoryTest.php" hash="56228ca7dfce6ef3137b14aabfd5b89f"/><file name="LengthTest.php" hash="bc2ce95df4708fbdbbfe3b21f2e6cc71"/><file name="ValidatorTest.php" hash="0fd623a7a051950ed739ef8bf233f831"/></dir><dir name="Payment"><file name="DirectDebitTest.php" hash="bff6135a868592e2c103ae11f856fc91"/></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="45165bfcc902ee324adca34c8262288c"/></dir></dir></dir><dir name="Backend"><dir name="Operation"><file name="ParameterTest.php" hash="7191623d1824cd4f3997478a0a001b32"/><dir name="Refund"><file name="ParameterTest.php" hash="cba744502cb7cbb77a4cae38ba4ed580"/><dir name="Additional"><file name="OpenInvoiceNlTest.php" hash="9d499c63ae52b8028d8f3228fa110784"/></dir></dir><dir name="Capture"><file name="ParameterTest.php" hash="da9b512d2735234cb37903de585a6508"/><dir name="Additional"><file name="OpenInvoiceNlTest.php" hash="ddc121fcde3d3e58850255d662d5948b"/></dir></dir></dir></dir></dir><dir name="Block"><file name="FormTest.php" hash="f6901a36569d289173059a1f32e644ba"/><file name="FrauddetectionTest.php" hash="d2718f575a651ce8c61277aead189e27"/><file name="PlaceFormShaTest.php" hash="ec0f466e4e0b3edd3ad42501f79cf811"/><file name="PlaceformTest.php" hash="a070f15981a486a0559b0c9492c49da1"/><dir name="Form"><file name="CcTest.php" hash="08167c8c419b946ebe62f84cb461b276"/><file name="DirectDebitTest.php" hash="57da48a4437fab36f615c526136d9078"/><file name="FlexTest.php" hash="f38c99714c00fc16f0f25eaa3957b0f4"/><file name="Ideal.php" hash="e9e736cc6696669f62568515c864994f"/><file name="InterSolveTest.php" hash="5328c26fb0ea556e4b86746aab6bb430"/><dir name="CcTest"><dir name="fixtures"><file name="aliases.yaml" hash="47d68330e8961bacb35c6a3d77355da2"/></dir></dir><dir name="Field"><file name="MethodTest.php" hash="0c374f74acab76ecbfd4ab1c393549bc"/></dir><dir name="Kwixo"><file name="ApresReceptionTest.php" hash="34e142431780efeb7c17c6ef7670a87a"/><file name="ComptantTest.php" hash="77c7dffea7a219450d4193bf3dae4743"/><file name="CreditTest.php" hash="a52d70d5682479ccffef432d2b0499a2"/></dir></dir><dir name="System"><dir name="Config"><file name="KwixoconfigurationTest.php" hash="9a90c3a33d4b43b881164d6d928f5581"/><file name="ModeTest.php" hash="4c5b24f166ea977a5429bbff4641764b"/></dir></dir><dir name="Alias"><file name="ListTest.php" hash="4e62a55be1693de43339401f5f0d3d63"/></dir><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="Totals"><file name="CheckboxTest.php" hash="0a8f6b19f2724d121081d94867dee27e"/></dir></dir></dir></dir><dir name="Kwixo"><dir name="Shipping"><file name="EditTest.php" hash="f9cb5b3f8dde0f84ac3f66e099885c69"/></dir></dir><dir name="Customer"><dir name="Renderer"><file name="StateTest.php" hash="ebf5cc0515040d6a7b13e29e51621400"/></dir></dir></dir><dir name="Info"><file name="FlexTest.php" hash="f607be4520490ffd7ce36fa985fe4cf6"/></dir></dir><dir name="var"><dir name="fixtures"><file name="aliases.yaml" hash="47d68330e8961bacb35c6a3d77355da2"/><file name="orders.yaml" hash="ef69d8fbb3ab8d257f0a8a8f49641407"/><file name="quotes.yaml" hash="34552808c8e47162e978d1e6a8269874"/></dir></dir></dir><dir name="Helper"><file name="Alias.php" hash="f711edc06364ef2a09df2aa341fbc210"/><file name="Api.php" hash="d0899a388183289ed4e739e526fda2c4"/><file name="Creditcard.php" hash="bb1087aad7ee0f6f9b097866bc85077d"/><file name="Data.php" hash="d12091a71a354d782bd9d556f3424337"/><file name="Debitcard.php" hash="69c19445767892733f0086f2cf94b89d"/><file name="DirectDebit.php" hash="5114c664a36be12094b5008d99490291"/><file name="Directlink.php" hash="781a24b36d39d775d3052859d9c8b64f"/><file name="Kwixo.php" hash="8dc15b230958b3c61b1336dce66754d1"/><file name="Order.php" hash="cdae4b602b46b0aed85659309f9d54b9"/><file name="Payment.php" hash="ce291122d8da52918c758667d1be1427"/><file name="Quote.php" hash="3d3d02e97caa839c4efa87c1534dba94"/><file name="Subscription.php" hash="a04802611e64496615a882153eddc713"/><file name="Version.php" hash="58c2df89aba2a7b0fa45ec008b16ee4a"/><dir name="Payment"><file name="Request.php" hash="a607e4492d9bd637b0c0d74a8c9d5576"/><dir name="DirectLink"><file name="Request.php" hash="1d112b81fee03d1d4147d43395412552"/><file name="RequestInterface.php" hash="c070fb3768e2a0996971ba9fb0b6bca8"/></dir></dir><dir name="Validation"><file name="Result.php" hash="99cfc251f10582d7cd749cffe2e85485"/><dir name="Checkout"><file name="Step.php" hash="0cbafc924a1c092f194e24784ab35779"/></dir></dir><dir name="Order"><file name="Abstract.php" hash="87341aa26a1a7d8bd9ef4c1e1f0e08ac"/><file name="Capture.php" hash="b4e6fbe9ff2a0669c7138f33252ae509"/><file name="Refund.php" hash="213add13b392fe2bea52742c99b55fa7"/></dir></dir><dir name="Model"><file name="Alias.php" hash="4826d0f81013969a6765d007bc9ab169"/><file name="Config.php" hash="f75fe68af5b0a7ff300ed119ca311d45"/><file name="Observer.php" hash="0abc0ef19bcb783f7406ee3a94b98bf6"/><file name="Status.php" hash="c661e588f009d1929e57ec58d60cc0dd"/><dir name="Eci"><file name="Values.php" hash="55ee7f6ac4e95cb0309b9c3e5ebbb888"/></dir><dir name="Mysql4"><file name="Alias.php" hash="c68c2d82f863fca593977a1099d21772"/><dir name="Alias"><file name="Collection.php" hash="f34804c6f4743093b5f97d26f0036d05"/></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="3af643a902e980b478af860fbee6c81f"/><dir name="Setting"><file name="Collection.php" hash="860a861e740285ba489e0f7f8f9792ef"/></dir></dir><dir name="Category"><file name="Mapping.php" hash="825ad26fc6ab5a88a1cc0ed555541adf"/><dir name="Mapping"><file name="Collection.php" hash="7da592f15edc9cf1a93400fd763deee8"/></dir></dir></dir></dir><dir name="Source"><file name="Mode.php" hash="09557a116ebbf4ae745afab8400044d0"/><file name="OrderReference.php" hash="50e5ee2318b09763ac3b05a6d1452942"/><file name="PaymentAction.php" hash="5c526ef9a2b47b138d81f70c3f5cb7cb"/><file name="Pmlist.php" hash="cbc6a4d71cf3762470880cc7bfd42cb1"/><file name="Template.php" hash="dc0a1ab42ff5e5d3c0b9d16a9b59b68f"/><file name="TemplateType.php" hash="8f7c8a84ce029f1c615ae3b0ea5c10ba"/><dir name="DebitCard"><file name="AliasInterfaceEnabledTypes.php" hash="b20b771c157d4f06b3f2246521bd5089"/><file name="Types.php" hash="b8ebc37dc9edadb1b609120268aff356"/></dir><dir name="Cc"><file name="AliasInterfaceEnabledTypes.php" hash="becaad455f43bdaa13248568196660db"/><file name="RecurringTypes.php" hash="b93f92b74dc2db91751e40e1498fbd97"/><file name="Types.php" hash="5c6ad1ed8fa359bd59a5b988edc84772"/></dir><dir name="DirectEbanking"><file name="Brands.php" hash="f138c79a495b6d380b087700aaabf968"/></dir><dir name="Kwixo"><file name="ProductCategories.php" hash="1196b8cabe3e5bc949a73bb14ff1a91b"/><file name="ShipMethodType.php" hash="893d2113cb96edeafa8ea4139a07cbcf"/></dir><dir name="DirectDebit"><file name="Countries.php" hash="05bc48e94346450b40a7cdaf84c52d9b"/></dir><dir name="BankTransfer"><file name="Countries.php" hash="bc2fc4c20921c8490b27362c122ccafc"/></dir></dir><dir name="System"><dir name="Config"><file name="Mode.php" hash="36001dca2489198e7c7b862293b4d5df"/><file name="Template.php" hash="0d7d67c258d43568467405b68962f0ea"/><dir name="Backend"><file name="HashMethods.php" hash="6036c5160e640f8cb5333f009ec37c4e"/><dir name="Flex"><file name="Methods.php" hash="a4fd6b0cc29c2c24dbd275fe038c7e33"/></dir><dir name="Intersolve"><file name="Brands.php" hash="3f6c18e181bcdd7930cb5841db9eae01"/></dir></dir></dir></dir><dir name="Alias"><file name="State.php" hash="d39a461a14dbadafb141cef1d1873a1d"/></dir><dir name="File"><file name="Download.php" hash="1fb9ce455e28c579c0f418afb0446120"/></dir><dir name="Api"><file name="Directlink.php" hash="74c7a7a7123626bfa58387479ba2942e"/></dir><dir name="Payment"><file name="Abstract.php" hash="f692a7475db74c8bf523e3c09ddd51aa"/><file name="Bancontact.php" hash="9908735e84f87383076af1ba9fe99ab8"/><file name="BankTransfer.php" hash="20ad97136546913a8a8b99ea824f0310"/><file name="BelfiusDirectNet.php" hash="5c0abd1457679b6c6b91e9758ca7d888"/><file name="CashU.php" hash="dfdd0f04962616943f5810bcd676b972"/><file name="CbcOnline.php" hash="026d43272966f88c6cec5298bb2c6d89"/><file name="Cc.php" hash="e6852093def2009bb6094e115d419489"/><file name="ChinaUnionPay.php" hash="b41ba1a95911f11e5520d63603c1f619"/><file name="Debitcard.php" hash="0563c9b7ec750654cd2c3f8290d5bb67"/><file name="DirectDebit.php" hash="16775daaf09a26cbe1e57f6c03c2a64e"/><file name="DirectEbanking.php" hash="c6d67e5a01e35d9bfe922f132f3ee3a1"/><file name="DirectLink.php" hash="2dd763e55063b7198fd18742d384e6d0"/><file name="EDankort.php" hash="f732d826ee33954a74a1644cf4c01ea0"/><file name="Eps.php" hash="f8d3f4b110d07f1e26fc6e235ee6810d"/><file name="Flex.php" hash="0454d5addef016ccc0e0c590431da2de"/><file name="FortisPayButton.php" hash="fa523e2ced5c536317b263312560e1be"/><file name="GiroPay.php" hash="693e6955a8d0c344388bbef2dd8b6488"/><file name="IDeal.php" hash="6da46a4342390f04e218892018dd1ded"/><file name="IngHomePay.php" hash="8c74f7e809fb112959fea4a2d6778dc5"/><file name="InterSolve.php" hash="179bca4a43ef9ba8bf2f84f0245ebd0a"/><file name="KbcOnline.php" hash="5af9fa841c87b4866135a8744bb88481"/><file name="KwixoApresReception.php" hash="b954ef9afb6d0011f8dbcf18aa82f51a"/><file name="KwixoComptant.php" hash="854c8077cd62007e50b0978338051a8e"/><file name="KwixoCredit.php" hash="8efcca4bf52a480cf77bc39973a63780"/><file name="Masterpass.php" hash="eb0b62023c53ee0bb9355383a0662453"/><file name="Mpass.php" hash="8aca93f6a8424ccdab1420067b493fb2"/><file name="OpenInvoiceAt.php" hash="2cf4bc0326e8b2de73e5c2b99b571469"/><file name="OpenInvoiceDe.php" hash="bb198fac52ca641613c80c1dd54b95dd"/><file name="OpenInvoiceNl.php" hash="af0b16ce07ca686972c1009d584935be"/><file name="Paypal.php" hash="093a53247a46410ec349c4da004e0e6d"/><file name="Paysafecard.php" hash="3d4add54c13b946d7c192fe56b794e81"/><file name="PingPing.php" hash="cd0fe88dc52c3c8ddac2eed8584c1e88"/><file name="PostFinanceEFinance.php" hash="76781486d9b8519b730cc44745773ce2"/><dir name="Features"><file name="PaymentEmail.php" hash="fb6984ee50f0a23d21f3eff66a93edfc"/><file name="ZeroAmountAuth.php" hash="cb9261ec25274bcf78873a2457614d8b"/></dir><dir name="Recurring"><file name="Cc.php" hash="1cd01c3c19a6855cb56d1c5ba6e0f371"/><dir name="Cc"><file name="ParameterBag.php" hash="eb67b14e3ae01076682f6bc2ca400078"/></dir></dir><dir name="OpenInvoice"><file name="Abstract.php" hash="d5b57924d4a9fd511ef405d0e584d787"/></dir><dir name="Kwixo"><file name="Abstract.php" hash="136d5e9d3f4f517f4f7a56d455e0d9f7"/></dir><dir name="Backend"><file name="OpsId.php" hash="a8e8135a0adf82e6fd49c6dba4102531"/></dir></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="f510fa531114ae1eb143109beb158ce4"/></dir><dir name="Category"><file name="Mapping.php" hash="d95e412b119ee7e03ff0a37a2ead2ecc"/></dir></dir><dir name="Status"><file name="Feedback.php" hash="6ce0a2d27f8c863b33b142e9f41e320a"/><file name="Update.php" hash="3323ffc6ff79fa0507f8c4581448a631"/></dir><dir name="Subscription"><file name="Manager.php" hash="206c629d19736afcd946c8e8e8d5499c"/></dir><dir name="Response"><file name="Handler.php" hash="cc2da8913f500ebbf7d74277e8e3cbd4"/><file name="TypeInterface.php" hash="26636960c737b70a2660639df79be231"/><dir name="Type"><file name="Abstract.php" hash="f3b8248b46c2395d5b51a0d625ba2b33"/><file name="Authorize.php" hash="984553b5bae3f68812d9297ccaacbbee"/><file name="Capture.php" hash="6614c0744591f42325adef2fb338b71f"/><file name="Refund.php" hash="f780e6dbc475fe04af3ede013565b2c6"/><file name="Special.php" hash="47e0aa40ed64a09c4ba1108b3bf494e1"/><file name="Void.php" hash="9fb605f38d3e448d4c2d0d0011c394de"/></dir></dir><dir name="Validator"><file name="CompositeInterface.php" hash="0c8f7735827b38e309756264dee379a6"/><dir name="Parameter"><file name="Factory.php" hash="49acc2378ab445e377e0844cd84ab2fc"/><file name="Length.php" hash="68ebeb4505841d4ec3087a4ecf81e499"/><file name="Validator.php" hash="d40e7da0dd0cec57e5a574f880c41823"/></dir><dir name="Payment"><file name="DirectDebit.php" hash="3478a1fc29183220c197ecfcc8935e4f"/></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="72ec7b78a72e5818536b5cc95087c359"/></dir></dir></dir><dir name="Backend"><dir name="Operation"><file name="Parameter.php" hash="1dd4666a341f554432a6ede07a821251"/><dir name="Parameter"><file name="Abstract.php" hash="788f25015fe1c2c8f0c3dbbe571b851f"/><file name="Interface.php" hash="4e50b0553b7099cefa7c4453ba95d47c"/><dir name="Additional"><file name="Interface.php" hash="55ca2b7bfdad2543fc4e8e033b935e19"/><file name="OpenInvoiceNlAbstract.php" hash="976105cb19e3c60b0b4683a423ca7b67"/></dir></dir><dir name="Refund"><file name="Parameter.php" hash="e779a034d4a3fd7478f8397f7b33ecea"/><dir name="Additional"><file name="OpenInvoiceNl.php" hash="914f69d79edd6d8783c943ba16fea31d"/></dir></dir><dir name="Capture"><file name="Parameter.php" hash="4c091eb84b9c5c2bf2337aca2fb719d7"/><dir name="Additional"><file name="OpenInvoiceNl.php" hash="e5d7be8e1ed3d14a92d6291cfa18552f"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="AliasController.php" hash="ece2f58ebddd9ce099072537d210262b"/><file name="ApiController.php" hash="37e17555dc1b7f179df52d22c2496b02"/><file name="CustomerController.php" hash="6ff59025c6b69e85a2edc6252fc0c875"/><file name="DeviceController.php" hash="0c2c1d82498575ee86b18f008a057846"/><file name="PaymentController.php" hash="4b6c525d012de753f87fa208388a7be1"/><dir name="Adminhtml"><file name="AdminController.php" hash="dc26a2c8d73ab3b00be8afd784bbe21e"/><file name="AliasController.php" hash="1d8c92629b595c1070cd3ca841b2edf5"/><file name="KwixocategoryController.php" hash="309760984713a02607c5d5cdec80e893"/><file name="KwixoshippingController.php" hash="5278501d03fd34f8f1cf6440d9fc7cc1"/><file name="OpsstatusController.php" hash="b5895b4688d64d0af7d5480edc1121b3"/></dir></dir><dir name="Block"><file name="Form.php" hash="1cbbfd4303143ca0bf703cc5037fed5b"/><file name="Frauddetection.php" hash="1b4babb4b59f8a0b2621c9cc43235608"/><file name="Paypage.php" hash="ab20ea9cd8cedafd3060b2b690fb6083"/><file name="Placeform.php" hash="3db96baa5e40c50867848a23875d2cb7"/><file name="Placeform3dsecure.php" hash="c052b5d1e666537dc0d3d874d97f71bd"/><file name="RetryPayment.php" hash="19e48057957a2ec3d1c49fd864a02376"/><dir name="Form"><file name="Alias.php" hash="5842be8a521f5e275808aa74194fdc16"/><file name="Cc.php" hash="9672a81676da38b7cf33b41b7db1f743"/><file name="DirectDebit.php" hash="57ee2463ed0edc939fe3cf5cbc7d866c"/><file name="Flex.php" hash="bc504ddcf3e096e7584331ba8aa6d608"/><file name="Ideal.php" hash="87528a42521649690335896fcde98dbb"/><file name="InterSolve.php" hash="c11690419a192257b01387189e1309cf"/><file name="OpsId.php" hash="5f0986cedea9284cab93e89da9317cdd"/><file name="RecurringCc.php" hash="f97f879d40178321edccc0646b8c90d5"/><dir name="Kwixo"><file name="ApresReception.php" hash="c63fd382f302bf4242599352e7b5edbb"/><file name="Comptant.php" hash="7987b1219101ac6898f921b8e21fee82"/><file name="Credit.php" hash="064283540fc300745b57fcf2c6614f61"/></dir></dir><dir name="System"><dir name="Config"><file name="Kwixoconfiguration.php" hash="d49e502d1dcdcf987b9d28c95ef81e2d"/><file name="Mode.php" hash="6dc088520565165d549cc67538a77769"/><file name="Support.php" hash="abfd2fce3d84ca423b0b8afe61fd0749"/><dir name="Form"><dir name="Field"><file name="Brand.php" hash="d0c2e0c39d49013d45079eeb185a8080"/><file name="Method.php" hash="8620006b68e16eca52023ac85bcb2c69"/><file name="RecurringActive.php" hash="e7c1afffc9da8a3f3485708e897e92ef"/></dir></dir></dir></dir><dir name="Alias"><file name="List.php" hash="aca34f8efb6c18c11e7e383aa45cbce5"/></dir><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="ClosedTransaction"><file name="Warning.php" hash="19591a2b23ca0fcd3806e123ed7a33e4"/></dir><dir name="Totals"><file name="Checkbox.php" hash="79b26abf69352900225dd79cab7fea91"/></dir></dir></dir></dir><dir name="Kwixocategory"><file name="CategoryTree.php" hash="585e70fef04154b518e43456a6b836a1"/><file name="Edit.php" hash="1ad3d0c35b3272e25523b0c35e2a7767"/><dir name="Edit"><file name="Form.php" hash="a8db90e495bc27d80552ab420e133c1e"/></dir></dir><dir name="Kwixo"><dir name="Shipping"><file name="Edit.php" hash="0c84bba9d8fb645d467e42b93d002b2f"/></dir></dir><dir name="Customer"><dir name="Renderer"><file name="PaymentMethod.php" hash="08be2e8d63f0dd051b6a19553229970e"/><file name="State.php" hash="144a37278a7874761914d1b62f254975"/></dir><dir name="Edit"><dir name="Tab"><file name="Alias.php" hash="70245900c34c86cd8f7ba25097a3c59b"/></dir></dir></dir></dir><dir name="Info"><file name="Alias.php" hash="d2ddce2d59adc5c7d6943732bc92a728"/><file name="Cc.php" hash="3ee50da7773fba237e9071174b4bf531"/><file name="Flex.php" hash="5e8e388d8bfc7f3ad45f00b8cfd7d9e3"/><file name="OpsId.php" hash="0773d52ca90f28a7aabbc714057d1108"/><file name="RecurringCc.php" hash="668b945d4f5721c6f55319af93a7c262"/><file name="Redirect.php" hash="71d2dda7fac0b5c43c33cb6a7dcdb3fb"/></dir><dir name="Checkout"><file name="SubscriptionNotice.php" hash="e52fcf70d8a4af5e8a60591249b86cad"/></dir></dir><dir name="data"><dir name="ops_setup"><file name="data-install-14.02.05.php" hash="84d72f943d52a843a6f7140bbdaa5032"/><file name="data-upgrade-14.02.05-14.06.25.php" hash="9aaa0715308c644b05356b03dbb0a533"/><file name="data-upgrade-14.06.25-14.07.16.php" hash="55a9af948569fa51d7b0c2525cf0210e"/><file name="data-upgrade-15.06.08-15.11.02.php" hash="f9e7a843d6c3607e13bf050f00215748"/><file name="data-upgrade-15.11.09-16.03.09.php" hash="a1f8b20fbe229b40670057c6337221bd"/></dir></dir><dir name="etc"><file name="config.xml" hash="f5889dbba980c8340c448e99bcd249f2"/><file name="system.xml" hash="b415fa5bd54b4cfaf6d63762aa7dabe0"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Netresearch_OPS.xml" hash="11e14fb21d7728e9387614be7ceca1f8"/></dir></dir></dir><dir name="js"><dir name="netresearch"><dir name="ops"><file name="deviceFingerprinting.js" hash="403b90a625a64bcd652ababbb3e3e200"/><file name="osc_payment.js" hash="4c4f105d2d67813a02f56d9589093b2a"/><file name="payment.js" hash="5f8d2f17057d4fadc36f39e9b73c8930"/><file name="tokenization.js" hash="a4dfc152c5f97e31ee04182ef4e68640"/></dir></dir></dir></target></contents></package>
1
  <?xml version="1.0"?>
2
+ <package><name>Ogone_ePayments</name><version>16.05.26</version><stability>stable</stability><license>OSL3</license><channel>community</channel><extends></extends><summary>Ingenico ePayments</summary><description>The official Ingenico ePayments module for Magento</description><notes></notes><authors><author><name>Michael L&#xFC;hr</name><user>MichaelLuehr</user><email>michael.luehr@netresearch.de</email></author></authors><date>2016-06-08</date><time>6:52:14</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="skin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="ops.css" hash="010563d95937a17cb9af02c1d71cb768"/></dir><dir name="images"><dir name="ops"><dir name="alias"><dir name="brands"><file name="AmericanExpress.png" hash="afc18008b5955317cfa45bb8b548a084"/><file name="DinnerClub.png" hash="02125cddc176ed9b365fa9365df7c3a3"/><file name="Maestro.png" hash="6c792b579bab78fb1501ddd46ac49cef"/><file name="MasterCard.png" hash="7a5344320f5a930bbce931bcac7a5874"/><file name="VISA.png" hash="e91086b731f5c4bfc7f8466c67e47878"/></dir></dir><dir name="kwixo"><file name="apres_reception.jpg" hash="1d990d1b7c535a04eeb755fadd3323c0"/><file name="comptant.jpg" hash="4452f353667bca7d4f98d84076bb8dde"/><file name="credit.jpg" hash="93d7eeb2fbb57aa6a23585e01b4f6e0e"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ops.css" hash="94d06b794318c6b27ec6cc7fb8721ce4"/><dir name="js"><dir name="ops"><file name="payment.js" hash="9fc200650f011fea3684f143ca6ee364"/></dir></dir></dir></dir></dir></dir><dir name="app"><dir name="locale"><dir name="de_DE"><file name="Netresearch_OPS.csv" hash="f30a1488299f4536e4cbb872c223a06a"/><dir name="template"><dir name="email"><dir name="ops"><file name="ops_email_resend_payment_info.html" hash="181dcaf5da73ff69e1a57a0f57fa87e9"/><file name="suspend_subscription.html" hash="81aa8ba21a14ab178e19962839ab2e20"/></dir></dir></dir></dir><dir name="it_IT"><file name="Netresearch_OPS.csv" hash="735a4aba0c7afa0d366ddd0b8220ada4"/></dir><dir name="nl_NL"><file name="Netresearch_OPS.csv" hash="4e7273536fbe23692b131df9621fed05"/></dir><dir name="en_US"><file name="Netresearch_OPS.csv" hash="6ead1c0e0539c65ba9e6a39fb21f513f"/><dir name="template"><dir name="email"><dir name="ops"><file name="ops_email_resend_payment_info.html" hash="ae6ecc41ccab4e36d6a5c068dc4c8864"/><file name="suspend_subscription.html" hash="98f525c3df48b8e1ddde2b63489b8025"/></dir></dir></dir></dir><dir name="fr_FR"><file name="Netresearch_OPS.csv" hash="7d3eefcba3e29928447beec30fa2eef8"/></dir></dir><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ops"><file name="form.phtml" hash="4dc0b59aa52f578138f594a46a2006fc"/><file name="frauddetection.phtml" hash="696660d8ad249a1f785cfcd20c8133f4"/><file name="info.phtml" hash="ab903c6655ff46d650829043d6e81f5f"/><file name="paypage.phtml" hash="296ed4b5132a7005d3ed31cd1b73347d"/><file name="placeform.phtml" hash="5255b158262c734cb3ef9ad2a4c85979"/><file name="placeform3dsecure.phtml" hash="777317261d36ea4a3759b6ebaa3990e8"/><dir name="checkout"><file name="deviceFingerprinting.phtml" hash="3998eaf9318435966953bc41c978b7af"/><file name="subscriptionNotice.phtml" hash="0bb9e2f3629f94acfdbc202d38a61346"/></dir><dir name="customer"><dir name="alias"><file name="list.phtml" hash="a497e6e74a2652f6accfa61cdb2381ca"/></dir></dir><dir name="info"><file name="alias.phtml" hash="fbfbeb775bdf9f665f27a9c82119cd29"/><file name="cc.phtml" hash="3aaceec6b1504c13a4757f4eeed7f72d"/><file name="flex.phtml" hash="aace6c97d9faf251ea475aa0865954b1"/><file name="opsId.phtml" hash="80900b80b7564e6178789a71b8f5e3d6"/><file name="redirect.phtml" hash="99b7183cda78ae7289b299058caa8902"/></dir><dir name="form"><file name="alias.phtml" hash="e8dc63bb11d3b7d0e9a61d0f88cc9877"/><file name="cc.phtml" hash="722415f8382ef0690f6dcd4b6a6d6e8e"/><file name="directDebit.phtml" hash="3a35dc9b8b22a3c6481b11a2eaae7508"/><file name="flex.phtml" hash="6fa6b3e488f628e63850b8398ae37798"/><file name="ideal.phtml" hash="9ea3e504be12dabbf433a228f4fd7eba"/><file name="intersolve.phtml" hash="6bdf45f822febd989ce915b5dda8a151"/><file name="other.phtml" hash="e5de501ba60d4083528b998e9b155d79"/><dir name="kwixo"><file name="apres_reception.phtml" hash="3f0afdb85696a62410ddb170c939d1c5"/><file name="comptant.phtml" hash="2a6ab9884375d9bd99d9160d00283d85"/><file name="credit.phtml" hash="de5650273e9fef7775d04e9326220249"/></dir></dir></dir></dir><dir name="layout"><file name="ops.xml" hash="b079c456096dddd9de8e0be80ec8b844"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="ops"><file name="categoriestree.phtml" hash="5159f62105c978f7bfb51326d2f99cc0"/><file name="info.phtml" hash="27596da4f99818af71a1a5ad8778ecc0"/><dir name="info"><file name="cc.phtml" hash="5b2ab8ca86d40103bed6db23c839b549"/><file name="flex.phtml" hash="b69225173261f06b465b36a46bca86e9"/><file name="opsId.phtml" hash="3cce07989543bf66b8ebe3eba12d493a"/><file name="redirect.phtml" hash="16f4d44b6716fa7c543534fecbcb205b"/></dir><dir name="sales"><dir name="order"><dir name="creditmemo"><dir name="totals"><file name="checkbox.phtml" hash="880236e567930deb1189e4ce95eb9626"/></dir><dir name="closed-transaction"><file name="warning.phtml" hash="d975663203c1eb5bf173a032c9f14abd"/></dir></dir></dir></dir><dir name="system"><dir name="config"><file name="kwixoconfiglinks.phtml" hash="4b832195dc1a220cd32bed1b8d791784"/><file name="support.phtml" hash="5422fdfa4d7a876257135da905317fef"/></dir></dir><dir name="form"><file name="cc.phtml" hash="a154579798b7672d02669e0bcf4100db"/><file name="directDebit.phtml" hash="7e51f09ec2845ed4f697e57e70f2f791"/><file name="opsId.phtml" hash="cdc4df9650b479f68babb1b711336732"/><dir name="kwixo"><file name="category.phtml" hash="eede6c977cf7ebe6e77e680910fc3df7"/><file name="shipping.phtml" hash="53c03be27367a45800d688e35b18b596"/></dir></dir></dir></dir><dir name="layout"><file name="ops.xml" hash="9595f61227bbb7f4db85b6f26f2a3519"/></dir></dir></dir></dir></dir><dir name="code"><dir name="community"><dir name="Netresearch"><dir name="OPS"><dir name="sql"><dir name="ops_setup"><file name="mysql4-install-1.0.1.php" hash="8310cbcc045a399772a4f24b354f4688"/><file name="mysql4-upgrade-1.0.1-12.12.03.php" hash="3f1ad2f1dcaea8e129c5cbe108563385"/><file name="mysql4-upgrade-13.04.10-13.04.16.php" hash="f94b907ad855d29cbc299036de16ef46"/><file name="mysql4-upgrade-13.05.30-13.06.07.php" hash="ffcdd931218285338937b5d49477486c"/><file name="mysql4-upgrade-13.06.07-13.07.04.php" hash="5ec9745a6e891eacc31467940b3098a8"/><file name="mysql4-upgrade-13.07.10-13.07.23.php" hash="ceb4a2aee7f68ce4c2d85f9b82ce4240"/><file name="mysql4-upgrade-13.11.04-13.11.05.php" hash="4c5d2d5bf45d6e6a826fe32f3915e80e"/><file name="mysql4-upgrade-14.01.27-14.02.05.php" hash="c77a8a2180a44fbd537aebccb806147d"/></dir></dir><dir name="Controller"><file name="Abstract.php" hash="b538a2d024d8cb4cb6da1d00ebfee6f2"/></dir><dir name="Trait"><file name="AliasController.php" hash="06546eea7f5bb0e7aa794bd659cfb5de"/><file name="PaymentHelper.php" hash="c1fed9656562af6a6264e6f8a81ebb63"/></dir><dir name="Test"><dir name="Controller"><file name="AliasControllerTest.php" hash="1059aee6288c33c67da46c7a718ca899"/><file name="ApiControllerTest.php" hash="53aa2d53e34e31329e118cafa1c13f1c"/><file name="DeviceControllerTest.php" hash="dd4e144adbe440d1fe705a71469de633"/><file name="PaymentControllerTest.php" hash="7cb035cf669bf4bcfb9199a7f4964f90"/><dir name="Adminhtml"><file name="AdminControllerTest.php" hash="9929b7d6d3b709239e7a79acdee988e8"/><file name="KwixocategoryControllerTest.php" hash="65854670e4d019f6fc30db4416139b09"/><file name="KwixoshippingControllerTest.php" hash="08d75d9bb293cfe7e68a91651238d060"/><file name="OpsstatusControllerTest.php" hash="380a0d91545fe2b21e41b131476eb8b5"/><dir name="KwixocategoryControllerTest"><dir name="fixtures"><file name="category_mapping.yaml" hash="eb9c31076e7ca9b0ae627fe4793c554c"/></dir></dir><dir name="KwixoshippingControllerTest"><dir name="fixtures"><file name="shipping_settings.yaml" hash="7e6c11812894b1f13353983bd83443e9"/></dir></dir></dir><dir name="AliasControllerTest"><dir name="fixtures"><file name="orders.yaml" hash="acdaed2b02ca0ac591d570a9a6d6821a"/></dir></dir></dir><dir name="Helper"><file name="AliasTest.php" hash="d4eca213f5d4fc4c8a3fea1dc94b975c"/><file name="ApiTest.php" hash="e29c72b3c87c481d9b383fedfc8cc498"/><file name="DataTest.php" hash="5951c2c4cc1b7e2904ca987b0a99975f"/><file name="DirectDebitTest.php" hash="03ad39dd65892bba2625170bf7ea8626"/><file name="DirectLinkTest.php" hash="9ead9f0db709c0ca0ab0533d75fee7f6"/><file name="KwixoTest.php" hash="780b94af0b0d3982914b0a156718c597"/><file name="OrderTest.php" hash="0c3c67b2d60084c45f824e7b69d070fb"/><file name="PaymentTest.php" hash="176b4c3505ce84244fd554665ae37738"/><file name="QuoteTest.php" hash="e8822449d01a83d1991e6367af22ba79"/><file name="SubscriptionTest.php" hash="6ea294262aea00aff1006c5c50029e33"/><file name="VersionTest.php" hash="73a3cdcdf8ce6f6d6c52861fd851252c"/><dir name="SubscriptionTest"><dir name="fixtures"><file name="profile.yaml" hash="ebc1cec0ccb4f96b3ed8354b19983158"/></dir></dir><dir name="KwixoTest"><dir name="fixtures"><file name="category_mapping.yaml" hash="aeda66674aaf1cd5c6bd09f1c5d2cfd0"/></dir></dir><dir name="OrderTest"><dir name="fixtures"><file name="order.yaml" hash="0d3331a6405770fe85da3c53278a606d"/></dir></dir><dir name="Payment"><file name="RequestTest.php" hash="9ebdcb3cb1ce9a24547ea1c51772896b"/><dir name="DirectLink"><file name="RequestTest.php" hash="2ed040a7531ac6327c645b4ea54cbcdf"/></dir></dir><dir name="Validation"><file name="ResultTest.php" hash="d1f78c064631fc7c08c47d70aea3c210"/><dir name="ResultTest"><dir name="fixtures"><file name="quotes.yaml" hash="1bdf98ba844d78d02b0c0fe773085931"/></dir></dir><dir name="Checkout"><file name="StepTest.php" hash="580d62fa4dbca48b57f7e6a413d65e4a"/></dir></dir><dir name="Order"><file name="CaptureTest.php" hash="1048a781112d23256c91ad96c0c93f1a"/><file name="RefundTest.php" hash="3031b10fcec45cebeab8afef7a1654a7"/></dir></dir><dir name="Model"><file name="ConfigTest.php" hash="98a3364a2baeaf5530dab9c79fd0e9b1"/><file name="ObserverTest.php" hash="1734776cd2546a3ed36bdeffea2cf80b"/><file name="StatusTest.php" hash="4fd9fdf4acc583e244c01cd46dae6858"/><dir name="Mysql4"><file name="AliasTest.php" hash="8b3894362f762561b930cb5b6a58b741"/><dir name="Alias"><file name="AliasTest.php" hash="abd64ea898ab80ae396d9f20c4d78e3a"/></dir></dir><dir name="Source"><file name="ModeTest.php" hash="97237c752c74af73046a5684b919d8cb"/><file name="OrderReferenceTest.php" hash="fc78f1604c81ac093764403f429898ba"/><dir name="Cc"><file name="AliasInterfaceEnabledTypesTest.php" hash="11e3eb870c8bf03dee77b48ae3186907"/><file name="RecurringTypesTest.php" hash="4755f319e675148b29ccaddfe8ab0e5e"/></dir><dir name="DirectEbanking"><file name="BrandsTest.php" hash="5290165b57e0d02588aba5cd713f6d4a"/></dir><dir name="Kwixo"><file name="ProductCategoriesTest.php" hash="6032dddeb4a3327a95da3186c4824be3"/><file name="ShipMethodTypeTest.php" hash="8cd09f6cb9283345a33b15b95128310c"/></dir></dir><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Flex"><file name="MethodsTest.php" hash="79982ae6c1a4510a55d1e1323720c9e5"/></dir><dir name="Design"><file name="BrandsTest.php" hash="2e37e802e3338e6da80ea646f7ff53c7"/></dir></dir></dir></dir><dir name="File"><file name="Download.php" hash="3d79f6786d1779e128dd34148154f71c"/></dir><dir name="Api"><file name="DirectLinkShaTest.php" hash="68ada430361699d5bf62ee30df024feb"/><file name="DirectLinkTest.php" hash="a2aa8b5652840a25ec7505ca2017eab9"/></dir><dir name="Payment"><file name="AbstractCaptureTest.php" hash="5ae158e87dd5675cc4f766ff46e16d0b"/><file name="AbstractRefundTest.php" hash="38658995e86caa3862b62d41e7751b5a"/><file name="AbstractTest.php" hash="bf6b97218e2b03b96e86efd0b1ca2223"/><file name="BancontactTest.php" hash="881f2a8958d2563165e2c9c0ee415b73"/><file name="CcTest.php" hash="384648f499c5becf6edcee786e3a51ff"/><file name="ChinaUnionPayTest.php" hash="6f75c25933cda963aad11cc70986019b"/><file name="DebitcardTest.php" hash="4ef9326db28038247f6c7754a9da155d"/><file name="DirectDebitTest.php" hash="7f2b79a941d6b88361823a0765cf2823"/><file name="DirectEbankingTest.php" hash="16566265ffb905a5635b82d50c3969cb"/><file name="DirectLinkTest.php" hash="67adbbaef09c2a3821b6b423fa24c9df"/><file name="FlexTest.php" hash="736652f102573da8226d1d63b418464c"/><file name="IDealTest.php" hash="1a2d6419112041bba88e40ea3152fe81"/><file name="InterSolveTest.php" hash="b4323757c80d99574e2299fc2fd514f9"/><file name="KwixoApresReceptionTest.php" hash="61953f3d6e4fe87f4175a70d05ad2d3d"/><file name="KwixoComptantTest.php" hash="3178b4c03c69690fcc3631ba78e4bff3"/><file name="KwixoCreditTest.php" hash="2c29f95416e5d3cb43268c6eba27bc8d"/><file name="ObjectHandler.php" hash="d3461d810c6df684b643bbb1a0b4d6e5"/><file name="OpenInvoiceAtTest.php" hash="6f4a7dbdd1e68bd1b9533b47569209f5"/><file name="OpenInvoiceDeTest.php" hash="e9c02960119266d9f3ba542e18108b75"/><file name="OpenInvoiceNlTest.php" hash="eb3f9a2707216f62af69ef240ae7b020"/><file name="objects.xml" hash="c034e9ebbbf3e885681a5ed2e54b3c65"/><dir name="Features"><file name="PaymentEmailTest.php" hash="2c42265cc1c9c3429b308caf9c88f7c1"/><file name="ZeroAmountAuthTest.php" hash="18e55d5568b98fae47313ae4f2611d39"/></dir><dir name="AbstractTest"><dir name="fixtures"><file name="orders.yaml" hash="27f0e621eef276c706160bc383a4bca7"/></dir><dir name="expectations"><file name="paymentMethods.yaml" hash="011f2209f040a8a4c8c44e96a18f4193"/></dir></dir><dir name="IDealTest"><dir name="fixtures"><file name="orders.yaml" hash="36a861b34134868cc24141587896c0ca"/></dir></dir><dir name="Recurring"><file name="CcTest.php" hash="d05727c1ca06e911ade683f062da01c9"/><dir name="Cc"><file name="ParameterBagTest.php" hash="441aa8db4e580bb3ffd801734b1ff8da"/></dir></dir><dir name="Kwixo"><file name="AbstractTest.php" hash="90e19da30a83f87d8e757ac46d27adba"/><dir name="AbstractTest"><dir name="fixtures"><file name="orders.yaml" hash="640872bf29a7c75915916e10c43122b0"/></dir><dir name="expectations"><file name="paymentMethods.yaml" hash="011f2209f040a8a4c8c44e96a18f4193"/></dir></dir></dir></dir><dir name="Kwixo"><dir name="Category"><file name="MappingTest.php" hash="cea9916436e62c61413277a0ac2fe3cf"/><dir name="MappingTest"><dir name="fixtures"><file name="category_mapping.yaml" hash="aeda66674aaf1cd5c6bd09f1c5d2cfd0"/></dir></dir></dir></dir><dir name="Status"><file name="UpdateTest.php" hash="aefd78231527ce963a3ba68d9189731b"/><dir name="UpdateTest"><dir name="fixtures"><file name="orders.yaml" hash="c0e5af3c7dbd17610e9c421364713539"/></dir></dir></dir><dir name="Subscription"><file name="ManagerTest.php" hash="1866ccd98f6829ee59526c4d643d3164"/></dir><dir name="Response"><file name="TestCase.php" hash="89a50df8563f2472dac5496021dc498c"/><dir name="Type"><file name="AuthorizeTest.php" hash="af48995769809d988491f62085cd7c6a"/><file name="CaptureTest.php" hash="1c08c85838cfc6c6f7cc019b80579b92"/><file name="RefundTest.php" hash="c24ff624ff44a2f48dacd63548aab653"/><dir name="AuthorizeTest"><dir name="fixtures"><file name="orders.yaml" hash="2af029c270b5fdaac683e19283af4248"/></dir></dir><dir name="CaptureTest"><dir name="fixtures"><file name="orders.yaml" hash="06f4d02d0c6b9645ef0ffd793b581bbf"/></dir></dir><dir name="RefundTest"><dir name="fixtures"><file name="orders.yaml" hash="ad4d03fac6b978ab2e7aed35bf83eeb7"/></dir></dir></dir></dir><dir name="Validator"><dir name="Parameter"><file name="FactoryTest.php" hash="56228ca7dfce6ef3137b14aabfd5b89f"/><file name="LengthTest.php" hash="bc2ce95df4708fbdbbfe3b21f2e6cc71"/><file name="ValidatorTest.php" hash="0fd623a7a051950ed739ef8bf233f831"/></dir><dir name="Payment"><file name="DirectDebitTest.php" hash="bff6135a868592e2c103ae11f856fc91"/></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="45165bfcc902ee324adca34c8262288c"/></dir></dir></dir><dir name="Backend"><dir name="Operation"><file name="ParameterTest.php" hash="7191623d1824cd4f3997478a0a001b32"/><dir name="Refund"><file name="ParameterTest.php" hash="cba744502cb7cbb77a4cae38ba4ed580"/><dir name="Additional"><file name="OpenInvoiceNlTest.php" hash="9d499c63ae52b8028d8f3228fa110784"/></dir></dir><dir name="Capture"><file name="ParameterTest.php" hash="da9b512d2735234cb37903de585a6508"/><dir name="Additional"><file name="OpenInvoiceNlTest.php" hash="ddc121fcde3d3e58850255d662d5948b"/></dir></dir></dir></dir></dir><dir name="Block"><file name="FormTest.php" hash="f6901a36569d289173059a1f32e644ba"/><file name="FrauddetectionTest.php" hash="d2718f575a651ce8c61277aead189e27"/><file name="PlaceFormShaTest.php" hash="ec0f466e4e0b3edd3ad42501f79cf811"/><file name="PlaceformTest.php" hash="a070f15981a486a0559b0c9492c49da1"/><dir name="Form"><file name="CcTest.php" hash="08167c8c419b946ebe62f84cb461b276"/><file name="DirectDebitTest.php" hash="57da48a4437fab36f615c526136d9078"/><file name="FlexTest.php" hash="f38c99714c00fc16f0f25eaa3957b0f4"/><file name="Ideal.php" hash="e9e736cc6696669f62568515c864994f"/><file name="InterSolveTest.php" hash="5328c26fb0ea556e4b86746aab6bb430"/><dir name="CcTest"><dir name="fixtures"><file name="aliases.yaml" hash="47d68330e8961bacb35c6a3d77355da2"/></dir></dir><dir name="Field"><file name="MethodTest.php" hash="0c374f74acab76ecbfd4ab1c393549bc"/></dir><dir name="Kwixo"><file name="ApresReceptionTest.php" hash="34e142431780efeb7c17c6ef7670a87a"/><file name="ComptantTest.php" hash="77c7dffea7a219450d4193bf3dae4743"/><file name="CreditTest.php" hash="a52d70d5682479ccffef432d2b0499a2"/></dir></dir><dir name="System"><dir name="Config"><file name="KwixoconfigurationTest.php" hash="9a90c3a33d4b43b881164d6d928f5581"/><file name="ModeTest.php" hash="4c5b24f166ea977a5429bbff4641764b"/></dir></dir><dir name="Alias"><file name="ListTest.php" hash="4e62a55be1693de43339401f5f0d3d63"/></dir><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="Totals"><file name="CheckboxTest.php" hash="0a8f6b19f2724d121081d94867dee27e"/></dir></dir></dir></dir><dir name="Kwixo"><dir name="Shipping"><file name="EditTest.php" hash="f9cb5b3f8dde0f84ac3f66e099885c69"/></dir></dir><dir name="Customer"><dir name="Renderer"><file name="StateTest.php" hash="ebf5cc0515040d6a7b13e29e51621400"/></dir></dir></dir><dir name="Info"><file name="FlexTest.php" hash="f607be4520490ffd7ce36fa985fe4cf6"/></dir><dir name="Checkout"><file name="DeviceFingerprintingTest.php" hash="3ae7b2685d0410b0e7acbaa786db7210"/><dir name="DeviceFingerprintingTest"><dir name="fixtures"><file name="fingerPrintingDisabled.yaml" hash="541a21b4035e0546a2d5aee915ca0633"/><file name="fingerPrintingEnabled.yaml" hash="8c44d4b6668eaa395c551ff4ac8b8644"/></dir></dir></dir></dir><dir name="var"><dir name="fixtures"><file name="aliases.yaml" hash="47d68330e8961bacb35c6a3d77355da2"/><file name="orders.yaml" hash="7259f5e3189d3becd9d0463397a67a00"/><file name="quotes.yaml" hash="34552808c8e47162e978d1e6a8269874"/></dir></dir></dir><dir name="Helper"><file name="Alias.php" hash="f711edc06364ef2a09df2aa341fbc210"/><file name="Api.php" hash="d0899a388183289ed4e739e526fda2c4"/><file name="Creditcard.php" hash="bb1087aad7ee0f6f9b097866bc85077d"/><file name="Data.php" hash="ed0801f36928b9a58ba5519b439e69c3"/><file name="Debitcard.php" hash="69c19445767892733f0086f2cf94b89d"/><file name="DirectDebit.php" hash="5114c664a36be12094b5008d99490291"/><file name="Directlink.php" hash="781a24b36d39d775d3052859d9c8b64f"/><file name="Kwixo.php" hash="8dc15b230958b3c61b1336dce66754d1"/><file name="Order.php" hash="cdae4b602b46b0aed85659309f9d54b9"/><file name="Payment.php" hash="d2e811140a293cdc8cb5769fc5601bd4"/><file name="Quote.php" hash="3d3d02e97caa839c4efa87c1534dba94"/><file name="Subscription.php" hash="a04802611e64496615a882153eddc713"/><file name="Version.php" hash="58c2df89aba2a7b0fa45ec008b16ee4a"/><dir name="Payment"><file name="Request.php" hash="a607e4492d9bd637b0c0d74a8c9d5576"/><dir name="DirectLink"><file name="Request.php" hash="1d112b81fee03d1d4147d43395412552"/><file name="RequestInterface.php" hash="c070fb3768e2a0996971ba9fb0b6bca8"/></dir></dir><dir name="Validation"><file name="Result.php" hash="99cfc251f10582d7cd749cffe2e85485"/><dir name="Checkout"><file name="Step.php" hash="0cbafc924a1c092f194e24784ab35779"/></dir></dir><dir name="Order"><file name="Abstract.php" hash="87341aa26a1a7d8bd9ef4c1e1f0e08ac"/><file name="Capture.php" hash="b4e6fbe9ff2a0669c7138f33252ae509"/><file name="Refund.php" hash="213add13b392fe2bea52742c99b55fa7"/></dir></dir><dir name="Model"><file name="Alias.php" hash="4826d0f81013969a6765d007bc9ab169"/><file name="Config.php" hash="f75fe68af5b0a7ff300ed119ca311d45"/><file name="Observer.php" hash="cfd4274d1ea0a9b27b754447600a1582"/><file name="Status.php" hash="65bd6de2a4b8f2a9d0379e54c20cfe98"/><dir name="Eci"><file name="Values.php" hash="55ee7f6ac4e95cb0309b9c3e5ebbb888"/></dir><dir name="Mysql4"><file name="Alias.php" hash="c68c2d82f863fca593977a1099d21772"/><dir name="Alias"><file name="Collection.php" hash="f34804c6f4743093b5f97d26f0036d05"/></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="3af643a902e980b478af860fbee6c81f"/><dir name="Setting"><file name="Collection.php" hash="860a861e740285ba489e0f7f8f9792ef"/></dir></dir><dir name="Category"><file name="Mapping.php" hash="825ad26fc6ab5a88a1cc0ed555541adf"/><dir name="Mapping"><file name="Collection.php" hash="7da592f15edc9cf1a93400fd763deee8"/></dir></dir></dir></dir><dir name="Source"><file name="Mode.php" hash="09557a116ebbf4ae745afab8400044d0"/><file name="OrderReference.php" hash="50e5ee2318b09763ac3b05a6d1452942"/><file name="PaymentAction.php" hash="5c526ef9a2b47b138d81f70c3f5cb7cb"/><file name="Pmlist.php" hash="cbc6a4d71cf3762470880cc7bfd42cb1"/><file name="Template.php" hash="dc0a1ab42ff5e5d3c0b9d16a9b59b68f"/><file name="TemplateType.php" hash="8f7c8a84ce029f1c615ae3b0ea5c10ba"/><dir name="DebitCard"><file name="AliasInterfaceEnabledTypes.php" hash="b20b771c157d4f06b3f2246521bd5089"/><file name="Types.php" hash="b8ebc37dc9edadb1b609120268aff356"/></dir><dir name="Cc"><file name="AliasInterfaceEnabledTypes.php" hash="becaad455f43bdaa13248568196660db"/><file name="RecurringTypes.php" hash="b93f92b74dc2db91751e40e1498fbd97"/><file name="Types.php" hash="5c6ad1ed8fa359bd59a5b988edc84772"/></dir><dir name="DirectEbanking"><file name="Brands.php" hash="f138c79a495b6d380b087700aaabf968"/></dir><dir name="Kwixo"><file name="ProductCategories.php" hash="1196b8cabe3e5bc949a73bb14ff1a91b"/><file name="ShipMethodType.php" hash="893d2113cb96edeafa8ea4139a07cbcf"/></dir><dir name="DirectDebit"><file name="Countries.php" hash="05bc48e94346450b40a7cdaf84c52d9b"/></dir><dir name="BankTransfer"><file name="Countries.php" hash="bc2fc4c20921c8490b27362c122ccafc"/></dir></dir><dir name="System"><dir name="Config"><file name="Mode.php" hash="36001dca2489198e7c7b862293b4d5df"/><file name="Template.php" hash="0d7d67c258d43568467405b68962f0ea"/><dir name="Backend"><file name="HashMethods.php" hash="6036c5160e640f8cb5333f009ec37c4e"/><dir name="Flex"><file name="Methods.php" hash="a4fd6b0cc29c2c24dbd275fe038c7e33"/></dir><dir name="Intersolve"><file name="Brands.php" hash="3f6c18e181bcdd7930cb5841db9eae01"/></dir></dir></dir></dir><dir name="Alias"><file name="State.php" hash="d39a461a14dbadafb141cef1d1873a1d"/></dir><dir name="File"><file name="Download.php" hash="1fb9ce455e28c579c0f418afb0446120"/></dir><dir name="Api"><file name="Directlink.php" hash="74c7a7a7123626bfa58387479ba2942e"/></dir><dir name="Payment"><file name="Abstract.php" hash="d1b89d10f55f672879041154ec2a437a"/><file name="Bancontact.php" hash="9908735e84f87383076af1ba9fe99ab8"/><file name="BankTransfer.php" hash="20ad97136546913a8a8b99ea824f0310"/><file name="BelfiusDirectNet.php" hash="5c0abd1457679b6c6b91e9758ca7d888"/><file name="CashU.php" hash="dfdd0f04962616943f5810bcd676b972"/><file name="CbcOnline.php" hash="026d43272966f88c6cec5298bb2c6d89"/><file name="Cc.php" hash="1c0f2ac505ad43520f26eb7c9bb808ca"/><file name="ChinaUnionPay.php" hash="b41ba1a95911f11e5520d63603c1f619"/><file name="Debitcard.php" hash="0563c9b7ec750654cd2c3f8290d5bb67"/><file name="DirectDebit.php" hash="16775daaf09a26cbe1e57f6c03c2a64e"/><file name="DirectEbanking.php" hash="c6d67e5a01e35d9bfe922f132f3ee3a1"/><file name="DirectLink.php" hash="2dd763e55063b7198fd18742d384e6d0"/><file name="EDankort.php" hash="f732d826ee33954a74a1644cf4c01ea0"/><file name="Eps.php" hash="f8d3f4b110d07f1e26fc6e235ee6810d"/><file name="Flex.php" hash="0454d5addef016ccc0e0c590431da2de"/><file name="FortisPayButton.php" hash="fa523e2ced5c536317b263312560e1be"/><file name="GiroPay.php" hash="693e6955a8d0c344388bbef2dd8b6488"/><file name="IDeal.php" hash="6da46a4342390f04e218892018dd1ded"/><file name="IngHomePay.php" hash="8c74f7e809fb112959fea4a2d6778dc5"/><file name="InterSolve.php" hash="179bca4a43ef9ba8bf2f84f0245ebd0a"/><file name="KbcOnline.php" hash="5af9fa841c87b4866135a8744bb88481"/><file name="KwixoApresReception.php" hash="b954ef9afb6d0011f8dbcf18aa82f51a"/><file name="KwixoComptant.php" hash="854c8077cd62007e50b0978338051a8e"/><file name="KwixoCredit.php" hash="8efcca4bf52a480cf77bc39973a63780"/><file name="Masterpass.php" hash="eb0b62023c53ee0bb9355383a0662453"/><file name="Mpass.php" hash="8aca93f6a8424ccdab1420067b493fb2"/><file name="OpenInvoiceAt.php" hash="2cf4bc0326e8b2de73e5c2b99b571469"/><file name="OpenInvoiceDe.php" hash="bb198fac52ca641613c80c1dd54b95dd"/><file name="OpenInvoiceNl.php" hash="af0b16ce07ca686972c1009d584935be"/><file name="Paypal.php" hash="093a53247a46410ec349c4da004e0e6d"/><file name="Paysafecard.php" hash="3d4add54c13b946d7c192fe56b794e81"/><file name="PingPing.php" hash="cd0fe88dc52c3c8ddac2eed8584c1e88"/><file name="PostFinanceEFinance.php" hash="76781486d9b8519b730cc44745773ce2"/><dir name="Features"><file name="PaymentEmail.php" hash="fb6984ee50f0a23d21f3eff66a93edfc"/><file name="ZeroAmountAuth.php" hash="cb9261ec25274bcf78873a2457614d8b"/></dir><dir name="Recurring"><file name="Cc.php" hash="1cd01c3c19a6855cb56d1c5ba6e0f371"/><dir name="Cc"><file name="ParameterBag.php" hash="eb67b14e3ae01076682f6bc2ca400078"/></dir></dir><dir name="OpenInvoice"><file name="Abstract.php" hash="d5b57924d4a9fd511ef405d0e584d787"/></dir><dir name="Kwixo"><file name="Abstract.php" hash="136d5e9d3f4f517f4f7a56d455e0d9f7"/></dir><dir name="Backend"><file name="OpsId.php" hash="a8e8135a0adf82e6fd49c6dba4102531"/></dir></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="f510fa531114ae1eb143109beb158ce4"/></dir><dir name="Category"><file name="Mapping.php" hash="d95e412b119ee7e03ff0a37a2ead2ecc"/></dir></dir><dir name="Status"><file name="Feedback.php" hash="6ce0a2d27f8c863b33b142e9f41e320a"/><file name="Update.php" hash="3323ffc6ff79fa0507f8c4581448a631"/></dir><dir name="Subscription"><file name="Manager.php" hash="206c629d19736afcd946c8e8e8d5499c"/></dir><dir name="Response"><file name="Handler.php" hash="cc2da8913f500ebbf7d74277e8e3cbd4"/><file name="TypeInterface.php" hash="26636960c737b70a2660639df79be231"/><dir name="Type"><file name="Abstract.php" hash="f3b8248b46c2395d5b51a0d625ba2b33"/><file name="Authorize.php" hash="feb31cf77aa82f531826d19122d09211"/><file name="Capture.php" hash="9fa1c555475f1bf055af48fe90411789"/><file name="Refund.php" hash="f780e6dbc475fe04af3ede013565b2c6"/><file name="Special.php" hash="e6006cdc81b48faf0729cb9f3858f273"/><file name="Void.php" hash="9fb605f38d3e448d4c2d0d0011c394de"/></dir></dir><dir name="Validator"><file name="CompositeInterface.php" hash="0c8f7735827b38e309756264dee379a6"/><dir name="Parameter"><file name="Factory.php" hash="49acc2378ab445e377e0844cd84ab2fc"/><file name="Length.php" hash="68ebeb4505841d4ec3087a4ecf81e499"/><file name="Validator.php" hash="d40e7da0dd0cec57e5a574f880c41823"/></dir><dir name="Payment"><file name="DirectDebit.php" hash="3478a1fc29183220c197ecfcc8935e4f"/></dir><dir name="Kwixo"><dir name="Shipping"><file name="Setting.php" hash="72ec7b78a72e5818536b5cc95087c359"/></dir></dir></dir><dir name="Backend"><dir name="Operation"><file name="Parameter.php" hash="1dd4666a341f554432a6ede07a821251"/><dir name="Parameter"><file name="Abstract.php" hash="788f25015fe1c2c8f0c3dbbe571b851f"/><file name="Interface.php" hash="4e50b0553b7099cefa7c4453ba95d47c"/><dir name="Additional"><file name="Interface.php" hash="55ca2b7bfdad2543fc4e8e033b935e19"/><file name="OpenInvoiceNlAbstract.php" hash="976105cb19e3c60b0b4683a423ca7b67"/></dir></dir><dir name="Refund"><file name="Parameter.php" hash="e779a034d4a3fd7478f8397f7b33ecea"/><dir name="Additional"><file name="OpenInvoiceNl.php" hash="914f69d79edd6d8783c943ba16fea31d"/></dir></dir><dir name="Capture"><file name="Parameter.php" hash="4c091eb84b9c5c2bf2337aca2fb719d7"/><dir name="Additional"><file name="OpenInvoiceNl.php" hash="e5d7be8e1ed3d14a92d6291cfa18552f"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="AliasController.php" hash="ece2f58ebddd9ce099072537d210262b"/><file name="ApiController.php" hash="37e17555dc1b7f179df52d22c2496b02"/><file name="CustomerController.php" hash="6ff59025c6b69e85a2edc6252fc0c875"/><file name="DeviceController.php" hash="0c2c1d82498575ee86b18f008a057846"/><file name="PaymentController.php" hash="4b6c525d012de753f87fa208388a7be1"/><dir name="Adminhtml"><file name="AdminController.php" hash="dc26a2c8d73ab3b00be8afd784bbe21e"/><file name="AliasController.php" hash="1d8c92629b595c1070cd3ca841b2edf5"/><file name="KwixocategoryController.php" hash="309760984713a02607c5d5cdec80e893"/><file name="KwixoshippingController.php" hash="5278501d03fd34f8f1cf6440d9fc7cc1"/><file name="OpsstatusController.php" hash="b5895b4688d64d0af7d5480edc1121b3"/></dir></dir><dir name="Block"><file name="Form.php" hash="1cbbfd4303143ca0bf703cc5037fed5b"/><file name="Frauddetection.php" hash="1b4babb4b59f8a0b2621c9cc43235608"/><file name="Paypage.php" hash="ab20ea9cd8cedafd3060b2b690fb6083"/><file name="Placeform.php" hash="3db96baa5e40c50867848a23875d2cb7"/><file name="Placeform3dsecure.php" hash="c052b5d1e666537dc0d3d874d97f71bd"/><file name="RetryPayment.php" hash="19e48057957a2ec3d1c49fd864a02376"/><dir name="Form"><file name="Alias.php" hash="5842be8a521f5e275808aa74194fdc16"/><file name="Cc.php" hash="9672a81676da38b7cf33b41b7db1f743"/><file name="DirectDebit.php" hash="57ee2463ed0edc939fe3cf5cbc7d866c"/><file name="Flex.php" hash="bc504ddcf3e096e7584331ba8aa6d608"/><file name="Ideal.php" hash="87528a42521649690335896fcde98dbb"/><file name="InterSolve.php" hash="c11690419a192257b01387189e1309cf"/><file name="OpsId.php" hash="5f0986cedea9284cab93e89da9317cdd"/><file name="RecurringCc.php" hash="f97f879d40178321edccc0646b8c90d5"/><dir name="Kwixo"><file name="ApresReception.php" hash="c63fd382f302bf4242599352e7b5edbb"/><file name="Comptant.php" hash="7987b1219101ac6898f921b8e21fee82"/><file name="Credit.php" hash="064283540fc300745b57fcf2c6614f61"/></dir></dir><dir name="System"><dir name="Config"><file name="Kwixoconfiguration.php" hash="d49e502d1dcdcf987b9d28c95ef81e2d"/><file name="Mode.php" hash="6dc088520565165d549cc67538a77769"/><file name="Support.php" hash="abfd2fce3d84ca423b0b8afe61fd0749"/><dir name="Form"><dir name="Field"><file name="Brand.php" hash="d0c2e0c39d49013d45079eeb185a8080"/><file name="Method.php" hash="8620006b68e16eca52023ac85bcb2c69"/><file name="RecurringActive.php" hash="e7c1afffc9da8a3f3485708e897e92ef"/></dir></dir></dir></dir><dir name="Alias"><file name="List.php" hash="aca34f8efb6c18c11e7e383aa45cbce5"/></dir><dir name="Adminhtml"><dir name="Sales"><dir name="Order"><dir name="Creditmemo"><dir name="ClosedTransaction"><file name="Warning.php" hash="19591a2b23ca0fcd3806e123ed7a33e4"/></dir><dir name="Totals"><file name="Checkbox.php" hash="79b26abf69352900225dd79cab7fea91"/></dir></dir></dir></dir><dir name="Kwixocategory"><file name="CategoryTree.php" hash="585e70fef04154b518e43456a6b836a1"/><file name="Edit.php" hash="1ad3d0c35b3272e25523b0c35e2a7767"/><dir name="Edit"><file name="Form.php" hash="a8db90e495bc27d80552ab420e133c1e"/></dir></dir><dir name="Kwixo"><dir name="Shipping"><file name="Edit.php" hash="0c84bba9d8fb645d467e42b93d002b2f"/></dir></dir><dir name="Customer"><dir name="Renderer"><file name="PaymentMethod.php" hash="08be2e8d63f0dd051b6a19553229970e"/><file name="State.php" hash="144a37278a7874761914d1b62f254975"/></dir><dir name="Edit"><dir name="Tab"><file name="Alias.php" hash="70245900c34c86cd8f7ba25097a3c59b"/></dir></dir></dir></dir><dir name="Info"><file name="Alias.php" hash="d2ddce2d59adc5c7d6943732bc92a728"/><file name="Cc.php" hash="3ee50da7773fba237e9071174b4bf531"/><file name="Flex.php" hash="5e8e388d8bfc7f3ad45f00b8cfd7d9e3"/><file name="OpsId.php" hash="0773d52ca90f28a7aabbc714057d1108"/><file name="RecurringCc.php" hash="668b945d4f5721c6f55319af93a7c262"/><file name="Redirect.php" hash="71d2dda7fac0b5c43c33cb6a7dcdb3fb"/></dir><dir name="Checkout"><file name="DeviceFingerprinting.php" hash="e31c235f15260baadc5e42d5f062da0e"/><file name="SubscriptionNotice.php" hash="e52fcf70d8a4af5e8a60591249b86cad"/></dir></dir><dir name="data"><dir name="ops_setup"><file name="data-install-14.02.05.php" hash="84d72f943d52a843a6f7140bbdaa5032"/><file name="data-upgrade-14.02.05-14.06.25.php" hash="9aaa0715308c644b05356b03dbb0a533"/><file name="data-upgrade-14.06.25-14.07.16.php" hash="55a9af948569fa51d7b0c2525cf0210e"/><file name="data-upgrade-15.06.08-15.11.02.php" hash="f9e7a843d6c3607e13bf050f00215748"/><file name="data-upgrade-15.11.09-16.03.09.php" hash="69b935d3c200a041a0f09db364c0a9dc"/></dir></dir><dir name="etc"><file name="config.xml" hash="b212f392a61d9740b7bc3bad55964c82"/><file name="system.xml" hash="b415fa5bd54b4cfaf6d63762aa7dabe0"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="Netresearch_OPS.xml" hash="11e14fb21d7728e9387614be7ceca1f8"/></dir></dir></dir><dir name="js"><dir name="netresearch"><dir name="ops"><file name="deviceFingerprinting.js" hash="403b90a625a64bcd652ababbb3e3e200"/><file name="osc_payment.js" hash="4c4f105d2d67813a02f56d9589093b2a"/><file name="payment.js" hash="9bcce9b541b579fbf56ecf54932b1c4f"/><file name="tokenization.js" hash="a4dfc152c5f97e31ee04182ef4e68640"/></dir></dir></dir></target></contents></package>