function PollTranslateTestCase::testPollTranslate

Tests poll creation and translation.

Checks that the choice names get copied from the original poll and that the vote count values are set to 0.

File

modules/poll/poll.test, line 834

Class

PollTranslateTestCase
Tests poll translation logic.

Code

function testPollTranslate() {
    $admin_user = $this->drupalCreateUser(array(
        'administer content types',
        'administer languages',
        'edit any poll content',
        'create poll content',
        'administer nodes',
        'translate content',
    ));
    // Set up a poll with two choices.
    $title = $this->randomName();
    $choices = array(
        $this->randomName(),
        $this->randomName(),
    );
    $poll_nid = $this->pollCreate($title, $choices, FALSE);
    $this->assertTrue($poll_nid, 'Poll for translation logic test created.');
    $this->drupalLogout();
    $this->drupalLogin($admin_user);
    // Enable a second language.
    $this->drupalGet('admin/config/regional/language');
    $edit = array();
    $edit['langcode'] = 'nl';
    $this->drupalPost('admin/config/regional/language/add', $edit, t('Add language'));
    $this->assertRaw(t('The language %language has been created and can now be used.', array(
        '%language' => 'Dutch',
    )), 'Language Dutch has been created.');
    // Set "Poll" content type to use multilingual support with translation.
    $this->drupalGet('admin/structure/types/manage/poll');
    $edit = array();
    $edit['language_content_type'] = 2;
    $this->drupalPost('admin/structure/types/manage/poll', $edit, t('Save content type'));
    $this->assertRaw(t('The content type %type has been updated.', array(
        '%type' => 'Poll',
    )), 'Poll content type has been updated.');
    // Edit poll.
    $this->drupalGet("node/{$poll_nid}/edit");
    $edit = array();
    // Set the poll's first choice count to 200.
    $edit['choice[chid:1][chvotes]'] = 200;
    // Set the language to Dutch.
    $edit['language'] = 'nl';
    $this->drupalPost(NULL, $edit, t('Save'));
    // Translate the Dutch poll.
    $this->drupalGet('node/add/poll', array(
        'query' => array(
            'translation' => $poll_nid,
            'target' => 'en',
        ),
    ));
    $dutch_poll = node_load($poll_nid);
    // Check that the vote count values didn't get copied from the Dutch poll
    // and are set to 0.
    $this->assertFieldByName('choice[chid:1][chvotes]', '0', 'Found choice with vote count 0');
    $this->assertFieldByName('choice[chid:2][chvotes]', '0', 'Found choice with vote count 0');
    // Check that the choice names got copied from the Dutch poll.
    $this->assertFieldByName('choice[chid:1][chtext]', $dutch_poll->choice[1]['chtext'], format_string('Found choice with text @text', array(
        '@text' => $dutch_poll->choice[1]['chtext'],
    )));
    $this->assertFieldByName('choice[chid:2][chtext]', $dutch_poll->choice[2]['chtext'], format_string('Found choice with text @text', array(
        '@text' => $dutch_poll->choice[2]['chtext'],
    )));
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.