diff options
author | Nathaniel Guse <nathaniel.guse@gmail.com> | 2013-07-11 13:15:26 -0500 |
---|---|---|
committer | Nathaniel Guse <nathaniel.guse@gmail.com> | 2013-07-11 13:15:26 -0500 |
commit | 7104aeb77e2f6066cbbda0585fc8523426e4b7c7 (patch) | |
tree | 1f48c70a38b16ee6bd5aee98e1cb4f2b5659a175 /tests | |
parent | cb0335ebcb580eafaf1bd2bed1663b31af77ef40 (diff) | |
parent | 406c48c65535e79732a2d94e5031aa9b19ac2117 (diff) | |
download | forums-7104aeb77e2f6066cbbda0585fc8523426e4b7c7.tar forums-7104aeb77e2f6066cbbda0585fc8523426e4b7c7.tar.gz forums-7104aeb77e2f6066cbbda0585fc8523426e4b7c7.tar.bz2 forums-7104aeb77e2f6066cbbda0585fc8523426e4b7c7.tar.xz forums-7104aeb77e2f6066cbbda0585fc8523426e4b7c7.zip |
Merge branch 'develop-olympus' into develop
# By Vjacheslav Trushkin
# Via Nathaniel Guse (1) and Vjacheslav Trushkin (1)
* develop-olympus:
[ticket/10772] Remove unnecessary comment
[ticket/10772] Functional tests for forum style
Conflicts:
tests/functional/forum_style_test.php
Diffstat (limited to 'tests')
-rw-r--r-- | tests/functional/forum_style_test.php | 48 | ||||
-rw-r--r-- | tests/test_framework/phpbb_functional_test_case.php | 103 |
2 files changed, 123 insertions, 28 deletions
diff --git a/tests/functional/forum_style_test.php b/tests/functional/forum_style_test.php index 1f38c2d057..59f7341eb6 100644 --- a/tests/functional/forum_style_test.php +++ b/tests/functional/forum_style_test.php @@ -12,42 +12,34 @@ */ class phpbb_functional_forum_style_test extends phpbb_functional_test_case { - public function test_forum_style() + public function test_default_forum_style() { - // Test with default style - $crawler = $this->request('GET', 'viewtopic.php?t=1&f=2'); - $this->assert_response_success(); - $this->assertContains('styles/prosilver/theme/print.css', $this->client->getResponse()->getContent()); + $crawler = self::request('GET', 'viewtopic.php?t=1&f=2'); + $this->assertContains('styles/prosilver/', $crawler->filter('head > link[rel=stylesheet]')->attr('href')); - $crawler = $this->request('GET', 'viewtopic.php?t=1&f=2&view=next'); - $this->assert_response_success(); - $this->assertContains('styles/prosilver/theme/print.css', $this->client->getResponse()->getContent()); + $crawler = self::request('GET', 'viewtopic.php?t=1'); + $this->assertContains('styles/prosilver/', $crawler->filter('head > link[rel=stylesheet]')->attr('href')); - // Insert new style and change forum style + $crawler = self::request('GET', 'viewtopic.php?t=1&view=next'); + $this->assertContains('styles/prosilver/', $crawler->filter('head > link[rel=stylesheet]')->attr('href')); + } + + public function test_custom_forum_style() + { $db = $this->get_db(); - $db->sql_multi_insert(STYLES_TABLE, array( - 'style_id' => 2, - 'style_name' => 'test_style', - 'style_copyright' => '', - 'style_active' => 1, - 'style_path' => 'test_style', - 'bbcode_bitfield' => 'kNg=', - 'style_parent_id' => 1, - 'style_parent_tree' => 'prosilver', - )); + $this->add_style(2, 'test_style'); $db->sql_query('UPDATE ' . FORUMS_TABLE . ' SET forum_style = 2 WHERE forum_id = 2'); - // Test with custom style - $crawler = $this->request('GET', 'viewtopic.php?t=1&f=2'); - $this->assert_response_success(); - $this->assertContains('styles/test_style/theme/print.css', $this->client->getResponse()->getContent()); + $crawler = self::request('GET', 'viewtopic.php?t=1&f=2'); + $this->assertContains('styles/test_style/', $crawler->filter('head > link[rel=stylesheet]')->attr('href')); + + $crawler = self::request('GET', 'viewtopic.php?t=1'); + $this->assertContains('styles/test_style/', $crawler->filter('head > link[rel=stylesheet]')->attr('href')); - $crawler = $this->request('GET', 'viewtopic.php?t=1&f=2&view=next'); - $this->assert_response_success(); - $this->assertContains('styles/test_style/theme/print.css', $this->client->getResponse()->getContent()); + $crawler = self::request('GET', 'viewtopic.php?t=1&view=next'); + $this->assertContains('styles/test_style/', $crawler->filter('head > link[rel=stylesheet]')->attr('href')); - // Undo changes $db->sql_query('UPDATE ' . FORUMS_TABLE . ' SET forum_style = 0 WHERE forum_id = 2'); - $db->sql_query('DELETE FROM ' . STYLES_TABLE . ' WHERE style_id = 2'); + $this->delete_style(2, 'test_style'); } } diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php index 7e2e750e30..f27e339bb7 100644 --- a/tests/test_framework/phpbb_functional_test_case.php +++ b/tests/test_framework/phpbb_functional_test_case.php @@ -358,6 +358,109 @@ class phpbb_functional_test_case extends phpbb_test_case } /** + * 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 * * @param string $username Also doubles up as the user's password |