aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Alexander <admin@m-a-styles.de>2012-12-01 21:37:57 +0100
committerMarc Alexander <admin@m-a-styles.de>2012-12-01 21:37:57 +0100
commitd771453b520938e21d52ad3464298a9cc0d0fa03 (patch)
tree47edd2cbd657ce15b99798cb1287ce6cbba26834
parent215ac6a0daa51881dc6abb987baf10e682fc9972 (diff)
downloadforums-d771453b520938e21d52ad3464298a9cc0d0fa03.tar
forums-d771453b520938e21d52ad3464298a9cc0d0fa03.tar.gz
forums-d771453b520938e21d52ad3464298a9cc0d0fa03.tar.bz2
forums-d771453b520938e21d52ad3464298a9cc0d0fa03.tar.xz
forums-d771453b520938e21d52ad3464298a9cc0d0fa03.zip
[feature/avatars] Add tests for avatar manager
PHPBB3-10018
-rw-r--r--tests/avatar/manager_test.php82
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/avatar/manager_test.php b/tests/avatar/manager_test.php
new file mode 100644
index 0000000000..12c88dd855
--- /dev/null
+++ b/tests/avatar/manager_test.php
@@ -0,0 +1,82 @@
+<?php
+/**
+*
+* @package testing
+* @version $Id$
+* @copyright (c) 2012 phpBB Group
+* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
+*
+*/
+
+class phpbb_avatar_test extends PHPUnit_Framework_TestCase
+{
+ protected $avatar_list = array(
+ 'avatar.driver.gravatar',
+ 'avatar.driver.local',
+ 'avatar.driver.remote',
+ 'avatar.driver.upload',
+ );
+
+ protected $dirty_user_row = array(
+ 'user_avatar' => 'foobar',
+ 'user_avatar_width' => 50,
+ 'user_avatar_height' => 50,
+ );
+
+ protected $clean_user_row = array(
+ 'avatar' => 'foobar',
+ 'avatar_width' => 50,
+ 'avatar_height' => 50,
+ );
+
+ public function setUp()
+ {
+ global $phpbb_root_path, $phpEx;
+
+ // Mock phpbb_container
+ $this->phpbb_container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
+ $this->phpbb_container->expects($this->any())
+ ->method('get')
+ ->with('avatar.driver.gravatar')->will($this->returnValue('avatar_foo'));
+
+ // Prepare dependencies for avatar manager and driver
+ $config = new phpbb_config(array());
+ $request = $this->getMock('phpbb_request');
+ $cache = $this->getMock('phpbb_cache_driver_interface');
+
+ // Create new avatar driver object for manager
+ $this->avatar_gravatar = new phpbb_avatar_driver_gravatar($config, $request, $phpbb_root_path, $phpEx, $cache);
+ $this->avatar_gravatar->set_name('avatar.driver.gravatar');
+ $avatar_drivers = array($this->avatar_gravatar);
+
+ // Set up avatar manager
+ $this->manager = new phpbb_avatar_manager($config, $avatar_drivers, $this->phpbb_container);
+ }
+
+ public function test_get_driver()
+ {
+ $driver = $this->manager->get_driver('avatar.driver.gravatar', true);
+ $this->assertEquals('avatar_foo', $driver);
+
+ $driver = $this->manager->get_driver('avatar.driver.foo', true);
+ $this->assertNull($driver);
+ }
+
+ public function test_get_valid_drivers()
+ {
+ $valid_drivers = $this->manager->get_valid_drivers(true);
+ $this->assertArrayHasKey('avatar.driver.gravatar', $valid_drivers);
+ $this->assertEquals('avatar.driver.gravatar', $valid_drivers['avatar.driver.gravatar']);
+ }
+
+ public function test_get_avatar_settings()
+ {
+ $avatar_settings = $this->manager->get_avatar_settings($this->avatar_gravatar);
+
+ $expected_settings = array(
+ 'allow_avatar_gravatar' => array('lang' => 'ALLOW_GRAVATAR', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
+ );
+
+ $this->assertEquals($expected_settings, $avatar_settings);
+ }
+}