Browse Source

* Implement pascal class conversion test, from Mohamed Elemam

git-svn-id: trunk@34038 -
michael 9 years ago
parent
commit
912c024f01
1 changed files with 21 additions and 1 deletions
  1. 21 1
      packages/pastojs/tests/tcconverter.pp

+ 21 - 1
packages/pastojs/tests/tcconverter.pp

@@ -102,6 +102,7 @@ type
     Procedure TestMemberExpressionArrayTwoDim;
     Procedure TestMemberExpressionArrayTwoDim;
     Procedure TestVariable;
     Procedure TestVariable;
     Procedure TestArrayVariable;
     Procedure TestArrayVariable;
+    procedure TestClassDecleration;
   end;
   end;
 
 
   { TTestStatementConverter }
   { TTestStatementConverter }
@@ -1156,7 +1157,26 @@ begin
   A:=TJSArrayLiteral(AssertElement('Init is array literal',TJSArrayLiteral,VD.Init));
   A:=TJSArrayLiteral(AssertElement('Init is array literal',TJSArrayLiteral,VD.Init));
   AssertEquals('No elements',0,A.Elements.Count);
   AssertEquals('No elements',0,A.Elements.Count);
 end;
 end;
-
+procedure TTestExpressionConverter.TestClassDecleration;
+var
+  C: TPasClassType;
+  Decl: TPasDeclarations;
+  Sl: TJSStatementList;
+  Uni: TJSUnary;
+  Asi: TJSSimpleAssignStatement;
+  pex: TJSPrimaryExpressionIdent;
+  Call: TJSCallExpression;
+begin
+  Decl:=TPasDeclarations.Create('',Nil);
+  C:=TPasClassType.Create('myclass',Nil);
+  Decl.Declarations.Add(c);
+  Sl:=TJSStatementList(Convert(Decl,TJSStatementList));
+  Uni:=TJSUnary(AssertElement('Sl.A is TJSUnary',TJSUnary,Sl.A));
+  Asi:=TJSSimpleAssignStatement(AssertElement('Sl.A is TJSUnary',TJSSimpleAssignStatement,Uni.A));
+  pex:=TJSPrimaryExpressionIdent(AssertElement('Asi.LHS is TJSPrimaryExpressionIdent',TJSPrimaryExpressionIdent,Asi.LHS));
+  AssertEquals('Correct name','myclass',pex.Name);
+  Call:=TJSCallExpression(AssertElement('Asi.Expr is TJSCallExpression',TJSCallExpression,Asi.Expr));
+end;
 procedure TTestTestConverter.TestEmpty;
 procedure TTestTestConverter.TestEmpty;
 begin
 begin
   AssertNotNull('Have converter',Converter);
   AssertNotNull('Have converter',Converter);