MDL-30545/ MDL-36199 reset plugin manager singletons
authorPetr Škoda <commits@skodak.org>
Wed, 24 Oct 2012 16:55:10 +0000 (00:55 +0800)
committerDan Poltawski <dan@moodle.com>
Tue, 13 Nov 2012 06:08:28 +0000 (14:08 +0800)
lib/phpunit/classes/util.php
lib/pluginlib.php

index f9dc68d..f5a20f7 100644 (file)
@@ -625,6 +625,14 @@ class phpunit_util {
         $reset = 'reset';
         get_fast_modinfo($reset);
 
+        // Reset other singletons.
+        if (class_exists('plugin_manager')) {
+            plugin_manager::reset_caches(true);
+        }
+        if (class_exists('available_update_checker')) {
+            available_update_checker::reset_caches(true);
+        }
+
         // purge dataroot directory
         self::reset_dataroot();
 
index 5c8417e..5d78cf7 100644 (file)
@@ -88,6 +88,16 @@ class plugin_manager {
         return self::$singletoninstance;
     }
 
+    /**
+     * Reset any caches
+     * @param bool $phpunitreset
+     */
+    public static function reset_caches($phpunitreset = false) {
+        if ($phpunitreset) {
+            self::$singletoninstance = null;
+        }
+    }
+
     /**
      * Returns a tree of known plugins and information about them
      *
@@ -649,6 +659,16 @@ class available_update_checker {
         return self::$singletoninstance;
     }
 
+    /**
+     * Reset any caches
+     * @param bool $phpunitreset
+     */
+    public static function reset_caches($phpunitreset = false) {
+        if ($phpunitreset) {
+            self::$singletoninstance = null;
+        }
+    }
+
     /**
      * Returns the timestamp of the last execution of {@link fetch()}
      *