function testBlockedCombinedJavascript()
 {
     $combinedFilePath = Director::baseFolder() . '/' . 'RequirementsTest_bc.js';
     /* BLOCKED COMBINED FILES ARE NOT INCLUDED */
     $this->setupCombinedRequirements();
     Requirements::block('RequirementsTest_bc.js');
     Requirements::delete_combined_files('RequirementsTest_bc.js');
     clearstatcache();
     // needed to get accurate file_exists() results
     $html = Requirements::includeInHTML(false, self::$html_template);
     $this->assertFalse((bool) preg_match('/src=".*\\/RequirementsTest_bc\\.js/', $html), 'blocked combined files are not included ');
     Requirements::unblock('RequirementsTest_bc.js');
     /* BLOCKED UNCOMBINED FILES ARE NOT INCLUDED */
     // need to re-add requirements, as Requirements::process_combined_includes() alters the
     // original arrays grml...
     $this->setupCombinedRequirements();
     Requirements::block('sapphire/tests/forms/RequirementsTest_b.js');
     Requirements::delete_combined_files('RequirementsTest_bc.js');
     clearstatcache();
     // needed to get accurate file_exists() results
     $html = Requirements::includeInHTML(false, self::$html_template);
     $this->assertFalse(strpos(file_get_contents($combinedFilePath), "alert('b')") !== false, 'blocked uncombined files are not included');
     Requirements::unblock('RequirementsTest_b.js');
     /* A SINGLE FILE CAN'T BE INCLUDED IN TWO COMBINED FILES */
     $this->setupCombinedRequirements();
     clearstatcache();
     // needed to get accurate file_exists() results
     // This throws a notice-level error, so we prefix with @
     @Requirements::combine_files('RequirementsTest_ac.js', array('sapphire/tests/forms/RequirementsTest_a.js', 'sapphire/tests/forms/RequirementsTest_c.js'));
     $combinedFiles = Requirements::get_combine_files();
     $this->assertEquals(array_keys($combinedFiles), array('RequirementsTest_bc.js'), "A single file can't be included in two combined files");
     Requirements::delete_combined_files('RequirementsTest_bc.js');
 }
 /**
  *	@return string the name of the called class
  */
 public static function process_requirements()
 {
     $class = get_called_class();
     $requirements = $class::get_requirements();
     foreach ($requirements['block'] as $file) {
         Requirements::block($file);
     }
     foreach ($requirements['unblock'] as $file) {
         Requirements::unblock($file);
     }
     return $class;
 }