anchor.diff:    {$ENDIF}
   end;
   { -------------------------------------------------------------------------- }
  -procedure TAbZipArchiveTests.SetUp;
  -begin
  -  inherited;
  -end;
  -{ -------------------------------------------------------------------------- }
  -procedure TAbZipArchiveTests.TearDown;
  -begin
  -  inherited;
  -end;
  -{ -------------------------------------------------------------------------- }
  -procedure TAbZipArchiveTests.TestVerifyZip;
  -var
  -  FS: TFileStream;
  -begin
  -  FS := TFileStream.Create(MPLDir + 'MPL.zip', fmOpenRead or fmShareDenyNone);
  -  try
  -    Check(VerifyZip(FS) = atZip, 'VerifyZip failed on valid ZIP');
  -  finally
  -    FS.Free;
  -  end;
  -  FS := TFileStream.Create(MPLDir + 'MPL.cab', fmOpenRead or fmShareDenyNone);
  -  try
  -    Check(VerifyZip(FS) = atUnknown, 'VerifyZip succeeded on CAB');
  -  finally
  -    FS.Free;
  -  end;
  +class function TAbZipArchiveTests.ArchiveClass: TAbArchiveClass;
  +begin
  +  Result := TAbZipArchive;
  +end;
  +{ -------------------------------------------------------------------------- }
  +class function TAbZipArchiveTests.ArchiveExt: string;
  +begin
  +  Result := '.zip';
  +end;
  +{ -------------------------------------------------------------------------- }
  +class function TAbZipArchiveTests.ArchiveType: TAbArchiveType;
  +begin
  +  Result := atZip;
  +end;
  +{ -------------------------------------------------------------------------- }
  +class function TAbZipArchiveTests.VerifyArchive(aStream: TStream): TAbArchiveType;
  +begin
  +  Result := VerifyZip(aStream);
   end;
   
   {----------------------------------------------------------------------------}
  
positive.code: interface
  
  uses
    Classes, TestFrameWork, AbTestFrameWork, AbArcTyp, AbUtils, AbZipTyp;
  
  type
    TAbZipArchiveTests = class(TAbTestCase)
    private
      class function DecompressSuite(const aDir: string): ITestSuite;
  
    protected
      procedure SetUp; override;
      procedure TearDown; override;
  
    public
      class function Suite: ITestSuite; override;
  
    published
      procedure TestVerifyZip;
    end;
  
    TAbZipDecompressTest = class(TAbTestCase)
    private
      FFileName: string;
      procedure ExtractHelper(Sender : TObject; Item : TAbArchiveItem;
        const NewName : string);
      procedure ItemFailure(Sender : TObject; Item : TAbArchiveItem;
        ProcessType : TAbProcessType; ErrorClass : TAbErrorClass;
        ErrorCode : Integer);
  
negative.code: 
  uses
    SysUtils, AbConst, AbUnzPrc, AbZipPrc;
  
  {----------------------------------------------------------------------------}
  { TAbZipArchive with Extract/Insert helpers }
  {----------------------------------------------------------------------------}
  
  type
    TAbZipArchive = class(AbZipTyp.TAbZipArchive)
    private
      procedure DoExtractHelper(Sender : TObject; Item : TAbArchiveItem;
        const NewName : string);
      procedure DoExtractToStreamHelper(Sender : TObject; Item : TAbArchiveItem;
        OutStream : TStream);
      procedure DoInsertHelper(Sender : TObject; Item : TAbArchiveItem;
        OutStream : TStream);
      procedure DoInsertFromStreamHelper(Sender : TObject; Item : TAbArchiveItem;
        OutStream, InStream : TStream);
    public {methods}
      constructor CreateFromStream( aStream : TStream; const ArchiveName : string );
        override;
    end;
  
  constructor TAbZipArchive.CreateFromStream( aStream : TStream;
    const ArchiveName : string );
  begin
    inherited;
    ExtractHelper := DoExtractHelper;
    ExtractToStreamHelper := DoExtractToStreamHelper;
    InsertHelper := DoInsertHelper;
    InsertFromStreamHelper := DoInsertFromStreamHelper;
  end;
  {----------------------------------------------------------------------------}
  procedure TAbZipArchive.DoExtractHelper(Sender : TObject;
    Item : TAbArchiveItem; const NewName : string);
  begin
    AbUnzip(Sender, TAbZipItem(Item), NewName);
  end;
  {----------------------------------------------------------------------------}
  procedure TAbZipArchive.DoExtractToStreamHelper(Sender : TObject;
    Item : TAbArchiveItem; OutStream : TStream);
  begin
    AbUnzipToStream(Sender, TAbZipItem(Item), OutStream);
  end;
  {----------------------------------------------------------------------------}
  procedure TAbZipArchive.DoInsertHelper(Sender : TObject;
    Item : TAbArchiveItem; OutStream : TStream);
  begin
    AbZip(TAbZipArchive(Sender), TAbZipItem(Item), OutStream);
  end;
  {----------------------------------------------------------------------------}
  procedure TAbZipArchive.DoInsertFromStreamHelper(Sender : TObject;
    Item : TAbArchiveItem; OutStream, InStream : TStream);
  begin
    AbZipFromStream(TAbZipArchive(Sender), TAbZipItem(Item), OutStream, InStream);
  end;
  
  {----------------------------------------------------------------------------}
  { TAbZipArchiveTests }
  