@@ -49,47 +49,47 @@ private function privateMethod()
4949 self ::KIND_PROPERTY ,
5050 5 ,
5151 'class:TestClass ' ,
52- 'access: public '
52+ 'public '
5353 );
5454 $ this ->assertTagsFileContainsTag (
5555 'TopLevelClassExample.php ' ,
5656 'protectedProperty ' ,
5757 self ::KIND_PROPERTY ,
5858 6 ,
5959 'class:TestClass ' ,
60- 'access: protected '
60+ 'protected '
6161 );
6262 $ this ->assertTagsFileContainsTag (
6363 'TopLevelClassExample.php ' ,
6464 'privateProperty ' ,
6565 self ::KIND_PROPERTY ,
6666 7 ,
6767 'class:TestClass ' ,
68- 'access: private '
68+ 'private '
6969 );
7070 $ this ->assertTagsFileContainsTag (
7171 'TopLevelClassExample.php ' ,
7272 'publicMethod ' ,
7373 self ::KIND_METHOD ,
7474 9 ,
7575 'class:TestClass ' ,
76- 'access: public '
76+ 'public '
7777 );
7878 $ this ->assertTagsFileContainsTag (
7979 'TopLevelClassExample.php ' ,
8080 'protectedMethod ' ,
8181 self ::KIND_METHOD ,
8282 13 ,
8383 'class:TestClass ' ,
84- 'access: protected '
84+ 'protected '
8585 );
8686 $ this ->assertTagsFileContainsTag (
8787 'TopLevelClassExample.php ' ,
8888 'privateMethod ' ,
8989 self ::KIND_METHOD ,
9090 17 ,
9191 'class:TestClass ' ,
92- 'access: private '
92+ 'private '
9393 );
9494 }
9595
@@ -139,15 +139,78 @@ function setProperty($value)
139139 self ::KIND_PROPERTY ,
140140 7 ,
141141 'class:Level1\Level2\TestClass ' ,
142- 'access: private '
142+ 'private '
143143 );
144144 $ this ->assertTagsFileContainsTag (
145145 'MultiLevelNamespace.php ' ,
146146 'setProperty ' ,
147147 self ::KIND_METHOD ,
148148 9 ,
149149 'class:Level1\Level2\TestClass ' ,
150- 'access:public '
150+ 'public '
151+ );
152+ }
153+
154+ /**
155+ * @test
156+ * @group bugfix3
157+ */
158+ public function itTagsMagicMethods ()
159+ {
160+ $ this ->givenSourceFile ('DbConnectionUserDecorator.php ' , <<<'EOS'
161+ <?php
162+ class DbConnectionUserDecorator {
163+ public function __set($key, $value) {
164+ $this->conn->$key = $value;
165+ }
166+ }
167+ EOS
168+ );
169+
170+ $ this ->runPHPCtags ();
171+
172+ $ this ->assertTagsFileHeaderIsCorrect ();
173+ $ this ->assertNumberOfTagsInTagsFileIs (2 );
174+ $ this ->assertTagsFileContainsTag (
175+ 'DbConnectionUserDecorator.php ' ,
176+ 'DbConnectionUserDecorator ' ,
177+ self ::KIND_CLASS ,
178+ 2
179+ );
180+ $ this ->assertTagsFileContainsTag (
181+ 'DbConnectionUserDecorator.php ' ,
182+ '__set ' ,
183+ self ::KIND_METHOD ,
184+ 3 ,
185+ 'class:DbConnectionUserDecorator ' ,
186+ 'public '
187+ );
188+ }
189+
190+ /**
191+ * @test
192+ * @group bugfix7
193+ */
194+ public function itTagsClassInsideConditional ()
195+ {
196+ $ this ->givenSourceFile ('MultiLevelNamespace.php ' , <<<'EOS'
197+ <?php
198+ if (!class_exists('MyClass')) {
199+ class MyClass {
200+ }
201+ }
202+ EOS
203+ );
204+
205+ $ this ->runPHPCtags ();
206+
207+ $ this ->assertTagsFileHeaderIsCorrect ();
208+ $ this ->assertNumberOfTagsInTagsFileIs (1 );
209+ $ this ->assertTagsFileContainsTag (
210+ 'MultiLevelNamespace.php ' ,
211+ 'MyClass ' ,
212+ self ::KIND_CLASS ,
213+ 3
151214 );
152215 }
153216}
0 commit comments