1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-06-06 22:45:02 +02:00

Merge remote-tracking branch 'remotes/cyberalien/ticket/10772' into develop-olympus

# By Vjacheslav Trushkin
# Via Vjacheslav Trushkin
* remotes/cyberalien/ticket/10772:
  [ticket/10772] Remove unnecessary comment
  [ticket/10772] Functional tests for forum style
  [ticket/10772] Use forum specific style for trigger_error
This commit is contained in:
Nathaniel Guse 2013-07-11 13:08:24 -05:00
commit 406c48c655
3 changed files with 162 additions and 1 deletions

View File

@ -146,7 +146,14 @@ if ($view && !$post_id)
if (!$row)
{
$user->setup('viewtopic');
$sql = 'SELECT forum_style
FROM ' . FORUMS_TABLE . "
WHERE forum_id = $forum_id";
$result = $db->sql_query($sql);
$forum_style = (int) $db->sql_fetchfield('forum_style');
$db->sql_freeresult($result);
$user->setup('viewtopic', $forum_style);
trigger_error(($view == 'next') ? 'NO_NEWER_TOPICS' : 'NO_OLDER_TOPICS');
}
else

View File

@ -0,0 +1,51 @@
<?php
/**
*
* @package testing
* @copyright (c) 2013 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*
*/
/**
* @group functional
*/
class phpbb_functional_forum_style_test extends phpbb_functional_test_case
{
public function test_default_forum_style()
{
$crawler = $this->request('GET', 'viewtopic.php?t=1&f=2');
$this->assert_response_success();
$this->assertContains('styles/prosilver/', $crawler->filter('head > link[rel=stylesheet]')->attr('href'));
$crawler = $this->request('GET', 'viewtopic.php?t=1');
$this->assert_response_success();
$this->assertContains('styles/prosilver/', $crawler->filter('head > link[rel=stylesheet]')->attr('href'));
$crawler = $this->request('GET', 'viewtopic.php?t=1&view=next');
$this->assert_response_success();
$this->assertContains('styles/prosilver/', $crawler->filter('head > link[rel=stylesheet]')->attr('href'));
}
public function test_custom_forum_style()
{
$db = $this->get_db();
$this->add_style(2, 'test_style');
$db->sql_query('UPDATE ' . FORUMS_TABLE . ' SET forum_style = 2 WHERE forum_id = 2');
$crawler = $this->request('GET', 'viewtopic.php?t=1&f=2');
$this->assert_response_success();
$this->assertContains('styles/test_style/', $crawler->filter('head > link[rel=stylesheet]')->attr('href'));
$crawler = $this->request('GET', 'viewtopic.php?t=1');
$this->assert_response_success();
$this->assertContains('styles/test_style/', $crawler->filter('head > link[rel=stylesheet]')->attr('href'));
$crawler = $this->request('GET', 'viewtopic.php?t=1&view=next');
$this->assert_response_success();
$this->assertContains('styles/test_style/', $crawler->filter('head > link[rel=stylesheet]')->attr('href'));
$db->sql_query('UPDATE ' . FORUMS_TABLE . ' SET forum_style = 0 WHERE forum_id = 2');
$this->delete_style(2, 'test_style');
}
}

View File

@ -323,6 +323,109 @@ class phpbb_functional_test_case extends phpbb_test_case
$db_conn_mgr->recreate_db();
}
/**
* Creates a new style
*
* @param string $style_id Style ID
* @param string $style_path Style directory
* @param string $parent_style_id Parent style id. Default = 1
* @param string $parent_style_path Parent style directory. Default = 'prosilver'
*/
protected function add_style($style_id, $style_path, $parent_style_id = 1, $parent_style_path = 'prosilver')
{
global $phpbb_root_path;
$db = $this->get_db();
if (version_compare(PHPBB_VERSION, '3.1.0-dev', '<'))
{
$sql = 'INSERT INTO ' . STYLES_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'style_id' => $style_id,
'style_name' => $style_path,
'style_copyright' => '',
'style_active' => 1,
'template_id' => $style_id,
'theme_id' => $style_id,
'imageset_id' => $style_id,
));
$db->sql_query($sql);
$sql = 'INSERT INTO ' . STYLES_IMAGESET_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'imageset_id' => $style_id,
'imageset_name' => $style_path,
'imageset_copyright' => '',
'imageset_path' => $style_path,
));
$db->sql_query($sql);
$sql = 'INSERT INTO ' . STYLES_TEMPLATE_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'template_id' => $style_id,
'template_name' => $style_path,
'template_copyright' => '',
'template_path' => $style_path,
'bbcode_bitfield' => 'kNg=',
'template_inherits_id' => $parent_style_id,
'template_inherit_path' => $parent_style_path,
));
$db->sql_query($sql);
$sql = 'INSERT INTO ' . STYLES_THEME_TABLE . ' ' . $db->sql_build_array('INSERT', array(
'theme_id' => $style_id,
'theme_name' => $style_path,
'theme_copyright' => '',
'theme_path' => $style_path,
'theme_storedb' => 0,
'theme_mtime' => 0,
'theme_data' => '',
));
$db->sql_query($sql);
if ($style_path != 'prosilver' && $style_path != 'subsilver2')
{
@mkdir($phpbb_root_path . 'styles/' . $style_path, 0777);
@mkdir($phpbb_root_path . 'styles/' . $style_path . '/template', 0777);
}
}
else
{
$db->sql_multi_insert(STYLES_TABLE, array(
'style_id' => $style_id,
'style_name' => $style_path,
'style_copyright' => '',
'style_active' => 1,
'style_path' => $style_path,
'bbcode_bitfield' => 'kNg=',
'style_parent_id' => $parent_style_id,
'style_parent_tree' => $parent_style_path,
));
}
}
/**
* Remove temporary style created by add_style()
*
* @param string $style_id Style ID
* @param string $style_path Style directory
*/
protected function delete_style($style_id, $style_path)
{
global $phpbb_root_path;
$db = $this->get_db();
$db->sql_query('DELETE FROM ' . STYLES_TABLE . ' WHERE style_id = ' . $style_id);
if (version_compare(PHPBB_VERSION, '3.1.0-dev', '<'))
{
$db->sql_query('DELETE FROM ' . STYLES_IMAGESET_TABLE . ' WHERE imageset_id = ' . $style_id);
$db->sql_query('DELETE FROM ' . STYLES_TEMPLATE_TABLE . ' WHERE template_id = ' . $style_id);
$db->sql_query('DELETE FROM ' . STYLES_THEME_TABLE . ' WHERE theme_id = ' . $style_id);
if ($style_path != 'prosilver' && $style_path != 'subsilver2')
{
@rmdir($phpbb_root_path . 'styles/' . $style_path . '/template');
@rmdir($phpbb_root_path . 'styles/' . $style_path);
}
}
}
/**
* Creates a new user with limited permissions
*