From d771453b520938e21d52ad3464298a9cc0d0fa03 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sat, 1 Dec 2012 21:37:57 +0100 Subject: [feature/avatars] Add tests for avatar manager PHPBB3-10018 --- tests/avatar/manager_test.php | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 tests/avatar/manager_test.php (limited to 'tests') 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 @@ + '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); + } +} -- cgit v1.2.1 From 232fa5b5884d97329b2bf5c79907dfa0128b618b Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sun, 2 Dec 2012 01:19:10 +0100 Subject: [feature/avatars] Do not use gravatar avatar in tests PHPBB3-10018 --- tests/avatar/driver/foobar.php | 19 ++++++++++++++++ tests/avatar/manager_test.php | 49 ++++++++++++++---------------------------- 2 files changed, 35 insertions(+), 33 deletions(-) create mode 100644 tests/avatar/driver/foobar.php (limited to 'tests') diff --git a/tests/avatar/driver/foobar.php b/tests/avatar/driver/foobar.php new file mode 100644 index 0000000000..fe4d47d923 --- /dev/null +++ b/tests/avatar/driver/foobar.php @@ -0,0 +1,19 @@ + 'foobar', - 'user_avatar_width' => 50, - 'user_avatar_height' => 50, - ); - - protected $clean_user_row = array( - 'avatar' => 'foobar', - 'avatar_width' => 50, - 'avatar_height' => 50, - ); +require_once dirname(__FILE__) . '/driver/foobar.php'; +class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase +{ public function setUp() { global $phpbb_root_path, $phpEx; @@ -37,17 +20,17 @@ class phpbb_avatar_test extends PHPUnit_Framework_TestCase $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')); + ->with('avatar.driver.foobar')->will($this->returnValue('avatar.driver.foobar')); // 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); + $this->avatar_foobar = $this->getMock('phpbb_avatar_driver_foobar', array('get_name'), array($config, $request, $phpbb_root_path, $phpEx, $cache)); + $this->avatar_foobar->expects($this->any()) + ->method('get_name') + ->will($this->returnValue('avatar.driver.foobar')); + $avatar_drivers = array($this->avatar_foobar); // Set up avatar manager $this->manager = new phpbb_avatar_manager($config, $avatar_drivers, $this->phpbb_container); @@ -55,26 +38,26 @@ class phpbb_avatar_test extends PHPUnit_Framework_TestCase 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.foobar', true); + $this->assertEquals('avatar.driver.foobar', $driver); - $driver = $this->manager->get_driver('avatar.driver.foo', true); + $driver = $this->manager->get_driver('avatar.driver.foo_wrong', 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']); + $this->assertArrayHasKey('avatar.driver.foobar', $valid_drivers); + $this->assertEquals('avatar.driver.foobar', $valid_drivers['avatar.driver.foobar']); } public function test_get_avatar_settings() { - $avatar_settings = $this->manager->get_avatar_settings($this->avatar_gravatar); + $avatar_settings = $this->manager->get_avatar_settings($this->avatar_foobar); $expected_settings = array( - 'allow_avatar_gravatar' => array('lang' => 'ALLOW_GRAVATAR', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false), + 'allow_avatar_' . get_class($this->avatar_foobar) => array('lang' => 'ALLOW_' . strtoupper(get_class($this->avatar_foobar)), 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false), ); $this->assertEquals($expected_settings, $avatar_settings); -- cgit v1.2.1 From ce653db49129f215c18c4d0dab24001d73ba94e6 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Sun, 2 Dec 2012 01:22:42 +0100 Subject: [feature/avatars] Remove unnecessary "implements" from foobar avatar PHPBB3-10018 --- tests/avatar/driver/foobar.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/avatar/driver/foobar.php b/tests/avatar/driver/foobar.php index fe4d47d923..fd4e452818 100644 --- a/tests/avatar/driver/foobar.php +++ b/tests/avatar/driver/foobar.php @@ -1,6 +1,6 @@ Date: Tue, 4 Dec 2012 00:59:37 +0100 Subject: [feature/avatars] Use seperate function for retrieving all drivers PHPBB3-10018 --- tests/avatar/manager_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/avatar/manager_test.php b/tests/avatar/manager_test.php index 9f28e1522d..af0a2edccc 100644 --- a/tests/avatar/manager_test.php +++ b/tests/avatar/manager_test.php @@ -47,7 +47,7 @@ class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase public function test_get_valid_drivers() { - $valid_drivers = $this->manager->get_valid_drivers(true); + $valid_drivers = $this->manager->get_all_drivers(); $this->assertArrayHasKey('avatar.driver.foobar', $valid_drivers); $this->assertEquals('avatar.driver.foobar', $valid_drivers['avatar.driver.foobar']); } -- cgit v1.2.1 From fb139a88203fb5475712c2bc39e653996cd9103f Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Tue, 4 Dec 2012 15:12:04 +0100 Subject: [feature/avatars] Fix behavior of avatar manager and variables The $force_all variable was only partially removed and the behavior was not consistent in all files. PHPBB3-10018 --- tests/avatar/manager_test.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/avatar/manager_test.php b/tests/avatar/manager_test.php index af0a2edccc..cae72c982b 100644 --- a/tests/avatar/manager_test.php +++ b/tests/avatar/manager_test.php @@ -38,10 +38,13 @@ class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase public function test_get_driver() { - $driver = $this->manager->get_driver('avatar.driver.foobar', true); + $driver = $this->manager->get_driver('avatar.driver.foobar', false); $this->assertEquals('avatar.driver.foobar', $driver); - $driver = $this->manager->get_driver('avatar.driver.foo_wrong', true); + $driver = $this->manager->get_driver('avatar.driver.foo_wrong', false); + $this->assertNull($driver); + + $driver = $this->manager->get_driver('avatar.driver.foobar'); $this->assertNull($driver); } -- cgit v1.2.1 From ea6bf00977a44d437806e87e9cac1b9d5fcef238 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 27 Dec 2012 20:39:02 +0100 Subject: [feature/avatars] Improve testing to also check for enabled drivers PHPBB3-10018 --- tests/avatar/manager_test.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/avatar/manager_test.php b/tests/avatar/manager_test.php index cae72c982b..b910db59ee 100644 --- a/tests/avatar/manager_test.php +++ b/tests/avatar/manager_test.php @@ -31,6 +31,7 @@ class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase ->method('get_name') ->will($this->returnValue('avatar.driver.foobar')); $avatar_drivers = array($this->avatar_foobar); + $config['allow_avatar_' . get_class($this->avatar_foobar)] = true; // Set up avatar manager $this->manager = new phpbb_avatar_manager($config, $avatar_drivers, $this->phpbb_container); @@ -45,14 +46,24 @@ class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase $this->assertNull($driver); $driver = $this->manager->get_driver('avatar.driver.foobar'); + $this->assertEquals('avatar.driver.foobar', $driver); + + $driver = $this->manager->get_driver('avatar.driver.foo_wrong'); $this->assertNull($driver); } - public function test_get_valid_drivers() + public function test_get_all_drivers() + { + $drivers = $this->manager->get_all_drivers(); + $this->assertArrayHasKey('avatar.driver.foobar', $drivers); + $this->assertEquals('avatar.driver.foobar', $drivers['avatar.driver.foobar']); + } + + public function test_get_enabled_drivers() { - $valid_drivers = $this->manager->get_all_drivers(); - $this->assertArrayHasKey('avatar.driver.foobar', $valid_drivers); - $this->assertEquals('avatar.driver.foobar', $valid_drivers['avatar.driver.foobar']); + $drivers = $this->manager->get_enabled_drivers(); + $this->assertArrayHasKey('avatar.driver.foobar', $drivers); + $this->assertEquals('avatar.driver.foobar', $drivers['avatar.driver.foobar']); } public function test_get_avatar_settings() -- cgit v1.2.1 From 023d7a972dd5c279e0b0b24801f9e53e7865d39a Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Mon, 7 Jan 2013 22:49:48 +0100 Subject: [feature/avatars] Remove $request property and pass as argument if needed Remove the $request property from the phpbb_avatar_driver class and rather pass it as function argument if it's needed in a function. Currently this is only the case for the class methods prepare_form() and process_form(). PHPBB3-10018 --- tests/avatar/driver/foobar.php | 6 +++--- tests/avatar/manager_test.php | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/avatar/driver/foobar.php b/tests/avatar/driver/foobar.php index fd4e452818..a68d0aa6c6 100644 --- a/tests/avatar/driver/foobar.php +++ b/tests/avatar/driver/foobar.php @@ -7,13 +7,13 @@ class phpbb_avatar_driver_foobar extends phpbb_avatar_driver return array(); } - public function prepare_form($template, $row, &$error) + public function prepare_form($request, $template, $row, &$error) { return false; } - public function process_form($template, $row, &$error) + public function process_form($request, $template, $row, &$error) { return false; } -} \ No newline at end of file +} diff --git a/tests/avatar/manager_test.php b/tests/avatar/manager_test.php index b910db59ee..fd7132ea82 100644 --- a/tests/avatar/manager_test.php +++ b/tests/avatar/manager_test.php @@ -26,12 +26,12 @@ class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase $config = new phpbb_config(array()); $request = $this->getMock('phpbb_request'); $cache = $this->getMock('phpbb_cache_driver_interface'); - $this->avatar_foobar = $this->getMock('phpbb_avatar_driver_foobar', array('get_name'), array($config, $request, $phpbb_root_path, $phpEx, $cache)); + $this->avatar_foobar = $this->getMock('phpbb_avatar_driver_foobar', array('get_name'), array($config, $phpbb_root_path, $phpEx, $cache)); $this->avatar_foobar->expects($this->any()) ->method('get_name') ->will($this->returnValue('avatar.driver.foobar')); $avatar_drivers = array($this->avatar_foobar); - $config['allow_avatar_' . get_class($this->avatar_foobar)] = true; + $config['allow_avatar_' . get_class($this->avatar_foobar)] = true; // Set up avatar manager $this->manager = new phpbb_avatar_manager($config, $avatar_drivers, $this->phpbb_container); -- cgit v1.2.1 From caa3516d134360c86b00c3f8104f3ac7157b0e47 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Tue, 8 Jan 2013 21:58:03 +0100 Subject: [feature/avatars] Differentiate tests for get drivers functions Tests for get_all_drivers() and get_enabled_drivers() should be different. PHPBB3-10018 --- tests/avatar/driver/barfoo.php | 19 +++++++++++++++++++ tests/avatar/manager_test.php | 13 ++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/avatar/driver/barfoo.php (limited to 'tests') diff --git a/tests/avatar/driver/barfoo.php b/tests/avatar/driver/barfoo.php new file mode 100644 index 0000000000..936b6e0559 --- /dev/null +++ b/tests/avatar/driver/barfoo.php @@ -0,0 +1,19 @@ +getMock('phpbb_request'); $cache = $this->getMock('phpbb_cache_driver_interface'); + $this->avatar_foobar = $this->getMock('phpbb_avatar_driver_foobar', array('get_name'), array($config, $phpbb_root_path, $phpEx, $cache)); $this->avatar_foobar->expects($this->any()) ->method('get_name') ->will($this->returnValue('avatar.driver.foobar')); - $avatar_drivers = array($this->avatar_foobar); + $this->avatar_barfoo = $this->getMock('phpbb_avatar_driver_barfoo', array('get_name')); + $this->avatar_barfoo->expects($this->any()) + ->method('get_name') + ->will($this->returnValue('avatar.driver.barfoo')); + + $avatar_drivers = array($this->avatar_foobar, $this->avatar_barfoo); + $config['allow_avatar_' . get_class($this->avatar_foobar)] = true; + $config['allow_avatar_' . get_class($this->avatar_barfoo)] = false; // Set up avatar manager $this->manager = new phpbb_avatar_manager($config, $avatar_drivers, $this->phpbb_container); @@ -56,13 +64,16 @@ class phpbb_avatar_manager_test extends PHPUnit_Framework_TestCase { $drivers = $this->manager->get_all_drivers(); $this->assertArrayHasKey('avatar.driver.foobar', $drivers); + $this->assertArrayHasKey('avatar.driver.barfoo', $drivers); $this->assertEquals('avatar.driver.foobar', $drivers['avatar.driver.foobar']); + $this->assertEquals('avatar.driver.barfoo', $drivers['avatar.driver.barfoo']); } public function test_get_enabled_drivers() { $drivers = $this->manager->get_enabled_drivers(); $this->assertArrayHasKey('avatar.driver.foobar', $drivers); + $this->assertArrayNotHasKey('avatar.driver.barfoo', $drivers); $this->assertEquals('avatar.driver.foobar', $drivers['avatar.driver.foobar']); } -- cgit v1.2.1 From 2302cd7a42004b288c5f6be6d0e4b63fe363a983 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Tue, 19 Feb 2013 12:24:21 +0100 Subject: [feature/avatars] Pass phpbb_user to prepare and process form functions The phpbb_user object might be used for language variables and other things. PHPBB3-10018 --- tests/avatar/driver/barfoo.php | 4 ++-- tests/avatar/driver/foobar.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/avatar/driver/barfoo.php b/tests/avatar/driver/barfoo.php index 936b6e0559..0b701a4d70 100644 --- a/tests/avatar/driver/barfoo.php +++ b/tests/avatar/driver/barfoo.php @@ -7,12 +7,12 @@ class phpbb_avatar_driver_barfoo extends phpbb_avatar_driver return array(); } - public function prepare_form($request, $template, $row, &$error) + public function prepare_form($request, $template, $user, $row, &$error) { return false; } - public function process_form($request, $template, $row, &$error) + public function process_form($request, $template, $user, $row, &$error) { return false; } diff --git a/tests/avatar/driver/foobar.php b/tests/avatar/driver/foobar.php index a68d0aa6c6..995f35818b 100644 --- a/tests/avatar/driver/foobar.php +++ b/tests/avatar/driver/foobar.php @@ -7,12 +7,12 @@ class phpbb_avatar_driver_foobar extends phpbb_avatar_driver return array(); } - public function prepare_form($request, $template, $row, &$error) + public function prepare_form($request, $template, $user, $row, &$error) { return false; } - public function process_form($request, $template, $row, &$error) + public function process_form($request, $template, $user, $row, &$error) { return false; } -- cgit v1.2.1