t('Printer, e-mail and PDF versions tests'), 'description' => t('Unit tests for the print, print_mail and print_pdf modules.'), 'group' => 'Printer, e-mail and PDF versions', ); } /** * Implementation of setUp(). */ function setUp() { parent::setUp(); // User to set up print. // $this->web_user = $this->drupalCreateUserRolePerm(array('administer print')); // $this->drupalGet('logout'); // $this->drupalLoginUser($this->web_user); $this->getq = $_GET['q']; $_GET['q'] = 'print/'. $_GET['q']; } /** * Implementation of tearDown(). */ function tearDown() { $_GET['q'] = $this->getq; parent::tearDown(); } function testPrintRewriteUrls() { global $base_url, $base_root; //Must require it, since this function gets called via Drupal's dynamic loading require_once(drupal_get_path('module', 'print') .'/print.pages.inc'); $pattern = '!<(a\s[^>]*?)>(.*?)()!is'; $footnote = ' [1]'; $part1 = 'Example'; $url[0] = 'http://www.example.com'; $url[1] = '#here'; $url[2] = '/relative/to/host'; $url[3] = 'relative/to/base'; $url[4] = 'index.php?q=sample/path'; $rel_url[0] = $url[0]; $rel_url[1] = $_GET['q'] . $url[1]; $rel_url[2] = $base_root . $url[2]; $rel_url[3] = $base_url .'/'. $url[3]; $rel_url[4] = $base_url .'/'. $url[4]; $abs_url[0] = $url[0]; $abs_url[1] = $base_url .'/'. $this->getq . $url[1]; $abs_url[2] = $base_root . $url[2]; $abs_url[3] = $base_url .'/'. $url[3]; $abs_url[4] = $base_url .'/'. $url[4]; $size = count($url); for ($i = 0; $i < $size; $i++) { preg_match($pattern, $part1 . $url[$i] . $part2, $matches); $ret = _print_rewrite_urls($matches); $urls = _print_friendly_urls(); $this->assertEqual($ret, $part1 . $rel_url[$i] . $part2 . $footnote, t('Original URL (!url)', array('!url' => $rel_url[$i]))); $this->assertEqual($urls[0], $abs_url[$i], t('Absolute URL (!url)', array('!url' => $abs_url[$i]))); } } }