t('Poll create'), 'desc' => 'Adds "more choices", previews and creates a poll.', 'group' => 'Poll module tests'); } function tearDown() { parent::tearDown(); } function testPollCreate($standalone = TRUE) { $web_user = $this->drupalCreateUserRolePerm(array('create poll content')); $this->drupalLoginUser($web_user); $title = $this->randomName(); $edit = array ( 'title' => $title, 'choice[0][chtext]' => 'choice 1', 'choice[1][chtext]' => 'choice 2', ); $this->drupalPostRequest('node/add/poll', $edit, 'More choices'); $edit = array ( 'title' => $title, 'choice[0][chtext]' => 'choice 1', 'choice[1][chtext]' => 'choice 2', 'choice[2][chtext]' => 'choice 3', 'choice[3][chtext]' => 'choice 4', 'choice[4][chtext]' => 'choice 5', 'choice[5][chtext]' => 'choice 6', 'choice[6][chtext]' => 'choice 7', ); if ($standalone) { $this->drupalPostRequest('node/add/poll', $edit, 'Preview'); for ($i = 1; $i <= 7; $i++) { $bar = theme('poll_bar', $choice['chtext'], 0, 0, FALSE, FALSE); $this->assertTrue($bar, "bar $i is themed"); $this->assertWantedRaw($bar, "bar $i found in preview"); } } $this->drupalPostRequest('node/add/poll', $edit, 'Save'); $this->nid = preg_replace('/\D/', '', $this->getUrl()); $this->assertWantedRaw(t('@type %title has been created.', array('@type' => node_get_types('name', 'poll'), '%title' => $title)), 'Poll has been created.'); if ($standalone) { node_delete(array('nid' => $this->nid)); } } } class pollVoteTest extends pollCreateTest { /** * Implementation of get_info() for information */ function get_info() { return array('name' => t('Poll vote'), 'desc' => 'Vote on a poll', 'group' => 'Poll module tests'); } function tearDown() { parent::tearDown(); } function testPollVote() { $this->testPollCreate(FALSE); $this->drupalGet(url('logout', array('absolute' => TRUE))); $web_user = $this->drupalCreateUserRolePerm(array('cancel own vote', 'inspect all votes', 'vote on polls')); $this->drupalLoginUser($web_user); $edit = array ( 'choice' => '1', ); $this->drupalPostRequest('node/'. $this->nid, $edit, 'Vote'); $this->assertWantedRaw('Your vote was recorded.', 'Your vote was recorded.'); $this->drupalGet(url("node/$this->nid/votes", array("absolute" => TRUE))); $this->assertWantedRaw(t('This table lists all the recorded votes for this poll. If anonymous users are allowed to vote, they will be identified by the IP address of the computer they used when they voted.'), 'Vote table text.'); $this->assertWantedRaw('choice 2', 'vote recorded'); node_delete(array('nid' => $this->nid)); } }