diff --git a/lib/filterlib.php b/lib/filterlib.php index 51910de9559..a4a8617e235 100644 --- a/lib/filterlib.php +++ b/lib/filterlib.php @@ -81,7 +81,7 @@ class filter_manager { public static function instance() { global $CFG; if (is_null(self::$singletoninstance)) { - if (!empty($CFG->perfdebug)) { + if (!empty($CFG->perfdebug) and $CFG->perfdebug > 7) { self::$singletoninstance = new performance_measuring_filter_manager(); } else { self::$singletoninstance = new self(); diff --git a/lib/tests/filter_test.php b/lib/tests/filter_test.php index 2c0127b3606..41ca6fcd9e1 100644 --- a/lib/tests/filter_test.php +++ b/lib/tests/filter_test.php @@ -723,3 +723,22 @@ class filter_filter_set_applies_to_strings extends advanced_testcase { $this->assertEquals(1, $CFG->filterall); } } + + +class filter_manager_testcase extends advanced_testcase { + public function test_filter_manager_instance() { + $this->resetAfterTest(); + + set_config('perfdebug', 7); + filter_manager::reset_caches(); + $filterman = filter_manager::instance(); + $this->assertInstanceOf('filter_manager', $filterman); + $this->assertNotInstanceOf('performance_measuring_filter_manager', $filterman); + + set_config('perfdebug', 15); + filter_manager::reset_caches(); + $filterman = filter_manager::instance(); + $this->assertInstanceOf('filter_manager', $filterman); + $this->assertInstanceOf('performance_measuring_filter_manager', $filterman); + } +}