aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorNathaniel Guse <nathaniel.guse@gmail.com>2013-07-11 13:15:26 -0500
committerNathaniel Guse <nathaniel.guse@gmail.com>2013-07-11 13:15:26 -0500
commit7104aeb77e2f6066cbbda0585fc8523426e4b7c7 (patch)
tree1f48c70a38b16ee6bd5aee98e1cb4f2b5659a175 /tests
parentcb0335ebcb580eafaf1bd2bed1663b31af77ef40 (diff)
parent406c48c65535e79732a2d94e5031aa9b19ac2117 (diff)
downloadforums-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.php48
-rw-r--r--tests/test_framework/phpbb_functional_test_case.php103
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