Skip to content

Commit

Permalink
Add very broad integration test to get some coverage.
Browse files Browse the repository at this point in the history
  • Loading branch information
torotil committed Dec 3, 2018
1 parent 4f3f001 commit 8fc8061
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ before_script:
- ln -s $repo $root/sites/all/modules/webform_paymethod_select
- cd $root
- drush dl ctools currency entity jquery_update little_helpers-2.0-alpha3 payment payment_context psr0 views webform
- drush --yes pm-enable webform_paymethod_select
- drush --yes pm-enable webform_paymethod_select wps_test_method

script:
- cd $repo
Expand Down
67 changes: 67 additions & 0 deletions tests/WebformPaymentTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php

use Upal\DrupalUnitTestCase;

/**
* Integration test for webform_paymethod_select.
*/
class WebformPaymentTest extends DrupalUnitTestCase {

/**
* Prepare a test node.
*/
public function setUp() {
parent::setUp();
$controller = payment_method_controller_load(wps_test_method_payment_method_controller_info()[0]);
$method = entity_create('payment_method', ['controller' => $controller]);
entity_save('payment_method', $method);
$this->method = $method;

module_load_include('components.inc', 'webform', 'includes/webform');
$node = (object) ['type' => 'webform'];
node_object_prepare($node);
$node->webform['components'][1] = [
'type' => 'paymethod_select',
'pid' => 0,
'form_key' => 'paymethod_select',
'name' => 'Pay',
'weight' => 0,
'extra' => [
'selected_payment_methods' => [$method->pmid => $method->pmid],
],
];
foreach ($node->webform['components'] as &$c) {
webform_component_defaults($c);
}
node_save($node);
$this->node = node_load($node->nid);
$GLOBALS['conf']['webform_tracking_mode'] = '<none>';
}

/**
* Test a simple dummy payment.
*/
public function testPayment() {
$form_state['values']['submitted']['paymethod_select']['payment_method_all_forms'][$this->method->pmid] = [
'validate_timeout' => 0,
];
$form_state['values']['op'] = 'Submit';
$form_state['values']['details']['sid'] = NULL;
drupal_form_submit("webform_client_form_{$this->node->nid}", $form_state, $this->node);
$submissions = webform_get_submissions(['nid' => $this->node->nid]);
$this->assertCount(1, $submissions);
$submission = reset($submissions);
$payment = entity_load_single('payment', $submission->data[1][0]);
$this->assertNotEmpty($payment);
}

/**
* Remove the test node.
*/
public function tearDown() {
entity_delete('payment_method', $this->method->pmid);
node_delete($this->node->nid);
parent::tearDown();
}

}

0 comments on commit 8fc8061

Please sign in to comment.