sonarrradarrplexorganizrnginxdashboardhtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelanding
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							172 lines
						
					
					
						
							4.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							172 lines
						
					
					
						
							4.6 KiB
						
					
					
				| <?php | |
| 
 | |
| namespace PhpParser\Serializer; | |
| 
 | |
| use PhpParser; | |
| 
 | |
| class XMLTest extends \PHPUnit_Framework_TestCase | |
| { | |
|     /** | |
|      * @covers PhpParser\Serializer\XML<extended> | |
|      */ | |
|     public function testSerialize() { | |
|         $code = <<<CODE | |
| <?php | |
| // comment | |
| /** doc comment */ | |
| function functionName(&\$a = 0, \$b = 1.0) { | |
|     echo 'Foo'; | |
| } | |
| CODE; | |
|         $xml = <<<XML | |
| <?xml version="1.0" encoding="UTF-8"?> | |
| <AST xmlns:node="http://nikic.github.com/PHPParser/XML/node" xmlns:subNode="http://nikic.github.com/PHPParser/XML/subNode" xmlns:attribute="http://nikic.github.com/PHPParser/XML/attribute" xmlns:scalar="http://nikic.github.com/PHPParser/XML/scalar"> | |
|  <scalar:array> | |
|   <node:Stmt_Function> | |
|    <attribute:startLine> | |
|     <scalar:int>4</scalar:int> | |
|    </attribute:startLine> | |
|    <attribute:comments> | |
|     <scalar:array> | |
|      <comment isDocComment="false" line="2">// comment | |
| </comment> | |
|      <comment isDocComment="true" line="3">/** doc comment */</comment> | |
|     </scalar:array> | |
|    </attribute:comments> | |
|    <attribute:endLine> | |
|     <scalar:int>6</scalar:int> | |
|    </attribute:endLine> | |
|    <subNode:byRef> | |
|     <scalar:false/> | |
|    </subNode:byRef> | |
|    <subNode:name> | |
|     <scalar:string>functionName</scalar:string> | |
|    </subNode:name> | |
|    <subNode:params> | |
|     <scalar:array> | |
|      <node:Param> | |
|       <attribute:startLine> | |
|        <scalar:int>4</scalar:int> | |
|       </attribute:startLine> | |
|       <attribute:endLine> | |
|        <scalar:int>4</scalar:int> | |
|       </attribute:endLine> | |
|       <subNode:type> | |
|        <scalar:null/> | |
|       </subNode:type> | |
|       <subNode:byRef> | |
|        <scalar:true/> | |
|       </subNode:byRef> | |
|       <subNode:variadic> | |
|        <scalar:false/> | |
|       </subNode:variadic> | |
|       <subNode:name> | |
|        <scalar:string>a</scalar:string> | |
|       </subNode:name> | |
|       <subNode:default> | |
|        <node:Scalar_LNumber> | |
|         <attribute:startLine> | |
|          <scalar:int>4</scalar:int> | |
|         </attribute:startLine> | |
|         <attribute:endLine> | |
|          <scalar:int>4</scalar:int> | |
|         </attribute:endLine> | |
|         <attribute:kind> | |
|          <scalar:int>10</scalar:int> | |
|         </attribute:kind> | |
|         <subNode:value> | |
|          <scalar:int>0</scalar:int> | |
|         </subNode:value> | |
|        </node:Scalar_LNumber> | |
|       </subNode:default> | |
|      </node:Param> | |
|      <node:Param> | |
|       <attribute:startLine> | |
|        <scalar:int>4</scalar:int> | |
|       </attribute:startLine> | |
|       <attribute:endLine> | |
|        <scalar:int>4</scalar:int> | |
|       </attribute:endLine> | |
|       <subNode:type> | |
|        <scalar:null/> | |
|       </subNode:type> | |
|       <subNode:byRef> | |
|        <scalar:false/> | |
|       </subNode:byRef> | |
|       <subNode:variadic> | |
|        <scalar:false/> | |
|       </subNode:variadic> | |
|       <subNode:name> | |
|        <scalar:string>b</scalar:string> | |
|       </subNode:name> | |
|       <subNode:default> | |
|        <node:Scalar_DNumber> | |
|         <attribute:startLine> | |
|          <scalar:int>4</scalar:int> | |
|         </attribute:startLine> | |
|         <attribute:endLine> | |
|          <scalar:int>4</scalar:int> | |
|         </attribute:endLine> | |
|         <subNode:value> | |
|          <scalar:float>1</scalar:float> | |
|         </subNode:value> | |
|        </node:Scalar_DNumber> | |
|       </subNode:default> | |
|      </node:Param> | |
|     </scalar:array> | |
|    </subNode:params> | |
|    <subNode:returnType> | |
|     <scalar:null/> | |
|    </subNode:returnType> | |
|    <subNode:stmts> | |
|     <scalar:array> | |
|      <node:Stmt_Echo> | |
|       <attribute:startLine> | |
|        <scalar:int>5</scalar:int> | |
|       </attribute:startLine> | |
|       <attribute:endLine> | |
|        <scalar:int>5</scalar:int> | |
|       </attribute:endLine> | |
|       <subNode:exprs> | |
|        <scalar:array> | |
|         <node:Scalar_String> | |
|          <attribute:startLine> | |
|           <scalar:int>5</scalar:int> | |
|          </attribute:startLine> | |
|          <attribute:endLine> | |
|           <scalar:int>5</scalar:int> | |
|          </attribute:endLine> | |
|          <attribute:kind> | |
|           <scalar:int>1</scalar:int> | |
|          </attribute:kind> | |
|          <subNode:value> | |
|           <scalar:string>Foo</scalar:string> | |
|          </subNode:value> | |
|         </node:Scalar_String> | |
|        </scalar:array> | |
|       </subNode:exprs> | |
|      </node:Stmt_Echo> | |
|     </scalar:array> | |
|    </subNode:stmts> | |
|   </node:Stmt_Function> | |
|  </scalar:array> | |
| </AST> | |
| XML; | |
| 
 | |
|         $parser     = new PhpParser\Parser\Php7(new PhpParser\Lexer); | |
|         $serializer = new XML; | |
| 
 | |
|         $code = str_replace("\r\n", "\n", $code); | |
|         $stmts = $parser->parse($code); | |
|         $this->assertXmlStringEqualsXmlString($xml, $serializer->serialize($stmts)); | |
|     } | |
| 
 | |
|     /** | |
|      * @expectedException        \InvalidArgumentException | |
|      * @expectedExceptionMessage Unexpected node type | |
|      */ | |
|     public function testError() { | |
|         $serializer = new XML; | |
|         $serializer->serialize(array(new \stdClass)); | |
|     } | |
| }
 | |
| 
 |