BookTestCase::testBookExport

7 book.test BookTestCase::testBookExport()
8 book.test BookTestCase::testBookExport()

Tests book export ("printer-friendly version") functionality.

File

modules/book/book.test, line 228
Tests for book.module.

Code

function testBookExport() {
  // Create a book.
  $nodes = $this->createBook();

  // Login as web user and view printer-friendly version.
  $this->drupalLogin($this->web_user);
  $this->drupalGet('node/' . $this->book->nid);
  $this->clickLink(t('Printer-friendly version'));

  // Make sure each part of the book is there.
  foreach ($nodes as $node) {
    $this->assertText($node->title, t('Node title found in printer friendly version.'));
    $this->assertRaw(check_markup($node->body[LANGUAGE_NONE][0]['value'], $node->body[LANGUAGE_NONE][0]['format']), t('Node body found in printer friendly version.'));
  }

  // Make sure we can't export an unsupported format.
  $this->drupalGet('book/export/foobar/' . $this->book->nid);
  $this->assertResponse('404', t('Unsupported export format returned "not found".'));

  // Make sure we get a 404 on a not existing book node.
  $this->drupalGet('book/export/html/123');
  $this->assertResponse('404', t('Not existing book node returned "not found".'));

  // Make sure an anonymous user cannot view printer-friendly version.
  $this->drupalLogout();

  // Load the book and verify there is no printer-friendly version link.
  $this->drupalGet('node/' . $this->book->nid);
  $this->assertNoLink(t('Printer-friendly version'), t('Anonymous user is not shown link to printer-friendly version.'));

  // Try getting the URL directly, and verify it fails.
  $this->drupalGet('book/export/html/' . $this->book->nid);
  $this->assertResponse('403', t('Anonymous user properly forbidden.'));
}
Login or register to post comments