NamespaceTest.php (4521B)
1 <?php 2 /** 3 * php-token-stream 4 * 5 * Copyright (c) 2009-2013, Sebastian Bergmann <sebastian@phpunit.de>. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * * Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 15 * * Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in 17 * the documentation and/or other materials provided with the 18 * distribution. 19 * 20 * * Neither the name of Sebastian Bergmann nor the names of his 21 * contributors may be used to endorse or promote products derived 22 * from this software without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 27 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 28 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 29 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 30 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 31 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 34 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 35 * POSSIBILITY OF SUCH DAMAGE. 36 * 37 * @package PHP_TokenStream 38 * @subpackage Tests 39 * @author Sebastian Bergmann <sebastian@phpunit.de> 40 * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de> 41 * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License 42 * @since File available since Release 1.0.0 43 */ 44 45 if (!defined('TEST_FILES_PATH')) { 46 define( 47 'TEST_FILES_PATH', 48 dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 49 '_files' . DIRECTORY_SEPARATOR 50 ); 51 } 52 53 require_once 'PHP/Token/Stream.php'; 54 55 /** 56 * Tests for the PHP_Token_NAMESPACE class. 57 * 58 * @package PHP_TokenStream 59 * @subpackage Tests 60 * @author Sebastian Bergmann <sebastian@phpunit.de> 61 * @copyright 2009-2013 Sebastian Bergmann <sebastian@phpunit.de> 62 * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License 63 * @version Release: @package_version@ 64 * @link http://github.com/sebastianbergmann/php-token-stream/ 65 * @since Class available since Release 1.0.0 66 */ 67 class PHP_Token_NamespaceTest extends PHPUnit_Framework_TestCase 68 { 69 /** 70 * @covers PHP_Token_NAMESPACE::getName 71 */ 72 public function testGetName() 73 { 74 $tokenStream = new PHP_Token_Stream( 75 TEST_FILES_PATH . 'classInNamespace.php' 76 ); 77 78 foreach ($tokenStream as $token) { 79 if ($token instanceof PHP_Token_NAMESPACE) { 80 $this->assertSame('Foo\\Bar', $token->getName()); 81 } 82 } 83 } 84 85 public function testGetStartLineWithUnscopedNamespace() 86 { 87 $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php'); 88 foreach($tokenStream as $token) { 89 if($token instanceOf PHP_Token_NAMESPACE) { 90 $this->assertSame(2, $token->getLine()); 91 } 92 } 93 } 94 95 public function testGetEndLineWithUnscopedNamespace() 96 { 97 $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInNamespace.php'); 98 foreach($tokenStream as $token) { 99 if($token instanceOf PHP_Token_NAMESPACE) { 100 $this->assertSame(2, $token->getEndLine()); 101 } 102 } 103 } 104 public function testGetStartLineWithScopedNamespace() 105 { 106 $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInScopedNamespace.php'); 107 foreach($tokenStream as $token) { 108 if($token instanceOf PHP_Token_NAMESPACE) { 109 $this->assertSame(2, $token->getLine()); 110 } 111 } 112 } 113 114 public function testGetEndLineWithScopedNamespace() 115 { 116 $tokenStream = new PHP_Token_Stream(TEST_FILES_PATH . 'classInScopedNamespace.php'); 117 foreach($tokenStream as $token) { 118 if($token instanceOf PHP_Token_NAMESPACE) { 119 $this->assertSame(8, $token->getEndLine()); 120 } 121 } 122 } 123 124 }