diff options
| author | Joas Schilling <nickvergessen@gmx.de> | 2013-03-03 20:06:52 +0100 |
|---|---|---|
| committer | Joas Schilling <nickvergessen@gmx.de> | 2013-03-03 20:06:52 +0100 |
| commit | 42c062cedf0b451141e321dd4e7cac84905bcac6 (patch) | |
| tree | 7c6fa2647ebbd56e909356de4a27551dff0be626 /tests/dbal/migrator_tool_module.php | |
| parent | 3cee183dd4882fdd00deb911bab69287d7754135 (diff) | |
| parent | bee4f8d8185d4ff5278be758db4ea4a814f09b4f (diff) | |
| download | forums-42c062cedf0b451141e321dd4e7cac84905bcac6.tar forums-42c062cedf0b451141e321dd4e7cac84905bcac6.tar.gz forums-42c062cedf0b451141e321dd4e7cac84905bcac6.tar.bz2 forums-42c062cedf0b451141e321dd4e7cac84905bcac6.tar.xz forums-42c062cedf0b451141e321dd4e7cac84905bcac6.zip | |
Merge branch 'develop' of https://github.com/phpbb/phpbb3 into feature/softdelete-1-permission
* 'develop' of https://github.com/phpbb/phpbb3: (480 commits)
[ticket/6723] Show info that message has been deleted before delivery
[ticket/11385] Fix issue with migration module tool not getting extension module info
[ticket/11386] Fix failing tests from constructor changes
[ticket/11386] Fix circular reference error & serialize error
[ticket/11386] Remove tests that check if finder cache is working
[ticket/11386] Forgot to get the migration classes
[ticket/11386] Update tests with new constructors for ext.manager/migrator
[ticket/11386] Use finder to find migration files
[ticket/11363] Fix to make get_module_infos get from all extensions
[ticket/11381] Make finder able to search in all available extensions
[ticket/11103] Revert whitespace changes
[ticket/11103] Few more minor language things
[ticket/11103] Don't call generate_board_url many times
[ticket/11103] Case time in queries as an int
[ticket/11103] Fix effectively installed check
[ticket/11103] Remove padding from notifications for now.
[ticket/11363] Fix a couple bugs and throw errors if the file not found
[ticket/11372] Migrator should only check if effectively installed if not
[ticket/11363] Load module info files for extensions too
[ticket/11103] Notifications Migration file
...
Conflicts:
phpBB/includes/functions_posting.php
phpBB/includes/mcp/mcp_queue.php
phpBB/includes/search/fulltext_mysql.php
phpBB/includes/search/fulltext_native.php
phpBB/includes/search/fulltext_postgres.php
phpBB/includes/search/fulltext_sphinx.php
phpBB/install/database_update.php
phpBB/styles/prosilver/template/ajax.js
Diffstat (limited to 'tests/dbal/migrator_tool_module.php')
| -rw-r--r-- | tests/dbal/migrator_tool_module.php | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/tests/dbal/migrator_tool_module.php b/tests/dbal/migrator_tool_module.php new file mode 100644 index 0000000000..6937b6f8c5 --- /dev/null +++ b/tests/dbal/migrator_tool_module.php @@ -0,0 +1,150 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2011 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* +*/ + +require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/db/migration/tool/module.php'; +require_once dirname(__FILE__) . '/../../phpBB/includes/db/migration/exception.php'; + +class phpbb_dbal_migrator_tool_module_test extends phpbb_database_test_case +{ + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/migrator_module.xml'); + } + + public function setup() + { + // Need global $db, $user for delete_module function in acp_modules + global $phpbb_root_path, $phpEx, $skip_add_log, $db, $user; + + parent::setup(); + + // Force add_log function to not be used + $skip_add_log = true; + + $db = $this->db = $this->new_dbal(); + $this->cache = new phpbb_cache_service(new phpbb_cache_driver_null(), new phpbb_config(array()), $this->db, $phpbb_root_path, $phpEx); + $user = $this->user = new phpbb_user(); + + $this->tool = new phpbb_db_migration_tool_module($this->db, $this->cache, $this->user, $phpbb_root_path, $phpEx, 'phpbb_modules'); + } + + public function exists_data() + { + return array( + // Test the category + array( + '', + 'ACP_CAT', + true, + ), + array( + 0, + 'ACP_CAT', + true, + ), + + // Test the module + array( + '', + 'ACP_MODULE', + false, + ), + array( + false, + 'ACP_MODULE', + true, + ), + array( + 'ACP_CAT', + 'ACP_MODULE', + true, + ), + ); + } + + /** + * @dataProvider exists_data + */ + public function test_exists($parent, $module, $expected) + { + $this->assertEquals($expected, $this->tool->exists('acp', $parent, $module)); + } + + public function test_add() + { + try + { + $this->tool->add('acp', 0, 'ACP_NEW_CAT'); + } + catch (Exception $e) + { + $this->fail($e); + } + $this->assertEquals(true, $this->tool->exists('acp', 0, 'ACP_NEW_CAT')); + + // Should throw an exception when trying to add a module that already exists + try + { + $this->tool->add('acp', 0, 'ACP_NEW_CAT'); + $this->fail('Exception not thrown'); + } + catch (Exception $e) {} + + try + { + $this->tool->add('acp', 'ACP_NEW_CAT', array( + 'module_basename' => 'acp_new_module', + 'module_langname' => 'ACP_NEW_MODULE', + 'module_mode' => 'test', + 'module_auth' => '', + )); + } + catch (Exception $e) + { + $this->fail($e); + } + $this->assertEquals(true, $this->tool->exists('acp', 'ACP_NEW_CAT', 'ACP_NEW_MODULE')); + } + + public function test_remove() + { + try + { + $this->tool->remove('acp', 'ACP_CAT', 'ACP_MODULE'); + } + catch (Exception $e) + { + $this->fail($e); + } + $this->assertEquals(false, $this->tool->exists('acp', 'ACP_CAT', 'ACP_MODULE')); + } + + public function test_reverse() + { + try + { + $this->tool->add('acp', 0, 'ACP_NEW_CAT'); + } + catch (Exception $e) + { + $this->fail($e); + } + + try + { + $this->tool->reverse('add', 'acp', 0, 'ACP_NEW_CAT'); + } + catch (Exception $e) + { + $this->fail($e); + } + $this->assertFalse($this->tool->exists('acp', 0, 'ACP_NEW_CAT')); + } +} |
