aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_framework/phpbb_functional_test_case.php
diff options
context:
space:
mode:
authorTristan Darricau <github@nicofuma.fr>2014-07-30 21:01:05 +0200
committerTristan Darricau <github@nicofuma.fr>2014-07-30 21:01:05 +0200
commit702d567c69a95b67054ed65848711eacc21fed23 (patch)
treed44f7fa6f7c02e838563427366df82a26f35a7ec /tests/test_framework/phpbb_functional_test_case.php
parent6d39a5b01505a41035c8c9a8ebcb1ee717b64e7f (diff)
parent8bdfda723cd29cc191a252ee00da7da2fa8c6147 (diff)
downloadforums-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.php94
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);
}
/**