Kaynağa Gözat

* Added test for streaming 2 components

git-svn-id: branches/cleanroom@10398 -
michael 17 yıl önce
ebeveyn
işleme
ecc3713fbf
2 değiştirilmiş dosya ile 57 ekleme ve 0 silme
  1. 35 0
      rtl/tests/tccompstreaming.pp
  2. 22 0
      rtl/tests/testcomps.pp

+ 35 - 0
rtl/tests/tccompstreaming.pp

@@ -50,6 +50,7 @@ TTestComponentStream = Class(TTestStreaming)
     Procedure TestTCollectionComponent5;
     Procedure TestTOwnedComponent;
     Procedure TestTStreamedOwnedComponent;
+    Procedure TestTStreamedOwnedComponents;
     Procedure TestTMethodComponent;
     Procedure TestTMethodComponent2;
   end;
@@ -1130,6 +1131,40 @@ begin
     end;
 end;
 
+Procedure TTestComponentStream.TestTStreamedOwnedComponents;
+
+Var
+  C : TComponent;
+
+begin
+  C:=TStreamedOwnedComponents.Create(Nil);
+  Try
+    SaveToStream(C);
+    ExpectSignature;
+    ExpectFlags([],0);
+    ExpectBareString('TStreamedOwnedComponents');
+    ExpectBareString('TestTStreamedOwnedComponents');
+    ExpectEndOfList;
+    ExpectFlags([],0);
+    ExpectBareString('TIntegerComponent');
+    ExpectBareString('SubA');
+    ExpectBareString('IntProp');
+    ExpectInteger(3);
+    ExpectEndOfList;
+    ExpectEndOfList;
+    ExpectFlags([],0);
+    ExpectBareString('TStringComponent');
+    ExpectBareString('SubB');
+    ExpectBareString('StringProp');
+    ExpectString('A string');
+    ExpectEndOfList;
+    ExpectEndOfList;
+    ExpectEndOfList;
+  Finally
+    C.Free;
+    end;
+end;
+
 
 Procedure TTestComponentStream.TestTMethodComponent;
 

+ 22 - 0
rtl/tests/testcomps.pp

@@ -458,6 +458,15 @@ Type
   Published
     Sub : TIntegerComponent;
   end;
+  
+  // Stream 2 sub components
+  TStreamedOwnedComponents = Class(TChildrenComponent)
+  Public
+    Constructor Create(AOwner : TComponent);  override;
+  Published
+    SubA : TIntegerComponent;
+    SubB : TStringComponent;
+  end;
 
   // Method tests.
 
@@ -556,6 +565,7 @@ end;
 
 constructor TStringComponent.Create(AOwner: TComponent);
 begin
+  Inherited;
   F:='A string';
 end;
 
@@ -872,6 +882,18 @@ begin
   Sub.Name:='Sub';
 end;
 
+{ TStreamedOwnedComponents }
+
+constructor TStreamedOwnedComponents.Create(AOwner: TComponent);
+begin
+  inherited;
+  SubA:=TIntegerComponent.Create(Self);
+  SubA.Name:='SubA';
+  SubB:=TStringComponent.Create(Self);
+  SubB.Name:='SubB';
+end;
+
+
 Constructor TOwnedComponent.Create(AOwner : TComponent);
 
 Var