diff options
Diffstat (limited to 'modules/system/system.test')
-rw-r--r-- | modules/system/system.test | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/system/system.test b/modules/system/system.test index 78d74d70e..8934316ac 100644 --- a/modules/system/system.test +++ b/modules/system/system.test @@ -467,3 +467,68 @@ class PageNotFoundTestCase extends DrupalWebTestCase { $this->assertNoText(t('User login'), t('Blocks are not shown on the default 404 page')); } } + +class PageTitleFiltering extends DrupalWebTestCase { + protected $content_user; + protected $saved_title; + + /** + * Implementation of getInfo(). + */ + function getInfo() { + return array( + 'name' => t('HTML in page titles'), + 'description' => t('Tests correct handling or conversion by drupal_set_title() and drupal_get_title().'), + 'group' => t('System') + ); + } + + /** + * Implementation of setUp(). + */ + function setUp() { + parent::setUp(); + + $this->content_user = $this->drupalCreateUser(array('create page content', 'access content')); + $this->drupalLogin($this->content_user); + $this->saved_title = drupal_get_title(); + } + + /** + * Reset page title. + */ + function tearDown() { + // Restore the page title. + drupal_set_title($this->saved_title, PASS_THROUGH); + + parent::tearDown(); + } + + /** + * Tests the handling of HTML by drupal_set_title() and drupal_get_title() + */ + function testTitleTags() { + $title = "string with <em>HTML</em>"; + // drupal_set_title's $filter is CHECK_PLAIN by default, so the title should be + // returned with check_plain(). + drupal_set_title($title, CHECK_PLAIN); + $this->assertTrue(strpos(drupal_get_title(), '<em>') === FALSE, t('Tags in title converted to entities when $output is CHECK_PLAIN.')); + // drupal_set_title's $filter is passed as PASS_THROUGH, so the title should be + // returned with HTML. + drupal_set_title($title, PASS_THROUGH); + $this->assertTrue(strpos(drupal_get_title(), '<em>') !== FALSE, t('Tags in title are not converted to entities when $output is PASS_THROUGH.')); + // Generate node content. + $edit = array( + 'title' => '!SimpleTest! ' . $title . $this->randomName(20), + 'body' => '!SimpleTest! test body' . $this->randomName(200), + ); + // Create the node with HTML in the title. + $this->drupalPost('node/add/page', $edit, t('Save')); + + $node = node_load(array('title' => $edit['title'])); + $this->assertNotNull($node, 'Node created and found in database'); + $this->drupalGet("node/" . $node->nid); + $this->assertText(check_plain($edit['title']), 'Check to make sure tags in the node title are converted.'); + } +} + |