Issue #404116 by c31ck, amateescu, neclimdul: Fixed Provide default choices on poll translations.
parent
3da6962598
commit
664598e0c8
|
@ -476,6 +476,9 @@ function poll_validate($node, $form) {
|
|||
function poll_field_attach_prepare_translation_alter(&$entity, $context) {
|
||||
if ($context['entity_type'] == 'node' && $entity->type == 'poll') {
|
||||
$entity->choice = $context['source_entity']->choice;
|
||||
foreach ($entity->choice as $i => $options) {
|
||||
$entity->choice[$i]['chvotes'] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -798,3 +798,75 @@ class PollDeleteChoiceTestCase extends PollTestCase {
|
|||
$this->assertText('Third choice', t('Third choice remains.'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests poll translation logic.
|
||||
*/
|
||||
class PollTranslateTestCase extends PollTestCase {
|
||||
public static function getInfo() {
|
||||
return array(
|
||||
'name' => 'Poll translation',
|
||||
'description' => 'Test the poll translation logic.',
|
||||
'group' => 'Poll',
|
||||
);
|
||||
}
|
||||
|
||||
function setUp() {
|
||||
parent::setUp('poll', 'translation');
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
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, t('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')), t('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')), t('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'], t('Found choice with text @text', array('@text' => $dutch_poll->choice[1]['chtext'])));
|
||||
$this->assertFieldByName('choice[chid:2][chtext]', $dutch_poll->choice[2]['chtext'], t('Found choice with text @text', array('@text' => $dutch_poll->choice[2]['chtext'])));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue