diff --git a/lib/filterlib.php b/lib/filterlib.php index 5f848ec604f..0f6072c1dfd 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/filterlib_test.php b/lib/tests/filterlib_test.php index 2db0568e2e0..e769e087eaf 100644 --- a/lib/tests/filterlib_test.php +++ b/lib/tests/filterlib_test.php @@ -660,4 +660,19 @@ class core_filterlib_testcase extends advanced_testcase { $this->assertEquals('emailprotect,multilang', $CFG->stringfilters); $this->assertEquals(1, $CFG->filterall); } + + public function test_filter_manager_instance() { + + 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); + } }