View source
<?php
class FillPdfNodeTestCase extends DrupalWebTestCase {
protected $profile = 'minimal';
protected $nodes;
protected $message;
public static function getInfo() {
return array(
'name' => 'FillPDF link creation for nodes',
'description' => 'Ensure that FillPDF creates correct links for nodes.',
'group' => 'FillPDF',
);
}
public function setUp() {
parent::setUp(array(
'node',
'fillpdf',
));
$nodes = array();
for ($nid = 111; $nid <= 113; $nid++) {
$nodes[] = (object) array(
'nid' => $nid,
'type' => 'article',
);
}
$this->nodes = $nodes;
$this->message = "Test case %name:\n<br />%output (actual result) equals\n<br />%expected (expected).";
}
public function testNodeLink() {
$base_context = array(
'nodes' => array(),
'webforms' => array(),
'uc_orders' => array(),
'uc_order_products' => array(),
'entities' => array(),
);
foreach ($this
->dataProvider() as $test_case) {
list($name, $nodes, $expected) = $test_case;
$context = array(
'nodes' => $nodes,
) + $base_context;
$output = rawurldecode(fillpdf_context_to_link(1, $context));
$this
->assertEqual($expected, $output, t($this->message, array(
'%name' => $name,
'%output' => $output,
'%expected' => $expected,
)));
}
}
public function testLegacyNodeLink() {
foreach ($this
->dataProvider() as $test_case) {
list($name, $nodes, $expected) = $test_case;
if (count($nodes) == 1) {
$node = reset($nodes);
$output = rawurldecode(fillpdf_pdf_link(1, $node->nid));
$this
->assertEqual($expected, $output, t($this->message, array(
'%name' => $name . ' (legacy format)',
'%output' => $output,
'%expected' => $expected,
)));
}
}
}
public function dataProvider() {
$base_url = url('fillpdf', array(
'query' => array(
'fid' => 1,
),
'absolute' => TRUE,
));
$test_cases = array();
$test_cases[] = array(
'Single node',
array(
reset($this->nodes),
),
$base_url . '&nid=111',
);
$test_cases[] = array(
'Multiple nodes',
$this->nodes,
$base_url . '&nids[0]=111&nids[1]=112&nids[2]=113',
);
$test_cases[] = array(
'Multiple nodes (in reverse order)',
array_reverse($this->nodes),
$base_url . '&nids[0]=113&nids[1]=112&nids[2]=111',
);
return $test_cases;
}
}