From 193a3beb8f75e17b09a0e66d2815bc2bf8d4dce4 Mon Sep 17 00:00:00 2001
From: Nathaniel Guse <nathaniel.guse@gmail.com>
Date: Wed, 13 Feb 2013 21:12:50 -0600
Subject: [PATCH] [feature/migrations] Fix failing tests (again)

PHPBB3-11318
---
 tests/extension/manager_test.php              | 48 +++++++++----------
 tests/extension/metadata_manager_test.php     |  3 ++
 .../phpbb_functional_test_case.php            | 26 +++++-----
 3 files changed, 39 insertions(+), 38 deletions(-)

diff --git a/tests/extension/manager_test.php b/tests/extension/manager_test.php
index e31e27ef83..9032afbd73 100644
--- a/tests/extension/manager_test.php
+++ b/tests/extension/manager_test.php
@@ -25,23 +25,7 @@ class phpbb_extension_manager_test extends phpbb_database_test_case
 	{
 		parent::setUp();
 
-		$config = new phpbb_config(array());
-		$db = $this->new_dbal();
-		$db_tools = new phpbb_db_tools($db);
-		$phpbb_root_path = __DIR__ . './../../phpBB/';
-		$php_ext = 'php';
-		$table_prefix = 'phpbb_';
-
-		$this->extension_manager = new phpbb_extension_manager(
-			new phpbb_mock_container_builder(),
-			$db,
-			$config,
-			new phpbb_db_migrator($config, $db, $db_tools, 'phpbb_migrations', $phpbb_root_path, $php_ext, $table_prefix, array()),
-			'phpbb_ext',
-			dirname(__FILE__) . '/',
-			'.' . $php_ext,
-			new phpbb_mock_cache()
-		);
+		$this->extension_manager = $this->create_extension_manager();
 	}
 
 	public function test_available()
@@ -98,16 +82,30 @@ class phpbb_extension_manager_test extends phpbb_database_test_case
 
 	public function test_enabled_no_cache()
 	{
-		$extension_manager = new phpbb_extension_manager(
-			new phpbb_mock_container_builder(),
-			$this->new_dbal(),
-			new phpbb_config(array()),
-			'phpbb_ext',
-			dirname(__FILE__) . '/',
-			'.php'
-		);
+		$extension_manager = $this->create_extension_manager(false);
 
 		$this->assertEquals(array('foo'), array_keys($extension_manager->all_enabled()));
 	}
 
+	protected function create_extension_manager($with_cache = true)
+	{
+
+		$config = new phpbb_config(array());
+		$db = $this->new_dbal();
+		$db_tools = new phpbb_db_tools($db);
+		$phpbb_root_path = __DIR__ . './../../phpBB/';
+		$php_ext = 'php';
+		$table_prefix = 'phpbb_';
+
+		return new phpbb_extension_manager(
+			new phpbb_mock_container_builder(),
+			$db,
+			$config,
+			new phpbb_db_migrator($config, $db, $db_tools, 'phpbb_migrations', $phpbb_root_path, $php_ext, $table_prefix, array()),
+			'phpbb_ext',
+			dirname(__FILE__) . '/',
+			'.' . $php_ext,
+			($with_cache) ? new phpbb_mock_cache() : null
+		);
+	}
 }
diff --git a/tests/extension/metadata_manager_test.php b/tests/extension/metadata_manager_test.php
index 7a04229a9c..cdea8d5258 100644
--- a/tests/extension/metadata_manager_test.php
+++ b/tests/extension/metadata_manager_test.php
@@ -34,9 +34,11 @@ class metadata_manager_test extends phpbb_database_test_case
 			'version'		=> '3.1.0',
 		));
 		$this->db = $this->new_dbal();
+		$this->db_tools = new phpbb_db_tools($this->db);
 		$this->phpbb_root_path = dirname(__FILE__) . '/';
 		$this->phpEx = '.php';
 		$this->user = new phpbb_user();
+		$this->table_prefix = 'phpbb_';
 
 		$this->template = new phpbb_template(
 			$this->phpbb_root_path,
@@ -51,6 +53,7 @@ class metadata_manager_test extends phpbb_database_test_case
 			new phpbb_mock_container_builder(),
 			$this->db,
 			$this->config,
+			new phpbb_db_migrator($this->config, $this->db, $this->db_tools, 'phpbb_migrations', $this->phpbb_root_path, $this->php_ext, $this->table_prefix, array()),
 			'phpbb_ext',
 			$this->phpbb_root_path,
 			$this->phpEx,
diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php
index cb0a475278..b570b464e6 100644
--- a/tests/test_framework/phpbb_functional_test_case.php
+++ b/tests/test_framework/phpbb_functional_test_case.php
@@ -134,20 +134,20 @@ class phpbb_functional_test_case extends phpbb_test_case
 	{
 		global $phpbb_root_path, $phpEx;
 
-		if (!$this->extension_manager)
-		{
-			$this->extension_manager = new phpbb_extension_manager(
-				new phpbb_mock_container_builder(),
-				$this->get_db(),
-				new phpbb_config(array()),
-				self::$config['table_prefix'] . 'ext',
-				$phpbb_root_path,
-				".$phpEx",
-				$this->get_cache_driver()
-			);
-		}
+		$config = new phpbb_config(array());
+		$db = $this->get_db();
+		$db_tools = new phpbb_db_tools($db);
 
-		return $this->extension_manager;
+		return new phpbb_extension_manager(
+			new phpbb_mock_container_builder(),
+			$db,
+			$config,
+			new phpbb_db_migrator($config, $db, $db_tools, self::$config['table_prefix'] . 'migrations', $phpbb_root_path, $php_ext, self::$config['table_prefix'], array()),
+			self::$config['table_prefix'] . 'ext',
+			dirname(__FILE__) . '/',
+			'.' . $php_ext,
+			$this->get_cache_driver()
+		);
 	}
 
 	static protected function install_board()