From 4258361337026781dccd5d07ea25e5fec69a6a8f Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Mon, 11 Aug 2008 23:18:56 +0000 Subject: [PATCH] API Change: Turned Requirements::clear_combined_files() into Requirements::delete_combined_files() and Requirements::clear_combined_files() git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@60431 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- core/Requirements.php | 12 +++++++++--- tests/forms/RequirementsTest.php | 17 ++++++++++------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/core/Requirements.php b/core/Requirements.php index d555b409e..005f9ec93 100644 --- a/core/Requirements.php +++ b/core/Requirements.php @@ -436,12 +436,11 @@ class Requirements { } /** - * Deletes all dynamically generated combined files - * from the filesystem. + * Deletes all dynamically generated combined files from the filesystem. * * @param string $combinedFileName If left blank, all combined files are deleted. */ - static function clear_combined_files($combinedFileName = null) { + static function delete_combined_files($combinedFileName = null) { $combinedFiles = ($combinedFileName) ? array($combinedFileName => null) : self::$combine_files; foreach($combinedFiles as $combinedFile => $sourceItems) { $filePath = Director::baseFolder() . '/' . $combinedFile; @@ -451,6 +450,13 @@ class Requirements { } } + /** + * Re-sets the combined files definition + */ + static function clear_combined_files() { + self::$combine_files = array(); + } + /** * See {@link combine_files()}. */ diff --git a/tests/forms/RequirementsTest.php b/tests/forms/RequirementsTest.php index ca67e21b7..2063b72a0 100644 --- a/tests/forms/RequirementsTest.php +++ b/tests/forms/RequirementsTest.php @@ -60,7 +60,7 @@ class RequirementsTest extends SapphireTest { /* NORMAL REQUIREMENTS ARE STILL INCLUDED */ $this->assertTrue((bool)preg_match('/src=".*\/a\.js/', $html), 'normal requirements are still included'); - Requirements::clear_combined_files('bc.js'); + Requirements::delete_combined_files('bc.js'); } function testBlockedCombinedJavascript() { @@ -69,7 +69,7 @@ class RequirementsTest extends SapphireTest { /* BLOCKED COMBINED FILES ARE NOT INCLUDED */ $this->setupCombinedRequirements(); Requirements::block('bc.js'); - Requirements::clear_combined_files('bc.js'); + Requirements::delete_combined_files('bc.js'); clearstatcache(); // needed to get accurate file_exists() results $html = Requirements::includeInHTML(false, self::$html_template); @@ -82,7 +82,7 @@ class RequirementsTest extends SapphireTest { // original arrays grml... $this->setupCombinedRequirements(); Requirements::block('sapphire/tests/forms/b.js'); - Requirements::clear_combined_files('bc.js'); + Requirements::delete_combined_files('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'); @@ -91,13 +91,16 @@ class RequirementsTest extends SapphireTest { /* A SINGLE FILE CAN'T BE INCLUDED IN TWO COMBINED FILES */ $this->setupCombinedRequirements(); clearstatcache(); // needed to get accurate file_exists() results - Requirements::combine_files( + + // This throws a notice-level error, so we prefix with @ + @Requirements::combine_files( 'ac.js', array( 'sapphire/tests/forms/a.js', 'sapphire/tests/forms/c.js' ) ); + $combinedFiles = Requirements::get_combine_files(); $this->assertEquals( array_keys($combinedFiles), @@ -105,7 +108,7 @@ class RequirementsTest extends SapphireTest { "A single file can't be included in two combined files" ); - Requirements::clear_combined_files('bc.js'); + Requirements::delete_combined_files('bc.js'); } /** @@ -118,7 +121,8 @@ class RequirementsTest extends SapphireTest { Requirements::clear(); // clearing all previously generated requirements (just in case) - Requirements::clear_combined_files('bc.js'); + Requirements::clear_combined_files(); + Requirements::delete_combined_files('bc.js'); // require files normally (e.g. called from a FormField instance) Requirements::javascript('sapphire/tests/forms/a.js'); @@ -133,7 +137,6 @@ class RequirementsTest extends SapphireTest { 'sapphire/tests/forms/c.js' ) ); - } }