Login   Register  
PHP Classes
elePHPant
Icontem

File: phpunit/RuntimeFunctionsPcreTest.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Pavel Astakhov  >  PHP Interpreter  >  phpunit/RuntimeFunctionsPcreTest.php  >  Download  
File: phpunit/RuntimeFunctionsPcreTest.php
Role: Unit test script
Content type: text/plain
Description: Unit test script
Class: PHP Interpreter
Execute PHP code by interpreting source strings
Author: By
Last change:
Date: 2013-12-10 01:11
Size: 5,318 bytes
 

Contents

Class file image Download
<?php
namespace Foxway;

class 
RuntimeFunctionsPcreTest extends \PHPUnit_Framework_TestCase {

    public function 
testRun_function_pcre_preg_filter_1() {
        
$this->assertEquals(
                
Runtime::runSource('
$subject = array("1", "a", "2", "b", "3", "A", "B", "4");
$pattern = array("/\d/", "/[a-z]/", "/[1a]/");
$replace = array("A:$0", "B:$0", "C:$0");

echo print_r(preg_filter($pattern, $replace, $subject), true);'
),
                array(
'Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [7] => A:4
)
'                    
)
                );
    }
    public function 
testRun_function_pcre_preg_replace_1() {
        
$this->assertEquals(
                
Runtime::runSource('echo print_r(preg_replace($pattern, $replace, $subject), true);'),
                array(
'Array
(
    [0] => A:C:1
    [1] => B:C:a
    [2] => A:2
    [3] => B:b
    [4] => A:3
    [5] => A
    [6] => B
    [7] => A:4
)
'                    
)
                );
    }
    public function 
testRun_function_pcre_preg_replace_2() {
        
$this->assertEquals(
                
Runtime::runSource('$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = \'${1}1,$3\';
echo preg_replace($pattern, $replacement, $string);'
),
                array(
'April1,2003')
                );
    }
    public function 
testRun_function_pcre_preg_replace_3() {
        
$this->assertEquals(
                
Runtime::runSource('$string = "The quick brown fox jumped over the lazy dog.";
$patterns = array();
$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";
$replacements = array();
$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";
echo preg_replace($patterns, $replacements, $string);'
),
                array(
'The bear black slow jumped over the lazy dog.')
                );
    }
    public function 
testRun_function_pcre_preg_grep_1() {
        
$this->assertEquals(
                
Runtime::runSource('$array = array("foo", 5, 4.78, "bar", "7.89", "1.234foo"); echo print_r(preg_grep("/^(\d+)?\.\d+$/", $array), true);'),
                array(
'Array
(
    [2] => 4.78
    [4] => 7.89
)
'                    
)
                );
    }
    public function 
testRun_function_pcre_preg_last_error_1() {
        
$this->assertEquals(
                
Runtime::runSource('preg_match("/(?:\D+|<\d+>)*[!?]/", "foobar foobar foobar");
if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print "Backtrack limit was exhausted!";
}'
),
                array(
'Backtrack limit was exhausted!')
                );
    }
    public function 
testRun_function_pcre_preg_match_all_1() {
        
$this->assertEquals(
                
Runtime::runSource('preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1];
echo $out[1][0] . ", " . $out[1][1];'
),
                array(
'<b>example: </b>, <div align=left>this is a test</div>''example: , this is a test')
                );
    }
    public function 
testRun_function_pcre_preg_match_all_2() {
        
$this->assertEquals(
                
Runtime::runSource('preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=\"left\">this is a test</div>",
    $out, PREG_SET_ORDER);
echo $out[0][0] . ", " . $out[0][1];
echo $out[1][0] . ", " . $out[1][1];'
),
                array(
'<b>example: </b>, example: ''<div align="left">this is a test</div>, this is a test')
                );
    }
    public function 
testRun_function_pcre_preg_match_1() {
        
$this->assertEquals(
                
Runtime::runSource('// get host name from URL
preg_match("@^(?:http://)?([^/]+)@i",
    "http://www.php.net/index.html", $matches);
$host = $matches[1];

// get last two segments of host name
preg_match("/[^.]+\.[^.]+$/", $host, $matches);
echo "domain name is: {$matches[0]}";'
),
                array(
'domain name is: php.net')
                );
    }
    public function 
testRun_function_pcre_preg_match_2() {
        
$this->assertEquals(
                
Runtime::runSource('$str = "foobar: 2008";
preg_match("/(?P<name>\w+): (?P<digit>\d+)/", $str, $matches);
echo print_r($matches, true);'
),
                array(
'Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)
'                    
)
                );
    }
    public function 
testRun_function_pcre_preg_quote_1() {
        
$this->assertEquals(
                
Runtime::runSource('$keywords = "$40 for a g3/400"; $keywords = preg_quote($keywords, "/"); echo $keywords;'),
                array(
'\$40 for a g3\/400')
                );
    }
    public function 
testRun_function_pcre_preg_split_1() {
        
$this->assertEquals(
                
Runtime::runSource('$keywords = preg_split("/[\s,]+/", "hypertext language, programming"); echo print_r($keywords,true);'),
                array(
'Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)
'                    
)
                );
    }
    public function 
testRun_function_pcre_preg_split_2() {
        
$this->assertEquals(
                
Runtime::runSource('$str = "string";
$chars = preg_split("//", $str, -1, PREG_SPLIT_NO_EMPTY);
echo print_r($chars,true);'
),
                array(
'Array
(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)
'                    
)
                );
    }
    public function 
testRun_function_pcre_preg_split_3() {
        
$this->assertEquals(
                
Runtime::runSource('$str = "hypertext language programming";
$chars = preg_split("/ /", $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
echo print_r($chars, true);'
),
                array(
'Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)
'                    
)
                );
    }

}