diff options
| author | Tristan Darricau <github@nicofuma.fr> | 2014-07-30 21:01:05 +0200 |
|---|---|---|
| committer | Tristan Darricau <github@nicofuma.fr> | 2014-07-30 21:01:05 +0200 |
| commit | 702d567c69a95b67054ed65848711eacc21fed23 (patch) | |
| tree | d44f7fa6f7c02e838563427366df82a26f35a7ec /tests/test_framework/phpbb_functional_test_case.php | |
| parent | 6d39a5b01505a41035c8c9a8ebcb1ee717b64e7f (diff) | |
| parent | 8bdfda723cd29cc191a252ee00da7da2fa8c6147 (diff) | |
| download | forums-702d567c69a95b67054ed65848711eacc21fed23.tar forums-702d567c69a95b67054ed65848711eacc21fed23.tar.gz forums-702d567c69a95b67054ed65848711eacc21fed23.tar.bz2 forums-702d567c69a95b67054ed65848711eacc21fed23.tar.xz forums-702d567c69a95b67054ed65848711eacc21fed23.zip | |
Merge branch 'ticket/11480' into ticket/11480-ascraeus
* ticket/11480:
[ticket/11480] Move the test into get_folder()
[ticket/11480] Fix the double spaces in phpbb_functional_test_case
[ticket/11480] Fix typos
[ticket/11480] Add functionnal test
[ticket/11480] PM : "Unknown folder" returned when inbox folder is full
Conflicts:
tests/test_framework/phpbb_functional_test_case.php
Diffstat (limited to 'tests/test_framework/phpbb_functional_test_case.php')
| -rw-r--r-- | tests/test_framework/phpbb_functional_test_case.php | 94 |
1 files changed, 73 insertions, 21 deletions
diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php index 07ef826abf..caaedb7de0 100644 --- a/tests/test_framework/phpbb_functional_test_case.php +++ b/tests/test_framework/phpbb_functional_test_case.php @@ -897,6 +897,78 @@ class phpbb_functional_test_case extends phpbb_mink_test_case { $this->add_lang('posting'); + $crawler = $this->submit_message($posting_url, $posting_contains, $form_data); + + $this->assertContains($this->lang('POST_STORED'), $crawler->filter('html')->text()); + + if ($expected !== '') + { + if (isset($this->lang[$expected])) + { + $this->assertContainsLang($expected, $crawler->filter('html')->text()); + } + else + { + $this->assertContains($expected, $crawler->filter('html')->text()); + } + return null; + } + + $url = $crawler->selectLink($form_data['subject'])->link()->getUri(); + + return array( + 'topic_id' => $this->get_parameter_from_link($url, 't'), + 'post_id' => $this->get_parameter_from_link($url, 'p'), + ); + } + + /** + * Creates a private message + * + * Be sure to login before creating + * + * @param string $subject + * @param string $message + * @param array $to + * @param array $additional_form_data Any additional form data to be sent in the request + * @return int private_message_id + */ + public function create_private_message($subject, $message, $to, $additional_form_data = array()) + { + $this->add_lang(array('ucp', 'posting')); + + $posting_url = "ucp.php?i=pm&mode=compose&sid={$this->sid}"; + + $form_data = array_merge(array( + 'subject' => $subject, + 'message' => $message, + 'post' => true, + ), $additional_form_data); + + foreach ($to as $user_id) + { + $form_data['address_list[u][' . $user_id . ']'] = 'to'; + } + + $crawler = self::submit_message($posting_url, 'POST_NEW_PM', $form_data); + + $this->assertContains($this->lang('MESSAGE_STORED'), $crawler->filter('html')->text()); + $url = $crawler->selectLink($this->lang('VIEW_PRIVATE_MESSAGE', '', ''))->link()->getUri(); + + return $this->get_parameter_from_link($url, 'p'); + } + + /** + * Helper for submitting a message (post or private message) + * + * @param string $posting_url + * @param string $posting_contains + * @param array $form_data + * @return \Symfony\Component\DomCrawler\Crawler the crawler object + */ + protected function submit_message($posting_url, $posting_contains, $form_data) + { + $crawler = self::request('GET', $posting_url); $this->assertContains($this->lang($posting_contains), $crawler->filter('html')->text()); @@ -938,27 +1010,7 @@ class phpbb_functional_test_case extends phpbb_mink_test_case // I use a request because the form submission method does not allow you to send data that is not // contained in one of the actual form fields that the browser sees (i.e. it ignores "hidden" inputs) // Instead, I send it as a request with the submit button "post" set to true. - $crawler = self::request('POST', $posting_url, $form_data); - - if ($expected !== '') - { - if (isset($this->lang[$expected])) - { - $this->assertContainsLang($expected, $crawler->filter('html')->text()); - } - else - { - $this->assertContains($expected, $crawler->filter('html')->text()); - } - return null; - } - - $url = $crawler->selectLink($form_data['subject'])->link()->getUri(); - - return array( - 'topic_id' => $this->get_parameter_from_link($url, 't'), - 'post_id' => $this->get_parameter_from_link($url, 'p'), - ); + return self::request('POST', $posting_url, $form_data); } /** |
