64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| require_once '_inc.php';
 | |
| 
 | |
| require_once 'JSMin.php';
 | |
| 
 | |
| function test_JSMin()
 | |
| {
 | |
|     global $thisDir;
 | |
|     
 | |
|     $src = file_get_contents($thisDir . '/_test_files/js/before.js');
 | |
|     $minExpected = file_get_contents($thisDir . '/_test_files/js/before.min.js');
 | |
|     $minOutput = JSMin::minify($src);
 | |
|     
 | |
|     $passed = assertTrue($minExpected == $minOutput, 'JSMin : Overall');
 | |
|     
 | |
|     if (__FILE__ === realpath($_SERVER['SCRIPT_FILENAME'])) {
 | |
|         echo "\n---Output: " .strlen($minOutput). " bytes\n\n{$minOutput}\n\n";
 | |
|         echo "---Expected: " .strlen($minExpected). " bytes\n\n{$minExpected}\n\n";
 | |
|         echo "---Source: " .strlen($src). " bytes\n\n{$src}\n\n\n";
 | |
|     }
 | |
|     
 | |
|     $src = file_get_contents($thisDir . '/_test_files/js/issue74.js');
 | |
|     $minExpected = file_get_contents($thisDir . '/_test_files/js/issue74.min.js');
 | |
|     $minOutput = JSMin::minify($src);
 | |
|     
 | |
|     $passed = assertTrue($minExpected == $minOutput, 'JSMin : Quotes in RegExp literals (Issue 74)');
 | |
|     
 | |
|     if (__FILE__ === realpath($_SERVER['SCRIPT_FILENAME'])) {
 | |
|         echo "\n---Output: " .strlen($minOutput). " bytes\n\n{$minOutput}\n\n";
 | |
|         echo "---Expected: " .strlen($minExpected). " bytes\n\n{$minExpected}\n\n";
 | |
|         echo "---Source: " .strlen($src). " bytes\n\n{$src}\n\n\n";
 | |
|         
 | |
|         test_JSMin_exception('"Hello'
 | |
|                             ,'Unterminated String'
 | |
|                             ,'JSMin_UnterminatedStringException'
 | |
|                             ,"Unterminated String: '\"Hello'");
 | |
|         test_JSMin_exception("return /regexp\n}"
 | |
|                             ,'Unterminated RegExp'
 | |
|                             ,'JSMin_UnterminatedRegExpException'
 | |
|                             ,"Unterminated RegExp: '/regexp\n'");
 | |
|         test_JSMin_exception("/* Comment "
 | |
|                             ,'Unterminated Comment'
 | |
|                             ,'JSMin_UnterminatedCommentException'
 | |
|                             ,"Unterminated Comment: '/* Comment '");    
 | |
|     }
 | |
| }
 | |
| 
 | |
| function test_JSMin_exception($js, $label, $expClass, $expMessage) {
 | |
|     $eClass = $eMsg = '';
 | |
|     try {
 | |
|         JSMin::minify($js);
 | |
|     } catch (Exception $e) {
 | |
|         $eClass = get_class($e);
 | |
|         $eMsg = $e->getMessage();
 | |
|     }
 | |
|     $passed = assertTrue($eClass === $expClass && $eMsg === $expMessage, 
 | |
|         'JSMin : throw on ' . $label);
 | |
|     if (! $passed && __FILE__ === realpath($_SERVER['SCRIPT_FILENAME'])) {
 | |
|         echo "\n  ---" , $e, "\n\n";
 | |
|     }
 | |
| }
 | |
| 
 | |
| test_JSMin();
 |