mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
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
This commit is contained in:
commit
702d567c69
3 changed files with 139 additions and 22 deletions
|
@ -212,7 +212,7 @@ function get_folder($user_id, $folder_id = false)
|
|||
);
|
||||
}
|
||||
|
||||
if ($folder_id !== false && !isset($folder[$folder_id]))
|
||||
if ($folder_id !== false && $folder_id !== PRIVMSGS_HOLD_BOX && !isset($folder[$folder_id]))
|
||||
{
|
||||
trigger_error('UNKNOWN_FOLDER');
|
||||
}
|
||||
|
|
65
tests/functional/private_messages_test.php
Normal file
65
tests/functional/private_messages_test.php
Normal file
|
@ -0,0 +1,65 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2014 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @group functional
|
||||
*/
|
||||
class phpbb_functional_private_messages_test extends phpbb_functional_test_case
|
||||
{
|
||||
public function test_setup_config()
|
||||
{
|
||||
$this->login();
|
||||
$this->admin_login();
|
||||
|
||||
$crawler = self::request('GET', "adm/index.php?sid={$this->sid}&i=board&mode=message");
|
||||
|
||||
$form = $crawler->selectButton('Submit')->form();
|
||||
$values = $form->getValues();
|
||||
|
||||
// Set the maximum number of private messages per folder to 1
|
||||
$values['config[pm_max_msgs]'] = 1;
|
||||
|
||||
$form->setValues($values);
|
||||
|
||||
$crawler = self::submit($form);
|
||||
$this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->filter('.successbox')->text());
|
||||
}
|
||||
|
||||
public function test_inbox_full()
|
||||
{
|
||||
$this->login();
|
||||
$message_id = $this->create_private_message('Test private message #1', 'This is a test private message sent by the testing framework.', array(2));
|
||||
|
||||
$crawler = self::request('GET', "ucp.php?i=pm&mode=view&sid{$this->sid}&p={$message_id}");
|
||||
$this->assertContains($this->lang('UCP_PM_VIEW'), $crawler->filter('html')->text());
|
||||
|
||||
$message_id = $this->create_private_message('Test private message #2', 'This is a test private message sent by the testing framework.', array(2));
|
||||
|
||||
$crawler = self::request('GET', "ucp.php?i=pm&mode=view&sid{$this->sid}&p={$message_id}");
|
||||
$this->assertContains($this->lang('NO_AUTH_READ_HOLD_MESSAGE'), $crawler->filter('html')->text());
|
||||
}
|
||||
|
||||
public function test_restore_config()
|
||||
{
|
||||
$this->login();
|
||||
$this->admin_login();
|
||||
|
||||
$crawler = self::request('GET', "adm/index.php?sid={$this->sid}&i=board&mode=message");
|
||||
|
||||
$form = $crawler->selectButton('Submit')->form();
|
||||
$values = $form->getValues();
|
||||
|
||||
$values['config[pm_max_msgs]'] = 50;
|
||||
|
||||
$form->setValues($values);
|
||||
|
||||
$crawler = self::submit($form);
|
||||
$this->assertContains($this->lang('CONFIG_UPDATED'), $crawler->filter('.successbox')->text());
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Reference in a new issue