@@ -100,6 +100,100 @@ public void ParseFile_SimpleClass()
100
100
}
101
101
}
102
102
103
+ [ Test ]
104
+ public void ParseFile_PrivateClass ( )
105
+ {
106
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.PrivateClassTest.hx" ) )
107
+ {
108
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
109
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
110
+ var model = ASFileParser . ParseFile ( srcModel ) ;
111
+ Assert . AreEqual ( 4 , model . Version ) ;
112
+ Assert . IsTrue ( model . HasPackage ) ;
113
+ Assert . AreEqual ( "test.test" , model . Package ) ;
114
+ Assert . AreEqual ( 2 , model . Classes . Count ) ;
115
+
116
+ var classModel = model . Classes [ 0 ] ;
117
+ Assert . AreEqual ( "Test" , classModel . Name ) ;
118
+ Assert . AreEqual ( FlagType . Class , classModel . Flags & FlagType . Class ) ;
119
+ Assert . AreEqual ( Visibility . Public , classModel . Access & Visibility . Public ) ;
120
+ Assert . AreEqual ( 2 , classModel . LineFrom ) ;
121
+ Assert . AreEqual ( 7 , classModel . LineTo ) ;
122
+ Assert . AreEqual ( 1 , classModel . Members . Count ) ;
123
+
124
+ var memberModel = classModel . Members [ 0 ] ;
125
+ Assert . AreEqual ( "Test" , memberModel . Name ) ;
126
+ Assert . AreEqual ( FlagType . Function , memberModel . Flags & FlagType . Function ) ;
127
+ Assert . AreEqual ( FlagType . Constructor , memberModel . Flags & FlagType . Constructor ) ;
128
+ Assert . AreEqual ( Visibility . Public , memberModel . Access & Visibility . Public ) ;
129
+ Assert . AreEqual ( 4 , memberModel . LineFrom ) ;
130
+ Assert . AreEqual ( 6 , memberModel . LineTo ) ;
131
+
132
+ classModel = model . Classes [ 1 ] ;
133
+ Assert . AreEqual ( "TestPrivate" , classModel . Name ) ;
134
+ Assert . AreEqual ( FlagType . Class , classModel . Flags & FlagType . Class ) ;
135
+ Assert . AreEqual ( Visibility . Private , classModel . Access & Visibility . Private ) ;
136
+ Assert . AreEqual ( 9 , classModel . LineFrom ) ;
137
+ Assert . AreEqual ( 14 , classModel . LineTo ) ;
138
+ Assert . AreEqual ( 1 , classModel . Members . Count ) ;
139
+ memberModel = classModel . Members [ 0 ] ;
140
+ Assert . AreEqual ( "TestPrivate" , memberModel . Name ) ;
141
+ Assert . AreEqual ( FlagType . Function , memberModel . Flags & FlagType . Function ) ;
142
+ Assert . AreEqual ( FlagType . Constructor , memberModel . Flags & FlagType . Constructor ) ;
143
+ Assert . AreEqual ( Visibility . Public , memberModel . Access & Visibility . Public ) ;
144
+ Assert . AreEqual ( 11 , memberModel . LineFrom ) ;
145
+ Assert . AreEqual ( 13 , memberModel . LineTo ) ;
146
+ }
147
+ }
148
+
149
+ [ Test ]
150
+ public void ParseFile_Interface ( )
151
+ {
152
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.InterfaceTest.hx" ) )
153
+ {
154
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
155
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
156
+ var model = ASFileParser . ParseFile ( srcModel ) ;
157
+
158
+ Assert . AreEqual ( 1 , model . Classes . Count ) ;
159
+ var classModel = model . Classes [ 0 ] ;
160
+ Assert . AreEqual ( "Test" , classModel . Name ) ;
161
+ Assert . AreEqual ( Visibility . Public , classModel . Access ) ;
162
+ Assert . AreEqual ( FlagType . Interface , classModel . Flags & FlagType . Interface ) ;
163
+ Assert . AreEqual ( 4 , classModel . Members . Count ) ;
164
+
165
+ var member = classModel . Members [ 0 ] ;
166
+ Assert . AreEqual ( "test" , member . Name ) ;
167
+ Assert . AreEqual ( "Int" , member . Type ) ;
168
+ Assert . IsNull ( member . Parameters ) ;
169
+ Assert . AreEqual ( Visibility . Public , member . Access ) ;
170
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
171
+
172
+ member = classModel . Members [ 1 ] ;
173
+ Assert . AreEqual ( "testVar" , member . Name ) ;
174
+ Assert . AreEqual ( "String" , member . Type ) ;
175
+ Assert . IsNull ( member . Parameters ) ;
176
+ Assert . AreEqual ( Visibility . Public , member . Access ) ;
177
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
178
+
179
+ member = classModel . Members [ 2 ] ;
180
+ Assert . AreEqual ( "testPrivate" , member . Name ) ;
181
+ Assert . AreEqual ( "Int" , member . Type ) ;
182
+ Assert . IsNull ( member . Parameters ) ;
183
+ Assert . AreEqual ( Visibility . Private , member . Access ) ;
184
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
185
+
186
+ member = classModel . Members [ 3 ] ;
187
+ Assert . AreEqual ( "testProperty" , member . Name ) ;
188
+ Assert . AreEqual ( "Float" , member . Type ) ;
189
+ Assert . AreEqual ( 2 , member . Parameters . Count ) ;
190
+ Assert . AreEqual ( Visibility . Public , member . Access ) ;
191
+ Assert . AreEqual ( FlagType . Getter , member . Flags & FlagType . Getter ) ;
192
+ Assert . AreEqual ( "get" , member . Parameters [ 0 ] . Name ) ;
193
+ Assert . AreEqual ( "set" , member . Parameters [ 1 ] . Name ) ;
194
+ }
195
+ }
196
+
103
197
[ Test ( Description = "Commit 7c8718c" ) ]
104
198
public void ParseFile_OverrideFunction ( )
105
199
{
@@ -261,6 +355,65 @@ public void ParseFile_TypeDefs()
261
355
}
262
356
}
263
357
358
+ [ Test ]
359
+ public void ParseFile_Enums ( )
360
+ {
361
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.EnumsTest.hx" ) )
362
+ {
363
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
364
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
365
+ var model = ASFileParser . ParseFile ( srcModel ) ;
366
+ Assert . AreEqual ( 2 , model . Classes . Count ) ;
367
+
368
+ var simpleEnum = model . Classes [ 0 ] ;
369
+ Assert . AreEqual ( "SimpleEnum" , simpleEnum . Name ) ;
370
+ Assert . AreEqual ( 2 , simpleEnum . LineFrom ) ;
371
+ Assert . AreEqual ( 6 , simpleEnum . LineTo ) ;
372
+ Assert . AreEqual ( FlagType . Enum , simpleEnum . Flags & FlagType . Enum ) ;
373
+ Assert . AreEqual ( 3 , simpleEnum . Members . Count ) ;
374
+ var member = simpleEnum . Members [ 0 ] ;
375
+ Assert . AreEqual ( "Foo" , member . Name ) ;
376
+ Assert . AreEqual ( 3 , member . LineFrom ) ;
377
+ Assert . AreEqual ( 3 , member . LineTo ) ;
378
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
379
+ member = simpleEnum . Members [ 1 ] ;
380
+ Assert . AreEqual ( "Bar" , member . Name ) ;
381
+ Assert . AreEqual ( 4 , member . LineFrom ) ;
382
+ Assert . AreEqual ( 4 , member . LineTo ) ;
383
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
384
+ member = simpleEnum . Members [ 2 ] ;
385
+ Assert . AreEqual ( "Baz" , member . Name ) ;
386
+ Assert . AreEqual ( 5 , member . LineFrom ) ;
387
+ Assert . AreEqual ( 5 , member . LineTo ) ;
388
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
389
+
390
+ var complexEnum = model . Classes [ 1 ] ;
391
+ Assert . AreEqual ( "ComplexEnum" , complexEnum . Name ) ;
392
+ Assert . AreEqual ( 8 , complexEnum . LineFrom ) ;
393
+ Assert . AreEqual ( 11 , complexEnum . LineTo ) ;
394
+ Assert . AreEqual ( FlagType . Enum , complexEnum . Flags & FlagType . Enum ) ;
395
+ Assert . AreEqual ( 2 , complexEnum . Members . Count ) ;
396
+ member = complexEnum . Members [ 0 ] ;
397
+ Assert . AreEqual ( "IntEnum" , member . Name ) ;
398
+ Assert . AreEqual ( 9 , member . LineFrom ) ;
399
+ Assert . AreEqual ( 9 , member . LineTo ) ;
400
+ Assert . AreEqual ( "i" , member . Parameters [ 0 ] . Name ) ;
401
+ Assert . AreEqual ( "Int" , member . Parameters [ 0 ] . Type ) ;
402
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
403
+ member = complexEnum . Members [ 1 ] ;
404
+ Assert . AreEqual ( "MultiEnum" , member . Name ) ;
405
+ Assert . AreEqual ( 10 , member . LineFrom ) ;
406
+ Assert . AreEqual ( 10 , member . LineTo ) ;
407
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
408
+ Assert . AreEqual ( "i" , member . Parameters [ 0 ] . Name ) ;
409
+ Assert . AreEqual ( "Int" , member . Parameters [ 0 ] . Type ) ;
410
+ Assert . AreEqual ( "j" , member . Parameters [ 1 ] . Name ) ;
411
+ Assert . AreEqual ( "String" , member . Parameters [ 1 ] . Type ) ;
412
+ Assert . AreEqual ( "k" , member . Parameters [ 2 ] . Name ) ;
413
+ Assert . AreEqual ( "Float" , member . Parameters [ 2 ] . Type ) ;
414
+ }
415
+ }
416
+
264
417
[ Test ( Description = "Includes Commit 51938e0" ) ]
265
418
public void ParseFile_Generics ( )
266
419
{
@@ -533,6 +686,81 @@ public void ParseFile_RegExLiterals()
533
686
}
534
687
}
535
688
689
+ [ Test ( Description = "PR 680" ) ]
690
+ public void ParseFile_MultiLineStrings ( )
691
+ {
692
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.MultiLineStringsTest.hx" ) )
693
+ {
694
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
695
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
696
+ var model = ASFileParser . ParseFile ( srcModel ) ;
697
+
698
+ Assert . AreEqual ( 1 , model . Classes . Count ) ;
699
+ var classModel = model . Classes [ 0 ] ;
700
+
701
+ Assert . AreEqual ( 2 , classModel . Members . Count ) ;
702
+ var member = classModel . Members [ 0 ] ;
703
+ Assert . AreEqual ( "test" , member . Name ) ;
704
+ Assert . AreEqual ( "Int" , member . Type ) ;
705
+ Assert . AreEqual ( 4 , member . LineFrom ) ;
706
+ Assert . AreEqual ( 7 , member . LineTo ) ;
707
+ Assert . AreEqual ( 1 , member . Parameters . Count ) ;
708
+ var param = member . Parameters [ 0 ] ;
709
+ Assert . AreEqual ( "arg" , param . Name ) ;
710
+ Assert . AreEqual ( "String" , param . Type ) ;
711
+ Assert . AreEqual ( "\" hello \r world\" " , param . Value ) ;
712
+ Assert . AreEqual ( 4 , param . LineFrom ) ;
713
+ Assert . AreEqual ( 5 , param . LineTo ) ;
714
+
715
+ member = classModel . Members [ 1 ] ;
716
+ Assert . AreEqual ( "test2" , member . Name ) ;
717
+ Assert . AreEqual ( "Float" , member . Type ) ;
718
+ Assert . AreEqual ( 9 , member . LineFrom ) ;
719
+ Assert . AreEqual ( 12 , member . LineTo ) ;
720
+ Assert . AreEqual ( 1 , member . Parameters . Count ) ;
721
+ param = member . Parameters [ 0 ] ;
722
+ Assert . AreEqual ( "arg" , param . Name ) ;
723
+ Assert . AreEqual ( "String" , param . Type ) ;
724
+ Assert . AreEqual ( "'hello \r world'" , param . Value ) ;
725
+ Assert . AreEqual ( 9 , param . LineFrom ) ;
726
+ Assert . AreEqual ( 10 , param . LineTo ) ;
727
+ }
728
+ }
729
+
730
+ [ Test ( Description = "PR 680" ) ]
731
+ public void ParseFile_StringWithEscapedChars ( )
732
+ {
733
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.EscapedStringsTest.hx" ) )
734
+ {
735
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
736
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
737
+ var model = ASFileParser . ParseFile ( srcModel ) ;
738
+
739
+ Assert . AreEqual ( 1 , model . Classes . Count ) ;
740
+ var classModel = model . Classes [ 0 ] ;
741
+
742
+ Assert . AreEqual ( 1 , classModel . Members . Count ) ;
743
+ var member = classModel . Members [ 0 ] ;
744
+ Assert . AreEqual ( "test" , member . Name ) ;
745
+ Assert . AreEqual ( "String" , member . Type ) ;
746
+ Assert . AreEqual ( 4 , member . LineFrom ) ;
747
+ Assert . AreEqual ( 6 , member . LineTo ) ;
748
+ Assert . AreEqual ( 2 , member . Parameters . Count ) ;
749
+ var param = member . Parameters [ 0 ] ;
750
+ Assert . AreEqual ( "arg" , param . Name ) ;
751
+ Assert . AreEqual ( "String" , param . Type ) ;
752
+ Assert . AreEqual ( "\" hello \\ t\\ r\\ n\\ \\ \\ \" \\ \\ \" " , param . Value ) ;
753
+ Assert . AreEqual ( 4 , param . LineFrom ) ;
754
+ Assert . AreEqual ( 4 , param . LineTo ) ;
755
+ param = member . Parameters [ 1 ] ;
756
+ Assert . AreEqual ( "arg2" , param . Name ) ;
757
+ Assert . AreEqual ( "String" , param . Type ) ;
758
+ Assert . AreEqual ( @"'hello \t\r\n\\\\'" , param . Value ) ;
759
+ Assert . AreEqual ( 4 , param . LineFrom ) ;
760
+ Assert . AreEqual ( 4 , param . LineTo ) ;
761
+ }
762
+ }
763
+
536
764
[ Test ]
537
765
public void ParseFile_Imports ( )
538
766
{
@@ -716,6 +944,7 @@ public void ParseFile_ComplexClass()
716
944
717
945
memberModel = classModel . Members [ 11 ] ;
718
946
Assert . AreEqual ( "bar" , memberModel . Name ) ;
947
+ Assert . AreEqual ( "Void" , memberModel . Type ) ;
719
948
flags = FlagType . Static | FlagType . Function ;
720
949
Assert . AreEqual ( flags , memberModel . Flags & flags ) ;
721
950
Assert . AreEqual ( Visibility . Private , memberModel . Access & Visibility . Private ) ;
@@ -726,9 +955,18 @@ public void ParseFile_ComplexClass()
726
955
Assert . AreEqual ( "s" , param . Name ) ;
727
956
Assert . AreEqual ( "String" , param . Type ) ;
728
957
Assert . AreEqual ( FlagType . ParameterVar , param . Flags & FlagType . ParameterVar ) ;
958
+ Assert . AreEqual ( 31 , param . LineFrom ) ;
959
+ Assert . AreEqual ( 31 , param . LineTo ) ;
960
+ param = memberModel . Parameters [ 1 ] ;
961
+ Assert . AreEqual ( "v" , param . Name ) ;
962
+ Assert . AreEqual ( "Bool" , param . Type ) ;
963
+ Assert . AreEqual ( FlagType . ParameterVar , param . Flags & FlagType . ParameterVar ) ;
964
+ Assert . AreEqual ( 31 , param . LineFrom ) ;
965
+ Assert . AreEqual ( 31 , param . LineTo ) ;
729
966
730
967
memberModel = classModel . Members [ 12 ] ;
731
968
Assert . AreEqual ( "foo" , memberModel . Name ) ;
969
+ Assert . AreEqual ( "Bool" , memberModel . Type ) ;
732
970
flags = FlagType . Function ;
733
971
Assert . AreEqual ( flags , memberModel . Flags & flags ) ;
734
972
Assert . AreEqual ( Visibility . Public , memberModel . Access & Visibility . Public ) ;
@@ -739,6 +977,15 @@ public void ParseFile_ComplexClass()
739
977
Assert . AreEqual ( "?s" , param . Name ) ;
740
978
Assert . AreEqual ( "String" , param . Type ) ;
741
979
Assert . AreEqual ( FlagType . ParameterVar , param . Flags & FlagType . ParameterVar ) ;
980
+ Assert . AreEqual ( 35 , param . LineFrom ) ;
981
+ Assert . AreEqual ( 35 , param . LineTo ) ;
982
+ param = memberModel . Parameters [ 1 ] ;
983
+ Assert . AreEqual ( "?v" , param . Name ) ;
984
+ Assert . AreEqual ( "Bool" , param . Type ) ;
985
+ Assert . AreEqual ( "true" , param . Value ) ;
986
+ Assert . AreEqual ( FlagType . ParameterVar , param . Flags & FlagType . ParameterVar ) ;
987
+ Assert . AreEqual ( 35 , param . LineFrom ) ;
988
+ Assert . AreEqual ( 35 , param . LineTo ) ;
742
989
743
990
memberModel = classModel . Members [ 13 ] ;
744
991
Assert . AreEqual ( "boz" , memberModel . Name ) ;
@@ -752,6 +999,15 @@ public void ParseFile_ComplexClass()
752
999
Assert . AreEqual ( "?s" , param . Name ) ;
753
1000
Assert . AreEqual ( "String" , param . Type ) ;
754
1001
Assert . AreEqual ( FlagType . ParameterVar , param . Flags & FlagType . ParameterVar ) ;
1002
+ Assert . AreEqual ( 40 , param . LineFrom ) ;
1003
+ Assert . AreEqual ( 40 , param . LineTo ) ;
1004
+ param = memberModel . Parameters [ 1 ] ;
1005
+ Assert . AreEqual ( "?v" , param . Name ) ;
1006
+ Assert . AreEqual ( "Bool" , param . Type ) ;
1007
+ Assert . AreEqual ( "true" , param . Value ) ;
1008
+ Assert . AreEqual ( FlagType . ParameterVar , param . Flags & FlagType . ParameterVar ) ;
1009
+ Assert . AreEqual ( 41 , param . LineFrom ) ;
1010
+ Assert . AreEqual ( 41 , param . LineTo ) ;
755
1011
}
756
1012
}
757
1013
}
0 commit comments