Browse Source

Backup/restore Composer environment variables

The tests could fail if an environment variable replaces an expected
value.
Chris Smith 10 years ago
parent
commit
725a4fd638
1 changed files with 33 additions and 0 deletions
  1. 33 0
      tests/Composer/Test/ConfigTest.php

+ 33 - 0
tests/Composer/Test/ConfigTest.php

@@ -16,6 +16,39 @@ use Composer\Config;
 
 class ConfigTest extends \PHPUnit_Framework_TestCase
 {
+    private static $envVars = array(
+        'VENDOR_DIR',
+        'BIN_DIR',
+        'PROCESS_TIMEOUT',
+        'CACHE_DIR',
+        'CACHE_FILES_DIR',
+        'CACHE_REPO_DIR',
+        'CACHE_VCS_DIR',
+        'DISCARD_CHANGES',
+    );
+
+    private $envVarValues = array();
+
+    public function setUp()
+    {
+        foreach (self::$envVars as $var) {
+            $var = 'COMPOSER_' . $var;
+
+            if ($value = getenv($var)) {
+                $this->envVarValues[$var] = $value;
+
+                putenv($var . '=');
+            }
+        }
+    }
+
+    public function tearDown()
+    {
+        foreach ($this->envVarValues as $var => $value) {
+            putenv(sprintf('%s=%s', $var, $value));
+        }
+    }
+
     /**
      * @dataProvider dataAddPackagistRepository
      */