--- a/fax/faxclientandserver/Test/TE_FAX/TE_FaxTest.cpp Fri Mar 19 09:55:57 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,2443 +0,0 @@
-// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-// Telephony Fax Test main test code.
-//
-//
-
-/**
- @file
- @internalComponent
-*/
-
-#include "faxdefn.h"
-#include "fax_reversebytes.h"
-#include "FAXSET.H"
-#include "CFAX32.H"
-#include "etel.h"
-#include "etelmm.h"
-#include "faxhuff.h"
-
-#include "TE_FaxBase.h"
-#include "TE_FaxTest.h"
-
-
-//
-// Constants...
-//
-_LIT(KTEFaxTestStoreFileName, "C:\\TestStore.Fax");
-_LIT(KTEFaxTestEncodeFileName, "C:\\TestEncode.Fax");
-_LIT(KTEFaxTestHeaderFileName, "C:\\TestHeader.Fax");
-_LIT(KTEFaxTSYName, "MM");
-_LIT(KTEFaxPhoneName, "GsmPhone1");
-_LIT(KTEFaxLineName, "Fax");
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestFaxDefinition::CFaxTestFaxDefinition()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestFaxDefinition"));
- } // CFaxTestFaxDefinition::CFaxTestFaxDefinition
-
-
-/**
- * This tests the definition of a fax it's variables types.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestFaxDefinition::doTestStepL()
- {
-#ifdef __EABI__
- //
- // Removed due to RVCT warnings!!!
- //
- INFO_PRINTF1(_L("Note: This test is not fully run on RVCT compiled platforms!"));
-#else
- TFaxClass faxClass = EClassAuto;
- faxClass = EClass1;
-
- TFaxPhase faxPhase = ENotYetStarted;
- faxPhase = ECallEstablishment;
-
- TFaxResolution faxResolution = EFaxNormal;
- faxResolution = EFaxFine;
-
- TFaxCompression faxCompression = EModifiedHuffman;
- faxCompression = EModifiedRead;
-
- TInt tmpValue;
- tmpValue = KFaxPixelsPerScanLine;
- tmpValue = KFaxBytesPerScanLine;
- tmpValue = KFaxCmPerScanLine;
- tmpValue = KFaxScanLinesPer10Cm;
- tmpValue = KFaxFineScanLinesPer10Cm;
- tmpValue = KFaxT4MaxDesLength;
- tmpValue = KFaxLinesPerBand;
-#endif
-
- TFaxBufSenderId faxBufSenderId;
- faxBufSenderId.Copy(_L8("Test"));
-
- TRawScanLine rawscanline;
-
- rawscanline.Zero();
- rawscanline.SetMax();
- rawscanline.FillZ();
-
- return TestStepResult();
- } // CFaxTestFaxDefinition::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestFaxStorage::CFaxTestFaxStorage()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestFaxStorage"));
- } // CFaxTestFaxStorage::CFaxTestFaxStorage
-
-
-/**
- * This tests the definition of a fax it's variables types.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestFaxStorage::doTestStepL()
- {
- INFO_PRINTF1(_L("Started fax store tests"));
-
- iWriteFaxFile = CWriteFaxFile::NewL();
- CleanupStack::PushL(iWriteFaxFile);
- iReadFaxFile = CReadFaxFile::NewL();
- CleanupStack::PushL(iReadFaxFile);
-
- iSenderId.Copy(_L("sender's number"));
-
- TBuf8<216> scanlineBlack, scanlineWhite, scanlineAlt, scanlineCount;
- TInt index;
-
- scanlineBlack.SetLength(216);
- scanlineBlack.Fill(TChar(0));
- scanlineWhite.SetLength(216);
- scanlineWhite.Fill(TChar(255));
- scanlineAlt.SetLength(216);
- scanlineAlt.Fill(TChar(255));
-
- for (index = 0; index < 216; index += 2)
- {
- scanlineAlt[index] = 0;
- }
- scanlineCount.SetLength(216);
-
- for (index = 0; index < 216; index++)
- {
- scanlineCount[index] = TUint8(index);
- }
-
- TInt numberLines, startnol(124), endnol(132);
-
- //
- // test 1
- //
- INFO_PRINTF3(_L("Test 1 - %d to %d repeated lines"), startnol, endnol);
-
- INFO_PRINTF1(_L("All black - Resolution Fine"));
- for (numberLines=startnol; numberLines<=endnol; numberLines++)
- {
- Test1L(numberLines, scanlineBlack, EFaxFine);
- }
-
- INFO_PRINTF1(_L("All white - Resolution Fine"));
- for (numberLines=startnol; numberLines<=endnol; numberLines++)
- {
- Test1L(numberLines, scanlineWhite, EFaxFine);
- }
-
- INFO_PRINTF1(_L("Black & White - Resolution Fine"));
- for (numberLines=startnol; numberLines<=endnol; numberLines++)
- {
- Test1L(numberLines, scanlineAlt, EFaxFine);
- }
-
- INFO_PRINTF1(_L("Counting - Resolution Fine"));
- for (numberLines=startnol; numberLines<=endnol; numberLines++)
- {
- Test1L(numberLines, scanlineCount, EFaxFine);
- }
-
- INFO_PRINTF1(_L("Black & White - Resolution Normal"));
- for (numberLines=startnol; numberLines<=endnol; numberLines++)
- {
- Test1L(numberLines, scanlineAlt, EFaxNormal);
- }
-
- INFO_PRINTF1(_L("Counting - Resolution Normal"));
- for (numberLines=startnol; numberLines<=endnol; numberLines++)
- {
- Test1L(numberLines, scanlineCount, EFaxNormal);
- }
-
- //
- // test 2
- //
- INFO_PRINTF3(_L("Test 2 - %d to %d alternated lines"), startnol, endnol);
- INFO_PRINTF1(_L("White and Black & White - Resolution Fine"));
- for (numberLines = startnol; numberLines <= endnol; numberLines++)
- {
- Test2L(numberLines, scanlineWhite, scanlineAlt, EFaxFine);
- }
-
- INFO_PRINTF1(_L("Black and Black & White - Resolution Fine"));
- for (numberLines = startnol; numberLines <= endnol; numberLines++)
- {
- Test2L(numberLines, scanlineBlack, scanlineAlt, EFaxFine);
- }
-
- INFO_PRINTF1(_L("Counting and Black & White - Resolution Fine"));
- for (numberLines = startnol; numberLines <= endnol; numberLines++)
- {
- Test2L(numberLines, scanlineCount, scanlineAlt, EFaxFine);
- }
-
- //
- // test 3
- //
- TInt numberPages, maxNumberPages=5;
-
- INFO_PRINTF2(_L("Test 3 - 2 to %d pages"), maxNumberPages);
- for (numberPages = 2; numberPages <= maxNumberPages; numberPages++)
- {
- INFO_PRINTF2(_L("%d pages"),numberPages);
-
- for (numberLines = startnol; numberLines <= endnol; numberLines++)
- {
- Test3L(numberLines, numberPages);
- }
- }
-
- //
- // test 4
- //
- INFO_PRINTF1(_L("Test 4 - seeking lines"));
- for (numberLines = startnol; numberLines <= startnol; numberLines++)
- {
- Test4L(numberLines);
- }
-
- //
- // test 5
- //
- TFaxBufSenderId sd;
-
- INFO_PRINTF1(_L("Test 5 - writing and reading page info"));
- sd.Copy(_L8("+34345 4354"));
- Test5L(EFaxNormal,sd,EModifiedHuffman,TInt(2434));
- sd.Copy(_L8("+34345 4354"));
- Test5L(EFaxFine,sd,EModifiedHuffman,TInt(0));
- sd.Copy(_L8(""));
- Test5L(EFaxNormal,sd,EModifiedHuffman,TInt(1));
- sd.Copy(_L8(" + 4545 9"));
- Test5L(EFaxFine,sd,EModifiedHuffman,TInt(-1));
-
- //
- // Done!
- //
- CleanupStack::PopAndDestroy(iReadFaxFile);
- CleanupStack::PopAndDestroy(iWriteFaxFile);
-
- return TestStepResult();
- } // CFaxTestFaxStorage::doTestStepL
-
-
-void CFaxTestFaxStorage::Test1L(TInt aNumberLines, TBuf8<216>& aScanLineWrite,
- TFaxResolution aRes)
- {
- TInt row;
- TBuf8<216> scanlineRead;
-
- iWriteFaxFile->OpenL(KTEFaxTestStoreFileName, 64);
-
- for (row = 0; row < aNumberLines; row++)
- {
- iWriteFaxFile->iWriteFaxPages->AddScanLineL(aScanLineWrite);
- }
-
- iWriteFaxFile->iWriteFaxPages->EndPageL(aRes, iSenderId);
- iWriteFaxFile->CommitL();
- iWriteFaxFile->Close();
-
- iReadFaxFile->OpenL(KTEFaxTestStoreFileName);
-
- for (row = 0; row < aNumberLines; row++)
- {
- iReadFaxFile->iReadFaxPages->GetScanLineL(scanlineRead);
- TESTCHECKSTR(scanlineRead, aScanLineWrite);
- }
- iReadFaxFile->Close();
- } // CFaxTestFaxStorage::Test1L
-
-
-void CFaxTestFaxStorage::Test2L(TInt aNumberLines, TBuf8<216>& aScanLineWrite1,
- TBuf8<216>& aScanLineWrite2, TFaxResolution aRes)
- {
- TInt row;
- TBuf8<216> scanlineRead;
-
- iWriteFaxFile->OpenL(KTEFaxTestStoreFileName, 64);
- for (row = 0; row < aNumberLines; row++)
- {
- // line1
- iWriteFaxFile->iWriteFaxPages->AddScanLineL(aScanLineWrite1);
- row++;
- if (row >= aNumberLines)
- {
- break;
- }
-
- // line2
- iWriteFaxFile->iWriteFaxPages->AddScanLineL(aScanLineWrite2);
- }
-
- iWriteFaxFile->iWriteFaxPages->EndPageL(aRes, iSenderId);
- iWriteFaxFile->CommitL();
- iWriteFaxFile->Close();
-
- iReadFaxFile->OpenL(KTEFaxTestStoreFileName);
- for (row = 0; row < aNumberLines; row++)
- {
- // line1
- iReadFaxFile->iReadFaxPages->GetScanLineL(scanlineRead);
- TESTCHECKSTR(scanlineRead, aScanLineWrite1);
- row++;
- if (row >= aNumberLines)
- {
- break;
- }
-
- // line2
- iReadFaxFile->iReadFaxPages->GetScanLineL(scanlineRead);
- TESTCHECKSTR(scanlineRead, aScanLineWrite2);
- }
- iReadFaxFile->Close();
- } // CFaxTestFaxStorage::Test2L
-
-
-void CFaxTestFaxStorage::Test3L(TInt aNumberLines, TInt aNumberPages)
- {
- TInt row;
- TBuf8<216> scanlineRead, scanlineWrite;
-
- scanlineWrite.SetLength(216);
-
- iWriteFaxFile->OpenL(KTEFaxTestStoreFileName, 64);
- TInt page;
-
- for (page = 0; page < aNumberPages; page++)
- {
- scanlineWrite.SetLength(216);
- scanlineWrite.Fill(TChar(255));
-
- for (TInt t=0; t<216; t+=2)
- {
- scanlineWrite[t] = 0;
- }
-
- scanlineWrite[0] = TUint8(page);
-
- for (row = 0; row < aNumberLines; row++)
- {
- iWriteFaxFile->iWriteFaxPages->AddScanLineL(scanlineWrite);
- }
-
- iWriteFaxFile->iWriteFaxPages->EndPageL(EFaxFine, iSenderId);
- iWriteFaxFile->CommitL();
- }
- iWriteFaxFile->Close();
-
- iReadFaxFile->OpenL(KTEFaxTestStoreFileName);
-
- for (page = 0; page < aNumberPages; page++)
- {
- iReadFaxFile->iReadFaxPages->SetPageL(page);
-
- for (row = 0; row < aNumberLines; row++)
- {
- iReadFaxFile->iReadFaxPages->GetScanLineL(scanlineRead);
- TESTCHECK(scanlineRead[0], page);
- }
- }
- iReadFaxFile->Close();
- } // CFaxTestFaxStorage::Test3L
-
-
-void CFaxTestFaxStorage::Test4L(TInt aNumberLines)
- {
- TInt row;
- TBuf8<216> scanlineRead, scanlineWrite;
-
- scanlineWrite.SetLength(216);
-
- iWriteFaxFile->OpenL(KTEFaxTestStoreFileName, 64);
-
- for (row = 0; row < aNumberLines; row++)
- {
- scanlineWrite[0] = TUint8(row);
-
- iWriteFaxFile->iWriteFaxPages->AddScanLineL(scanlineWrite);
- }
-
- iWriteFaxFile->iWriteFaxPages->EndPageL(EFaxFine, iSenderId);
- iWriteFaxFile->CommitL();
- iWriteFaxFile->Close();
-
- iReadFaxFile->OpenL(KTEFaxTestStoreFileName);
-
- for (row = 0; row < aNumberLines; row++)
- {
- iReadFaxFile->iReadFaxPages->SeekScanLineL(row);
- iReadFaxFile->iReadFaxPages->GetScanLineL(scanlineRead);
- TESTCHECK(scanlineRead[0], row);
- }
-
- for (row = aNumberLines - 1; row >= 0; row--)
- {
- iReadFaxFile->iReadFaxPages->SeekScanLineL(row);
- iReadFaxFile->iReadFaxPages->GetScanLineL(scanlineRead);
- TESTCHECK(scanlineRead[0], row);
- }
-
- iReadFaxFile->Close();
- } // CFaxTestFaxStorage::Test4L
-
-
-void CFaxTestFaxStorage::Test5L(TFaxResolution aRes, TFaxBufSenderId& aSenderId,
- TFaxCompression aF1, TInt aF2)
-{
- TInt row;
- TBuf8<216> scanLineWrite;
-
- scanLineWrite.SetLength(216);
-
- iWriteFaxFile->OpenL(KTEFaxTestStoreFileName, 64);
-
- for (row=0; row<100; row++)
- {
- iWriteFaxFile->iWriteFaxPages->AddScanLineL(scanLineWrite);
- }
-
- iWriteFaxFile->iWriteFaxPages->EndPageL(aRes, aSenderId, aF1, aF2);
- iWriteFaxFile->CommitL();
- iWriteFaxFile->Close();
-
- iReadFaxFile->OpenL(KTEFaxTestStoreFileName);
-
- TFaxPageInfo info = iReadFaxFile->iReadFaxPages->CurrentPageInfo();
-
- TESTCHECK(info.iNumScanLines, 100);
- TESTCHECK(info.iResolution, aRes);
- TESTCHECKSTR(info.iSenderId, aSenderId);
- TESTCHECK(info.iCompression, aF1);
- TESTCHECK(info.iReservedFlag2, aF2);
-
- iReadFaxFile->Close();
-}
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestFaxCoding::CFaxTestFaxCoding()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestFaxCoding"));
- } // CFaxTestFaxCoding::CFaxTestFaxCoding
-
-
-/**
- * This tests the fax coding.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestFaxCoding::doTestStepL()
- {
- TInt result, pos;
- TInt blackrun;
- TBool flag(EFalse);
- RFile enFile;
- RFs fs;
- TRawScanLine rawScanLine;
- TBuf8<KFaxT4MaxDesLength> encodedScanLine;
- TBuf8<50> leftOvers;
- TRawScanLine decodedScanLine;
- TTime then;
- TTime now;
- TInt64 timetaken;
-
- CFaxT4* faxT4 = CFaxT4::NewL();
- CleanupStack::PushL(faxT4);
-
- result = fs.Connect();
- CleanupClosePushL(fs);
- TESTCHECKL(result, KErrNone);
- result = enFile.Replace(fs, KTEFaxTestEncodeFileName, EFileShareAny);
- CleanupClosePushL(enFile);
- TESTCHECKL(result, KErrNone);
-
- INFO_PRINTF1(_L("Testing 1D coding methods"));
-
- faxT4->PageInitialize(EFaxFine, EModifiedHuffman);
- rawScanLine.Fill(KFaxWhite, KFaxBytesPerScanLine);
- for (blackrun = 0; blackrun <= 1728; blackrun++)
- {
- Mem::Fill(&rawScanLine[0], blackrun/8, KFaxBlack);
- if (blackrun%8)
- {
- rawScanLine[(blackrun/8)] = (TUint8)(KFaxWhite << blackrun%8);
- }
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine);
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
- }
-
- enFile.Flush();
- CleanupStack::PopAndDestroy(&enFile);
-
- result = enFile.Open(fs, KTEFaxTestEncodeFileName, EFileShareAny);
- CleanupClosePushL(enFile);
- TESTCHECKL(result, KErrNone);
-
- // now encoded.fax contains the encoded RawScanLines from the jerry.fax file
- // and now we are going to decode them again
-
- encodedScanLine.Zero();
-
- then.UniversalTime();
- faxT4->PageInitialize(EFaxFine,EModifiedHuffman);
- rawScanLine.Fill(KFaxWhite, KFaxBytesPerScanLine);
- for (blackrun = 0; blackrun <= 1728; blackrun++)
- {
- pos = FindEndOfLine(encodedScanLine);
- if (pos == KErrNotFound)
- {
- flag = ETrue;
- if (encodedScanLine.Length() != 0)
- {
- leftOvers.Copy(encodedScanLine);
- enFile.Read(encodedScanLine, (encodedScanLine.MaxLength()-leftOvers.Length()));
-
- if (FindEndOfLine(encodedScanLine) == KErrNotFound)
- {
- User::Leave(KErrNotFound);
- }
-
- encodedScanLine.Insert(0, leftOvers);
- leftOvers.Zero();
- pos = FindEndOfLine(encodedScanLine);
- flag = EFalse;
- }
-
- if (flag)
- {
- enFile.Read(encodedScanLine);
- pos = FindEndOfLine(encodedScanLine);
- }
- }
-
- result = faxT4->DecodeScanLine(decodedScanLine, encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
-
- Mem::Fill(&rawScanLine[0], blackrun/8, KFaxBlack);
- if (blackrun%8)
- {
- rawScanLine[(blackrun/8)] = (TUint8)(KFaxWhite << blackrun%8);
- }
-
- TEST(!rawScanLine.Compare(decodedScanLine));
- encodedScanLine.Delete(0,pos+2); //2 is the length of the delimiter character.
- }
- now.UniversalTime();
- timetaken = now.MicroSecondsFrom(then).Int64();
- INFO_PRINTF2(_L("%dms to 1D encode all possible run lengths"), I64LOW(timetaken)/1000);
-
- enFile.Flush();
- CleanupStack::PopAndDestroy(&enFile);
-
- //
- // Again, for this test, we'll instantiate our own CFaxT4 object and generate
- // the fax file using the raw functions - this is purely done for testing
- // and in real life we'd do a 2D fax via the StartPage() function
- // as used in test8L
- //
- result = enFile.Replace(fs, KTEFaxTestEncodeFileName, EFileShareAny);
- CleanupClosePushL(enFile);
- TESTCHECKL(result, KErrNone);
-
- INFO_PRINTF1(_L("Test 2D coding methods"));
-
- //writeFaxFile->OpenL(_L("c:\\test.fax"),64);
-
- faxT4->PageInitialize(EFaxFine, EModifiedRead);
- rawScanLine.Fill(KFaxBlack, KFaxBytesPerScanLine); // prepare a black reference line
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine);
-
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
-
- rawScanLine[0] = KFaxWhite ; // start with a white run
- rawScanLine[KFaxBytesPerScanLine-1] = KFaxWhite ; // end with a white run
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = KFaxWhite ; // with a white run halfway through
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = KFaxWhite ; // and a white run 10 before the end
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine); // horizontal mode encoding
-
-
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
-
- rawScanLine[0] = KFaxWhite; // first run identical for v0
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = 0x1c ; // 00011100 test v+3 v-2
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = 0x3e ; // 00111110 test v+2 v-1
- rawScanLine[KFaxBytesPerScanLine-1] = 0x78 ; // 01111000 test v+1 v-3
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine); // vertical mode encoding
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
-
-
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
- rawScanLine[0] = KFaxBlack ; // for pass mode
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine); // pass mode encoding
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
-
- // same again in opposite colours
-
- faxT4->PageInitialize(EFaxFine, EModifiedRead);
- rawScanLine.Fill(KFaxWhite, KFaxBytesPerScanLine); // prepare a white reference line
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine);
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
-
- rawScanLine[0] = KFaxBlack ; // start with a black run
- rawScanLine[KFaxBytesPerScanLine-1] = KFaxBlack ; // end with a black run
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = KFaxBlack ; // with a black run halfway through
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = KFaxBlack ; // and a blacke run 10 before the end
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine); // horizontal mode encoding
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
-
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
-
- rawScanLine[0] = KFaxBlack ; // first run identical for v0
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = 0xe3 ; // 11100011 test v+3 v-2
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = 0xc1 ; // 11000001 test v+2 v-1
- rawScanLine[KFaxBytesPerScanLine-1] = 0x87 ; // 10000111 test v+1 v-3
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine); // vertical mode encoding
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
-
- rawScanLine[0] = KFaxWhite ; // for pass mode
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine); // pass mode encoding
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
-
- then.UniversalTime();
- faxT4->PageInitialize (EFaxFine, EModifiedRead); // now start again
- rawScanLine.Fill (KFaxWhite, KFaxBytesPerScanLine);
- for (blackrun=0; blackrun <= 1728 ; blackrun++)
- {
- Mem::Fill(&rawScanLine[0], blackrun/8, KFaxBlack);
- if (blackrun%8)
- {
- rawScanLine[(blackrun/8)] = (TUint8)(KFaxWhite << blackrun%8);
- }
- faxT4->EncodeScanLine(rawScanLine, encodedScanLine);
- //writeFaxFile->iWriteFaxPages->AddEncodedScanLineL(encodedScanLine);
- encodedScanLine.Append(0);
- encodedScanLine.Append(1);
- enFile.Write(encodedScanLine);
- }
- now.UniversalTime();
- timetaken = now.MicroSecondsFrom (then).Int64 ();
- INFO_PRINTF2(_L("%dms to 2D encode all possible run lengths"), I64LOW(timetaken)/1000);
-
- enFile.Flush();
- CleanupStack::PopAndDestroy(&enFile);
-
- /*
- writeFaxFile->iWriteFaxPages->EndPageL(EFaxFine,senderId, EModifiedRead);
- writeFaxFile->CommitL();
- writeFaxFile->Close();
- */
-
- //readFaxFile->OpenL(_L("c:\\test.fax"));
- //readFaxFile->iReadFaxPages->SetPageL(0);
- //TFaxPageInfo info = readFaxFile->iReadFaxPages->CurrentPageInfo();
-
- INFO_PRINTF1(_L("Test 2D decoding methods"));
-
- result = enFile.Open(fs, KTEFaxTestEncodeFileName, EFileShareAny);
- CleanupClosePushL(enFile);
- TESTCHECKL(result, KErrNone);
-
- rawScanLine.Fill(KFaxBlack, KFaxBytesPerScanLine); // prepare a black line as the reference line
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
-
- enFile.Read(encodedScanLine);
- pos = FindEndOfLine(encodedScanLine);
-
- result = faxT4->DecodeScanLine(decodedScanLine, encodedScanLine.Left(pos));
- //err = faxT4->DecodeScanLine(decodedScanLine, encodedScanLine);
- TESTCHECKL(result, KErrNone);
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
-
- rawScanLine[0] = KFaxWhite ;
- rawScanLine[KFaxBytesPerScanLine-1] = KFaxWhite ;
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = KFaxWhite ; // test horizontal mode codec
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = KFaxWhite ; // and a white run 10 before the end
-
- //enFile.Read(encodedScanLine);
- pos = FindEndOfLine(encodedScanLine);
-
- //err = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
-
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
-
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = 0x1c ; // test v+3 v-2
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = 0x3e ; // test v+2 v-1 coded
- rawScanLine[KFaxBytesPerScanLine-1] = 0x78 ; // test v+1 v-3 codec
-
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
- pos=FindEndOfLine(encodedScanLine);
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
-
- rawScanLine[0] = KFaxBlack ; // test pass and v0 codec
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
- pos=FindEndOfLine(encodedScanLine);
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
- // same again in opposite colours
-
- rawScanLine.Fill (KFaxWhite, KFaxBytesPerScanLine); // prepare a white line as the reference line
- pos=FindEndOfLine(encodedScanLine);
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
- rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
-
-
- rawScanLine[0] = KFaxBlack ;
- rawScanLine[KFaxBytesPerScanLine-1] = KFaxBlack ;
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = KFaxBlack ; // test horizontal mode codec
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = KFaxBlack ; // and a black run 10 before the end
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
- pos=FindEndOfLine(encodedScanLine);
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
-
- rawScanLine[(KFaxBytesPerScanLine/2)-1] = 0xe3 ; // 11100011 test v+3 v-2
- rawScanLine[(KFaxBytesPerScanLine/2)-10] = 0xc1 ; // 11000001 test v+2 v-1
- rawScanLine[KFaxBytesPerScanLine-1] = 0x87 ; // 10000111 test v+1 v-3
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
-
- pos=FindEndOfLine(encodedScanLine);
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
-
- rawScanLine[0] = KFaxWhite ; // test pass and v0 codec
- //readFaxFile->iReadFaxPages->GetEncodedScanLineL(encodedScanLine);
- pos=FindEndOfLine(encodedScanLine);
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2);
-
- // now do all run lengths
-
- then.UniversalTime();
- //faxT4->PageInitialize (info.iResolution, info.iCompression);
-// enFile.Close();
-
-// err=enFile.Open(fs,_L("c:\\test.fax"),EFileShareAny);
-// if (err!=KErrNone)
-// User::Leave(err);
-
-// encodedScanLine.Zero();
- flag = EFalse;
-
-
- faxT4->PageInitialize(EFaxFine,EModifiedRead);
- rawScanLine.Fill(KFaxWhite, KFaxBytesPerScanLine);
- for (blackrun=0; blackrun <= 1728; blackrun++)
- {
- pos = FindEndOfLine(encodedScanLine);
- if (pos == KErrNotFound)
- {
- flag = ETrue;
- if (encodedScanLine.Length() != 0)
- {
- leftOvers.Copy(encodedScanLine);
- enFile.Read(encodedScanLine, (encodedScanLine.MaxLength()-leftOvers.Length()));
- if (FindEndOfLine(encodedScanLine) == KErrNotFound)
- {
- User::Leave(KErrNotFound);
- }
-
- encodedScanLine.Insert(0, leftOvers);
- leftOvers.Zero();
- pos = FindEndOfLine(encodedScanLine);
- flag = EFalse;
- }
-
- if (flag)
- {
- enFile.Read(encodedScanLine);
- pos = FindEndOfLine(encodedScanLine);
- }
- }
-
- result = faxT4->DecodeScanLine(decodedScanLine,encodedScanLine.Left(pos));
- TESTCHECKL(result, KErrNone);
-
- Mem::Fill(&rawScanLine[0], blackrun/8, KFaxBlack);
- if (blackrun%8)
- {
- rawScanLine[(blackrun/8)] = (TUint8)(KFaxWhite << blackrun%8);
- }
- result = rawScanLine.Compare(decodedScanLine);
- TESTCHECKL(result, KErrNone);
- encodedScanLine.Delete(0,pos+2); //2 is the length of the delimiter character.
- }
- enFile.Flush();
-
- CleanupStack::PopAndDestroy(&enFile);
- CleanupStack::PopAndDestroy(&fs);
- CleanupStack::PopAndDestroy(faxT4);
-
- return TestStepResult();
- } // CFaxTestFaxCoding::doTestStepL
-
-
-TInt CFaxTestFaxCoding::FindEndOfLine(TDes8& aEncodedDes)
- {
- TInt maxlength;
- TUint compareWord(0);
-
- maxlength = aEncodedDes.Length();
- if (aEncodedDes.Length() == 0)
- {
- return KErrNotFound;
- }
-
- TInt index;
-
- for (index = 0; index <= maxlength - 2; index++)
- {
- compareWord = aEncodedDes[index];
- if (compareWord == 0)
- {
- compareWord = aEncodedDes[index + 1];
- if (compareWord == 1)
- {
- return index;
- }
- }
- }
-
- return KErrNotFound;
- }
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestFaxHeaderDefinition::CFaxTestFaxHeaderDefinition()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestFaxHeaderDefinition"));
- } // CFaxTestFaxHeaderDefinition::CFaxTestFaxHeaderDefinition
-
-
-/**
- * This tests the fax header definition...
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestFaxHeaderDefinition::doTestStepL()
- {
- //
- // this test is in two halves
- //
- // firstly we generate a header file - we don't do this via an Epoc print, but
- // directly using one of the test fonts in testfont.h. However, the functions
- // we need are all exercised (writing font information and writing series of
- // TRawScanLines. (Getting epoc printing to generate the correct data is not
- // part of this test.) The test function here takes a pointer to the font
- // together with its dimensions as paramters, so that fonts 1 2 and 3 bytes
- // wide can be tested out all at te same time. The fonts are in testfont.h
- //
- // secondly we use the header file we've just generate to create encoded scan lines
- // for a header, which we'll write to TEST.FAX as a fax file. Naturally, in
- // real use, we'd send our encodes scan lines as part of the T.4 image at the start
- // of each pages, but generating a fax image (which is just a series of encoded scan
- // lines) is just as good a test. So, we pass a pointer to the fax store as a parameters.
- // Again, we run this once for each font we test.
- //
- RFs fs;
- TInt result;
- RFile file;
-
- result = fs.Connect();
- CleanupClosePushL(fs);
- TESTCHECKL(result, KErrNone);
-
- result = file.Replace(fs, KTEFaxTestHeaderFileName, EFileShareAny);
- CleanupClosePushL(file);
- TESTCHECKL(result, KErrNone);
-
- INFO_PRINTF1(_L("Generating header file using one byte wide font"));
- GenerateHeaderFileL(*font8x16, 1, 16);
- INFO_PRINTF1(_L("Writing fax header to TestHeader.Fax using current time and date")) ;
- GenerateFaxFileL(file);
-
- INFO_PRINTF1(_L("Generating header file using two bytes wide font"));
- GenerateHeaderFileL(*font16x16, 2, 16);
- INFO_PRINTF1(_L("Writing fax header to TestHeader.Fax using current time and date"));
- GenerateFaxFileL(file);
-
- INFO_PRINTF1(_L("Generating header file using three bytes wide font")) ;
- GenerateHeaderFileL(*font24x16, 3, 16);
- INFO_PRINTF1(_L("Writing fax header to TestHeader.Fax using current time and date")) ;
- GenerateFaxFileL(file);
-
- file.Flush();
-
- CleanupStack::PopAndDestroy(&file);
- CleanupStack::PopAndDestroy(&fs);
-
- return TestStepResult();
- } // CFaxTestFaxHeaderDefinition::doTestStepL
-
-
-void CFaxTestFaxHeaderDefinition::GenerateFaxFileL(RFile& aFile)
- {
- // use the header to generate a *.FAX file
- TFaxHeaderInfo faxHeader;
-
- CFaxT4* faxT4 = CFaxT4::NewL();
- CleanupStack::PushL(faxT4);
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- CleanupStack::PushL(testheader);
-
- testheader->ReadFaxHeaderInfoL(faxHeader);
-
- TRawScanLine headline;
- TRawScanLine fontline;
- TBuf8<KFaxT4MaxDesLength> encodedHeadLine;
-
- TTime timeOfTransmission;
- TBuf<12> timeText;
-
- timeOfTransmission.HomeTime ();
- timeOfTransmission.FormatL(timeText, _L("%F%D%M%Y%H%T"));
-
- for (TInt index = 0; index < 12; index++)
- {
- timeText[index] -= '0';
- }
-
- // Forces 2 digit day - 2 digit month - 4 digit year - 2 digit hour - 2 digit minute
-
- for (TInt scanline = 0; scanline < faxHeader.iHeaderFontHeightInLines; scanline++)
- {
- testheader->ReadRawHeaderLineL(scanline, headline);
- testheader->ReadRawFontLineL(scanline, fontline);
-
- for (TInt fontByte = 0; fontByte < faxHeader.iHeaderFontWidthInBytes; fontByte++)
- {
- headline[((faxHeader.iOffsetToDay) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[0] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToDay + 1) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[1] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToMonth) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[2] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToMonth + 1) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[3] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToYear) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[4] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToYear + 1) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[5] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToYear + 2) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[6] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToYear + 3) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[7] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToHour) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[8] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToHour + 1) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[9] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToMinute) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[10] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToMinute + 1) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(timeText[11] * faxHeader.iHeaderFontWidthInBytes) + fontByte];
-
- // put the page info in as 12/34
-
- headline[((faxHeader.iOffsetToCurrentPage) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(1 * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToCurrentPage + 1) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(2 * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToTotalPages) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(3 * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- headline[((faxHeader.iOffsetToTotalPages + 1) * faxHeader.iHeaderFontWidthInBytes) + fontByte] = fontline[(4 * faxHeader.iHeaderFontWidthInBytes) + fontByte];
- }
-
- faxT4->EncodeScanLine(headline, encodedHeadLine);
- aFile.Write(encodedHeadLine);
- }
-
- CleanupStack::PopAndDestroy(testheader);
- CleanupStack::PopAndDestroy(faxT4);
- } // CFaxTestFaxHeaderDefinition::GenerateFaxFileL
-
-
-void CFaxTestFaxHeaderDefinition::GenerateHeaderFileL(const TUint8* aFont,
- TInt aWidth, TInt aHeight)
- {
- TFaxHeaderInfo faxHeader;
-
- //
- // declare the font size
- //
- faxHeader.iHeaderFontWidthInBytes = aWidth;
- faxHeader.iHeaderFontHeightInLines = aHeight;
-
- //
- // Work out the number of characters we can get in the scan line, so that we can
- // create a modifiable buffer to hold the header line and fill it with spaces
- //
- TInt charactersPerLine = KFaxBytesPerScanLine / faxHeader.iHeaderFontWidthInBytes;
- HBufC8* textBuff = HBufC8::NewL(charactersPerLine);
- CleanupStack::PushL(textBuff);
-
- TPtr8 textLine = textBuff->Des();
- textLine.Fill(0x20, charactersPerLine);
-
- //
- // Work out the margin we leave on each side of the page in characters
- // this is specified as 74 pixels in T.4
- //
- TInt margin = (74 / (8 * faxHeader.iHeaderFontWidthInBytes));
-
- //
- // THE FOLLOWING LAYOUT IS PURELY FOR TEST PURPOSES AND SHOULDN'T
- // BE TAKEN TO BE A DEFINITIVE HEADER LAYOUT
- //
- // assume we have the date and time on the lefthand side as dd/mm/yyyy hh:mm
- // 0000000001111111
- // 1234567890123456
- // fill in the separators
- textLine.Replace(margin + 3, 1, _L8 ("/"));
- textLine.Replace(margin + 6, 1, _L8 ("/"));
- textLine.Replace(margin + 14, 1, _L8 (":"));
-
- //
- // set up the offsets to the data
- //
- faxHeader.iOffsetToDay = margin + 1;
- faxHeader.iOffsetToMonth = margin + 4;
- faxHeader.iOffsetToYear = margin + 7;
- faxHeader.iOffsetToHour = margin + 12;
- faxHeader.iOffsetToMinute = margin + 15;
-
- //
- // assume we have the page info on the righthand side as pp/tt
- // 54321
- // fill in the separator
- //
- textLine.Replace (charactersPerLine - margin - 3, 1, _L8 ("/"));
-
- //
- // set up the offsets to the data
- //
- faxHeader.iOffsetToTotalPages = charactersPerLine - margin - 2;
- faxHeader.iOffsetToCurrentPage = charactersPerLine - margin - 5;
-
- //
- // read in the fax settings, because we want the fax ID and the user ID
- //
- TFaxSettings ourFaxSettings;
- TBuf8<20> userName;
-
- ourFaxSettings.iFaxId.Copy(_L("+++01234 56789+++"));
- userName.Copy(_L("Symbian Test Header"));
-
- TInt lenID = ourFaxSettings.iFaxId.Length ();
- TInt lenUser = userName.Length ();
-
- //
- // Fill the header line with appropriate information
- //
- textLine.Replace (faxHeader.iOffsetToMinute + 4, lenID, ourFaxSettings.iFaxId);
- textLine.Replace (faxHeader.iOffsetToCurrentPage - lenUser -2, lenUser, userName);
-
- //
- // HEADER LAYOUT NOW FINISHED
- //
- // now we can write the fax header info to the header info file
- //
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- CleanupStack::PushL(testheader);
- testheader->WriteFaxHeaderInfoL(faxHeader);
-
- //
- // Now we generate the scan line and write the header line bitmap
- // via a loop for each rowInFont in the font
- //
- TInt rowInFont;
-
- for (rowInFont = 0; rowInFont < faxHeader.iHeaderFontHeightInLines; rowInFont++)
- {
- TRawScanLine image;
- image.SetMax();
- image.FillZ();
- TInt offsetInImage = 0;
-
- offsetInImage = 0;
- for (TInt characterPosition = 0; characterPosition < charactersPerLine; characterPosition++)
- {
- for (TInt fontByte = 0; fontByte < faxHeader.iHeaderFontWidthInBytes; fontByte++)
- {
- image[offsetInImage++] = (TUint8)~KReverseByte[*(aFont + ((textLine[characterPosition] - 32) * faxHeader.iHeaderFontHeightInLines * faxHeader.iHeaderFontWidthInBytes) + (rowInFont * faxHeader.iHeaderFontWidthInBytes) + fontByte)];
- }
- }
- testheader->WriteRawHeaderLineL (rowInFont, image);
- }
-
- //
- // now we replace the first ten characters in the header text line with digits
- //
- textLine.Replace(0, 10, _L8("0123456789"));
-
- //
- // and write out the font line
- //
- for (rowInFont = 0; rowInFont < faxHeader.iHeaderFontHeightInLines; rowInFont++)
- {
- TRawScanLine image;
- image.SetMax();
- image.FillZ();
- TInt offsetInImage = 0;
-
- offsetInImage = 0;
- for (TInt characterPosition = 0; characterPosition < charactersPerLine; characterPosition++)
- {
- for (TInt fontByte = 0; fontByte < faxHeader.iHeaderFontWidthInBytes; fontByte++)
- {
- image[offsetInImage++] = (TUint8)~KReverseByte[*(aFont + ((textLine[characterPosition] - 32) * faxHeader.iHeaderFontHeightInLines * faxHeader.iHeaderFontWidthInBytes) + (rowInFont * faxHeader.iHeaderFontWidthInBytes) + fontByte)];
- }
- }
- testheader->WriteRawFontLineL (rowInFont, image);
- // we can add the test code to generate the panic here
- }
-
- CleanupStack::PopAndDestroy(testheader);
- CleanupStack::PopAndDestroy(textBuff);
- } // CFaxTestFaxHeaderDefinition::GenerateHeaderFileL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestTransmitFax01::CFaxTestTransmitFax01()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestTransmitFax01"));
- } // CFaxTestTransmitFax01::CFaxTestTransmitFax01
-
-
-/**
- * This tests the transmission of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestTransmitFax01::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto;
- faxSettings.iPreferredECM = 0;
- faxSettings.iMaxSpeed = 14400;
- faxSettings.iMinSpeed = 2400;
- faxSettings.iPreferredResolution = EFaxNormal;
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EDialAndTransmit);
-
- //
- // Generate a Fax header for transmitting...
- //
- TFaxHeaderInfo faxHeader;
-
- faxHeader.iHeaderFontWidthInBytes = 0;
-
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- TRAP_IGNORE(testheader->ReadFaxHeaderInfoL(faxHeader));
- delete testheader;
-
- GenerateHeaderFileL(faxSettings, *font8x16, 1, 16);
-
- //
- // Add the source file to the session...
- //
- faxSession->AddSourceL(_L("C:\\TEST.FAX"), Prefer1D);
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax transmission of TEST.FAX a simple test fax..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax transmission completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestTransmitFax01::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestTransmitFax02::CFaxTestTransmitFax02()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestTransmitFax02"));
- } // CFaxTestTransmitFax02::CFaxTestTransmitFax02
-
-
-/**
- * This tests the transmission of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestTransmitFax02::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto;
- faxSettings.iPreferredECM = 0;
- faxSettings.iMaxSpeed = 9600;
- faxSettings.iMinSpeed = 2400;
- faxSettings.iPreferredResolution = EFaxFine;
- faxSettings.iPreferredCompression = EModifiedRead;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EDialAndTransmit); // Or EImmediateTransmit
-
- //
- // Generate a Fax header for transmitting...
- //
- TFaxHeaderInfo faxHeader;
-
- faxHeader.iHeaderFontWidthInBytes = 0;
-
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- TRAP_IGNORE(testheader->ReadFaxHeaderInfoL(faxHeader));
- delete testheader;
-
- GenerateHeaderFileL(faxSettings, *font16x16, 2, 16);
-
- //
- // Add the source file to the session. "CHART4.FAX" is an ITU test chart.
- //
- faxSession->AddSourceL(_L("C:\\CHART4.FAX"), Prefer2D);
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax transmission of CHART4.FAX an ITU test chart..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax transmission completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestTransmitFax02::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestTransmitFax03::CFaxTestTransmitFax03()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestTransmitFax03"));
- } // CFaxTestTransmitFax03::CFaxTestTransmitFax03
-
-
-/**
- * This tests the transmission of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestTransmitFax03::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClass2;
- faxSettings.iMaxSpeed = 9600;
- faxSettings.iMinSpeed = 14400;
- faxSettings.iPreferredResolution = EFaxNormal;
- faxSettings.iPreferredCompression = EModifiedRead;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EDialAndTransmit); // Or EImmediateTransmit
-
- //
- // Generate a Fax header for transmitting...
- //
- TFaxHeaderInfo faxHeader;
-
- faxHeader.iHeaderFontWidthInBytes = 0;
-
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- TRAP_IGNORE(testheader->ReadFaxHeaderInfoL(faxHeader));
- delete testheader;
-
- GenerateHeaderFileL(faxSettings, *font24x16, 3, 16);
-
- //
- // Add the source file to the session. The "BLANK.FAX" all-white short run
- // length file.
- //
- faxSession->AddSourceL(_L("C:\\BLANK.FAX"), Prefer2D);
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax transmission of BLANK.FAX an all-white short run length file..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax transmission completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestTransmitFax03::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestTransmitFax04::CFaxTestTransmitFax04()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestTransmitFax04"));
- } // CFaxTestTransmitFax04::CFaxTestTransmitFax04
-
-
-/**
- * This tests the transmission of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestTransmitFax04::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClass2point0;
- faxSettings.iPreferredECM = 1;
- faxSettings.iMaxSpeed = 2400;
- faxSettings.iMinSpeed = 2400;
- faxSettings.iPreferredResolution = EFaxNormal;
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EDialAndTransmit); // Or EImmediateTransmit
-
- //
- // Generate a Fax header for transmitting...
- //
- TFaxHeaderInfo faxHeader;
-
- faxHeader.iHeaderFontWidthInBytes = 0;
-
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- TRAP_IGNORE(testheader->ReadFaxHeaderInfoL(faxHeader));
- delete testheader;
-
- GenerateHeaderFileL(faxSettings, *font8x16, 1, 16);
-
- //
- // Add the source file to the session...
- //
- faxSession->AddSourceL(_L("C:\\TWO.FAX"), Prefer2D);
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax transmission of TWO.FAX a two page fax..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax transmission completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestTransmitFax04::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestTransmitFax05::CFaxTestTransmitFax05()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestTransmitFax05"));
- } // CFaxTestTransmitFax05::CFaxTestTransmitFax05
-
-
-/**
- * This tests the transmission of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestTransmitFax05::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto;
- faxSettings.iPreferredECM = 1;
- faxSettings.iMaxSpeed = 14400;
- faxSettings.iMinSpeed = 2400;
- faxSettings.iPreferredResolution = EFaxNormal;
- faxSettings.iPreferredCompression = EModifiedRead;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EDialAndTransmit); // Or EImmediateTransmit
-
- //
- // Generate a Fax header for transmitting...
- //
- TFaxHeaderInfo faxHeader;
-
- faxHeader.iHeaderFontWidthInBytes = 0;
-
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- TRAP_IGNORE(testheader->ReadFaxHeaderInfoL(faxHeader));
- delete testheader;
-
- GenerateHeaderFileL(faxSettings, *font24x16, 3, 16);
-
- //
- // Add the source files to the session. This will test out the multi page
- // sends and also the overall sending of large complex fax images
- // by sending whole of CHART4.FAX, pages 3 to 5 from SIX.FAX, followed by
- // TWO.FAX starting from page 2 and followed by page 1 of BLANK.FAX.
- //
- faxSession->AddSourceL(_L("C:\\chart4.fax"), Prefer2D);
- faxSession->AddSourceL(_L("C:\\SIX.FAX"), 3, 5);
- faxSession->AddSourceL(_L("C:\\TWO.FAX"), 2);
- faxSession->AddSourceL(_L("C:\\BLANK.FAX"), 1, 1);
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax transmission of a large complex fax set..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax transmission completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestTransmitFax05::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestTransmitFax06::CFaxTestTransmitFax06()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestTransmitFax06"));
- } // CFaxTestTransmitFax06::CFaxTestTransmitFax06
-
-
-/**
- * This tests the transmission of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestTransmitFax06::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto;
- faxSettings.iPreferredECM = 0;
- faxSettings.iMaxSpeed = 14400;
- faxSettings.iMinSpeed = 2400;
- faxSettings.iPreferredResolution = EFaxFine;
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EDialAndTransmit); // Or EImmediateTransmit
-
- //
- // Generate a Fax header for transmitting...
- //
- TFaxHeaderInfo faxHeader;
-
- faxHeader.iHeaderFontWidthInBytes = 0;
-
- CFaxHeaderLines* testheader = CFaxHeaderLines::NewL();
- TRAP_IGNORE(testheader->ReadFaxHeaderInfoL(faxHeader));
- delete testheader;
-
- GenerateHeaderFileL(faxSettings, *font24x16, 3, 16);
-
- //
- // Add the source files to the session. This tests a bad page fax.
- //
- faxSession->AddSourceL(_L("C:\\BADPAGE.FAX"), Prefer1D);
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax transmission of a bad page fax..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax transmission completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestTransmitFax06::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestReceiveFax01::CFaxTestReceiveFax01()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestReceiveFax01"));
- } // CFaxTestReceiveFax01::CFaxTestReceiveFax01
-
-
-/**
- * This tests the reception of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestReceiveFax01::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto; // Or EClass1, EClass2, EClass2point0
- if (faxSettings.iFaxClass == EClass2point0 ||
- faxSettings.iFaxClass == EClassAuto)
- {
- faxSettings.iPreferredECM = 0; // Or 1
- }
-
- faxSettings.iMaxSpeed = 14400; // 2400 to 14400 % 2400
- faxSettings.iMinSpeed = 2400; // 2400 to 14400 % 2400
- faxSettings.iPreferredResolution = EFaxNormal; // Or EFaxFine
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EWaitForRingAndReceive); // Or EDialAndReceiveFaxBack, EDialAndReceivePoll, EImmediateReceive
- faxSession->SetReceiveFileName(_L("C:\\RECEIVE01.FAX"));
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax reception..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax reception completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestReceiveFax01::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestReceiveFax02::CFaxTestReceiveFax02()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestTransmitFax02"));
- } // CFaxTestReceiveFax02::CFaxTestReceiveFax02
-
-
-/**
- * This tests the reception of a fax, specifying the call object name first.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestReceiveFax02::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto; // Or EClass1, EClass2, EClass2point0
- if (faxSettings.iFaxClass == EClass2point0 ||
- faxSettings.iFaxClass == EClassAuto)
- {
- faxSettings.iPreferredECM = 0; // Or 1
- }
-
- faxSettings.iMaxSpeed = 14400; // 2400 to 14400 % 2400
- faxSettings.iMinSpeed = 2400; // 2400 to 14400 % 2400
- faxSettings.iPreferredResolution = EFaxNormal; // Or EFaxFine
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
-
- faxSession->SetMode(EWaitForRingAndReceive); // Or EDialAndReceiveFaxBack, EDialAndReceivePoll, EImmediateReceive
- faxSession->SetReceiveFileName(_L("C:\\RECEIVE02.FAX"));
-
- //
- // For this test, find the name of the incoming call and request the fax
- // session to open that call...
- //
- RTelServer telServer;
- RMobilePhone phone;
- RLine line;
- RCall call;
- TName incomingCallName;
- RCall::TStatus callStatus;
-
- TInt result = telServer.Connect();
- TESTCHECKL(result, KErrNone);
- CleanupClosePushL(telServer);
-
- result = telServer.LoadPhoneModule(KTEFaxTSYName);
- TESTCHECKL(result, KErrNone);
-
- result = phone.Open(telServer, KTEFaxPhoneName);
- TESTCHECKL(result, KErrNone);
- CleanupClosePushL(phone);
-
- result = line.Open(phone, KTEFaxLineName);
- TESTCHECKL(result, KErrNone);
- CleanupClosePushL(line);
-
- TRequestStatus status;
-
- line.NotifyIncomingCall(status, incomingCallName);
- User::WaitForRequest(status);
- TESTCHECKL(status.Int(), KErrNone);
- INFO_PRINTF2(_L("Incoming fax call is \"%S\"..."), &incomingCallName);
-
- faxSession->SetCallObjectName(incomingCallName);
-
- //
- // Open the incoming call and request a notification of state change. If
- // the Fax Server were to open a different RCall object then this would
- // not work - thus it is a good test of SetCallObjectName()...
- //
- result = call.OpenExistingCall(line, incomingCallName);
- TESTCHECKL(result, KErrNone);
- CleanupClosePushL(call);
-
- callStatus = RCall::EStatusUnknown;
- call.NotifyStatusChange(status, callStatus);
- TESTCHECK(status.Int(), KRequestPending);
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax reception..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax reception completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Check that the notify operation returned as the fax server answered the
- // call...
- //
- User::WaitForRequest(status);
- TESTCHECK(status.Int(), KErrNone);
- TESTCHECK(callStatus, RCall::EStatusAnswering);
-
- //
- // Clean up Etel handles...
- //
- CleanupStack::PopAndDestroy(&call);
- CleanupStack::PopAndDestroy(&line);
- CleanupStack::PopAndDestroy(&phone);
- CleanupStack::PopAndDestroy(&telServer);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestReceiveFax02::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestReceiveFax03::CFaxTestReceiveFax03()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestReceiveFax03"));
- } // CFaxTestReceiveFax03::CFaxTestReceiveFax03
-
-
-/**
- * This tests the reception of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestReceiveFax03::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto; // Or EClass1, EClass2, EClass2point0
- if (faxSettings.iFaxClass == EClass2point0 ||
- faxSettings.iFaxClass == EClassAuto)
- {
- faxSettings.iPreferredECM = 0; // Or 1
- }
-
- faxSettings.iMaxSpeed = 14400; // 2400 to 14400 % 2400
- faxSettings.iMinSpeed = 2400; // 2400 to 14400 % 2400
- faxSettings.iPreferredResolution = EFaxNormal; // Or EFaxFine
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
- faxSession->SetMode(EWaitForRingAndReceive); // Or EDialAndReceiveFaxBack, EDialAndReceivePoll, EImmediateReceive
- faxSession->SetReceiveFileName(_L("C:\\RECEIVE03.FAX"));
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax reception..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax reception completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestReceiveFax03::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestReceiveFax04::CFaxTestReceiveFax04()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestReceiveFax04"));
- } // CFaxTestReceiveFax04::CFaxTestReceiveFax04
-
-
-/**
- * This tests the reception of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestReceiveFax04::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto; // Or EClass1, EClass2, EClass2point0
- if (faxSettings.iFaxClass == EClass2point0 ||
- faxSettings.iFaxClass == EClassAuto)
- {
- faxSettings.iPreferredECM = 0; // Or 1
- }
-
- faxSettings.iMaxSpeed = 14400; // 2400 to 14400 % 2400
- faxSettings.iMinSpeed = 2400; // 2400 to 14400 % 2400
- faxSettings.iPreferredResolution = EFaxNormal; // Or EFaxFine
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
-
- faxSession->SetMode(EWaitForRingAndReceive); // Or EDialAndReceiveFaxBack, EDialAndReceivePoll, EImmediateReceive
- faxSession->SetReceiveFileName(_L("C:\\RECEIVE04.FAX"));
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax reception..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax reception completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestReceiveFax04::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestReceiveFax05::CFaxTestReceiveFax05()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestReceiveFax05"));
- } // CFaxTestReceiveFax05::CFaxTestReceiveFax05
-
-
-/**
- * This tests the reception of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestReceiveFax05::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto; // Or EClass1, EClass2, EClass2point0
- if (faxSettings.iFaxClass == EClass2point0 ||
- faxSettings.iFaxClass == EClassAuto)
- {
- faxSettings.iPreferredECM = 0; // Or 1
- }
-
- faxSettings.iMaxSpeed = 14400; // 2400 to 14400 % 2400
- faxSettings.iMinSpeed = 2400; // 2400 to 14400 % 2400
- faxSettings.iPreferredResolution = EFaxNormal; // Or EFaxFine
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
-
- faxSession->SetMode(EWaitForRingAndReceive); // Or EDialAndReceiveFaxBack, EDialAndReceivePoll, EImmediateReceive
- faxSession->SetReceiveFileName(_L("C:\\RECEIVE05.FAX"));
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax reception..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax reception completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestReceiveFax05::doTestStepL
-
-
-/**
- * Each test step initialises it's own name
- */
-CFaxTestReceiveFax06::CFaxTestReceiveFax06()
- {
- //
- // Store the name of this test case. This is the name that is used by
- // the script file.
- //
- SetTestStepName(_L("TestReceiveFax06"));
- } // CFaxTestReceiveFax06::CFaxTestReceiveFax06
-
-
-/**
- * This tests the reception of a straight forward test fax.
- *
- * @return Test verdict for this test.
- */
-enum TVerdict CFaxTestReceiveFax06::doTestStepL()
- {
- TFaxSettings faxSettings;
-
- //
- // Before instantiating CFaxTransfer we have to have a valid set of
- // TFaxSettings to pass in to it - so our first step must always be
- // to read the fax settings or set up suitable defaults.
- //
- TRAPD(leaveCode, ReadFaxCommDBSettingsL(faxSettings));
- if (leaveCode != KErrNone)
- {
- INFO_PRINTF2(_L("ReadFaxCommDBSettingsL() error %d!"), leaveCode);
- }
- TESTCHECKL(leaveCode, KErrNone);
-
- //
- // Set the Fax parameters...
- //
- faxSettings.iFaxClass = EClassAuto; // Or EClass1, EClass2, EClass2point0
- if (faxSettings.iFaxClass == EClass2point0 ||
- faxSettings.iFaxClass == EClassAuto)
- {
- faxSettings.iPreferredECM = 0; // Or 1
- }
-
- faxSettings.iMaxSpeed = 14400; // 2400 to 14400 % 2400
- faxSettings.iMinSpeed = 2400; // 2400 to 14400 % 2400
- faxSettings.iPreferredResolution = EFaxNormal; // Or EFaxFine
- faxSettings.iPreferredCompression = EModifiedHuffman;
- faxSettings.iFaxId.Copy(_L8("+441632960000"));
-
- //
- // Start the Fax session...
- //
- CFaxTransfer* faxSession = NULL;
-
- TRAPD(startSessionResult, faxSession = CFaxTransfer::NewL(faxSettings));
- TESTCHECKL(startSessionResult, KErrNone);
- TESTL(faxSession != NULL);
-
-
- faxSession->SetMode(EWaitForRingAndReceive); // Or EDialAndReceiveFaxBack, EDialAndReceivePoll, EImmediateReceive
- faxSession->SetReceiveFileName(_L("C:\\RECEIVE06.FAX"));
-
- //
- // Set the destination phone number if needed...
- //
- if ((faxSession->iMode & KFaxNoDial) == 0)
- {
- TBuf8<32> phoneNumber;
-
- ReadDestPhoneNumberFromIniFileL(phoneNumber);
- faxSession->SetPhoneNumberL(phoneNumber);
- }
-
- //
- // Begin transfering the fax...
- //
- INFO_PRINTF1(_L("Starting fax reception..."));
- TInt transferResult = BeginFaxTransfer(faxSession);
- INFO_PRINTF2(_L("Fax reception completed with return code %d"), transferResult);
- TESTCHECK(transferResult, KErrNone);
-
- //
- // Clean up the Fax session...
- //
- faxSession->RemoveAllSources();
- delete faxSession;
- faxSession = NULL;
-
- return TestStepResult();
- } // CFaxTestReceiveFax06::doTestStepL
-