public function PrintablePdfTest::testCustomPageExists in Printer and PDF versions for Drupal 8+ 8
Same name and namespace in other branches
- 2.x src/Tests/PrintablePdfTest.php \Drupal\printable\Tests\PrintablePdfTest::testCustomPageExists()
Tests that the 'node/{node}/printable/pdf' path returns the right content.
File
- src/
Tests/ PrintablePdfTest.php, line 51
Class
- PrintablePdfTest
- Tests the printable_pdf module functionality.
Namespace
Drupal\printable\TestsCode
public function testCustomPageExists() {
global $base_url;
$node_type_storage = \Drupal::entityManager()
->getStorage('node_type');
// Test /node/add page with only one content type.
$node_type_storage
->load('article')
->delete();
$this
->drupalGet('node/add');
$this
->assertResponse(200);
$this
->assertUrl('node/add/page');
// Create a node.
$edit = [];
$edit['title[0][value]'] = $this
->randomMachineName(8);
$bodytext = $this
->randomMachineName(16) . 'This is functional test which I am writing for printable module.';
$edit['body[0][value]'] = $bodytext;
$this
->drupalPostForm('node/add/page', $edit, t('Save'));
// Check that the Basic page has been created.
$this
->assertRaw(t('!post %title has been created.', [
'!post' => 'Basic page',
'%title' => $edit['title[0][value]'],
]), 'Basic page created.');
// Check that the node exists in the database.
$node = $this
->drupalGetNodeByTitle($edit['title[0][value]']);
$this
->assertTrue($node, 'Node found in database.');
// Verify that pages do not show submitted information by default.
$this
->drupalGet('node/' . $node
->id());
$this
->assertResponse(200);
// Set the PDF generating tool.
$this
->drupalGet('admin/config/user-interface/printable/pdf');
$this
->drupalPostForm(NULL, [
'print_pdf_pdf_tool' => 'mPDF',
'print_pdf_content_disposition' => 1,
'print_pdf_filename' => 'modules/custom/printable/src/Tests/testPDF',
], t('Submit'));
$this
->drupalGet('admin/config/user-interface/printable/pdf');
$this
->assertResponse(200);
// Test whether PDF page is being generated.
$this
->drupalGet('node/' . $node
->id() . '/printable/pdf');
$parser = new Parser();
$pdf = $parser
->parseFile('modules/custom/printable/src/Tests/testPDF.pdf');
$text = $pdf
->getText();
$this
->drupalGet('node/add');
$new_edit = [];
$new_edit['title[0][value]'] = $this
->randomMachineName(8);
$bodytext = $text;
$new_edit['body[0][value]'] = $bodytext;
$this
->drupalPostForm('node/add/page', $new_edit, t('Save'));
$new_node = $this
->drupalGetNodeByTitle($new_edit['title[0][value]']);
$this
->drupalGet('node/' . $new_node
->id());
$this
->assertResponse(200);
// Checks the presence of body in the page.
$this
->assertRaw($edit['body[0][value]'], 'Body discovered successfully in the printable page');
// Check if footer is rendering correctly.
$this
->assertRaw($base_url . '/node/' . $node
->id(), 'Source Url discovered in the printable page');
}