fontservices/textbase/tgdi/TBiDiDefect.cpp
author hgs
Mon, 12 Jul 2010 14:38:26 +0800
changeset 45 662fa7de7023
permissions -rw-r--r--
201024_05
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
662fa7de7023 201024_05
hgs
parents:
diff changeset
     1
// Copyright (c) 2003-2010 Nokia Corporation and/or its subsidiary(-ies).
662fa7de7023 201024_05
hgs
parents:
diff changeset
     2
// All rights reserved.
662fa7de7023 201024_05
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
662fa7de7023 201024_05
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
662fa7de7023 201024_05
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
662fa7de7023 201024_05
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
662fa7de7023 201024_05
hgs
parents:
diff changeset
     7
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
     8
// Initial Contributors:
662fa7de7023 201024_05
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
662fa7de7023 201024_05
hgs
parents:
diff changeset
    10
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    11
// Contributors:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    12
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    13
// Description:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    14
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
    15
662fa7de7023 201024_05
hgs
parents:
diff changeset
    16
#include <biditext.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    17
#include <bidi.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    18
#include <bidivisual.h>
662fa7de7023 201024_05
hgs
parents:
diff changeset
    19
#include "TGraphicsContext.h"
662fa7de7023 201024_05
hgs
parents:
diff changeset
    20
#include "TBiDiDefect.h"
662fa7de7023 201024_05
hgs
parents:
diff changeset
    21
662fa7de7023 201024_05
hgs
parents:
diff changeset
    22
class CTBiDiDefect : public CTGraphicsBase
662fa7de7023 201024_05
hgs
parents:
diff changeset
    23
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
    24
662fa7de7023 201024_05
hgs
parents:
diff changeset
    25
public:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    26
	CTBiDiDefect(CTestStep* aStep);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    27
	~CTBiDiDefect();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    28
662fa7de7023 201024_05
hgs
parents:
diff changeset
    29
protected:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    30
//from 	CTGraphicsStep
662fa7de7023 201024_05
hgs
parents:
diff changeset
    31
	virtual void RunTestCaseL(TInt aCurTestCase);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    32
662fa7de7023 201024_05
hgs
parents:
diff changeset
    33
private:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    34
	void CreateTestGraphicsContextL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    35
662fa7de7023 201024_05
hgs
parents:
diff changeset
    36
	void INC016328L(const TDesC& aTestText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    37
	void INC016665L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    38
	void INC017825L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    39
	void INC017974L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    40
	void INC017991L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    41
	void DEF021227();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    42
	void INC023337();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    43
	void INC023917();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    44
	void DEF037928();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    45
	void DEF021347L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    46
	void INC037549L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    47
	void INC042422L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    48
	void DEF059214L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    49
662fa7de7023 201024_05
hgs
parents:
diff changeset
    50
	void TestDEF021347L(TUint16 aControlCharacter);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    51
	void TestDEF043720L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    52
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
    53
	void TestPDEF117110L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
    54
662fa7de7023 201024_05
hgs
parents:
diff changeset
    55
private:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    56
	TBidirectionalState::TRunInfo* iRunInfoArray;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    57
	CTestFont* iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    58
	TBidiText* iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    59
	CTestGraphicsDevice* iTestGraphicsDevice;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    60
	CTestGraphicsContext* iTestGraphicsContext;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    61
	};
662fa7de7023 201024_05
hgs
parents:
diff changeset
    62
662fa7de7023 201024_05
hgs
parents:
diff changeset
    63
662fa7de7023 201024_05
hgs
parents:
diff changeset
    64
CTBiDiDefect::CTBiDiDefect(CTestStep* aStep) :
662fa7de7023 201024_05
hgs
parents:
diff changeset
    65
	CTGraphicsBase(aStep),
662fa7de7023 201024_05
hgs
parents:
diff changeset
    66
	iRunInfoArray(NULL),
662fa7de7023 201024_05
hgs
parents:
diff changeset
    67
	iTestFont(NULL),
662fa7de7023 201024_05
hgs
parents:
diff changeset
    68
	iBidiText(NULL),
662fa7de7023 201024_05
hgs
parents:
diff changeset
    69
	iTestGraphicsDevice(NULL),
662fa7de7023 201024_05
hgs
parents:
diff changeset
    70
	iTestGraphicsContext(NULL)
662fa7de7023 201024_05
hgs
parents:
diff changeset
    71
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
    72
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
    73
662fa7de7023 201024_05
hgs
parents:
diff changeset
    74
CTBiDiDefect::~CTBiDiDefect()
662fa7de7023 201024_05
hgs
parents:
diff changeset
    75
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
    76
	delete iTestGraphicsContext;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    77
	delete iTestGraphicsDevice;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    78
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    79
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    80
	delete [] iRunInfoArray;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    81
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
    82
662fa7de7023 201024_05
hgs
parents:
diff changeset
    83
void CTBiDiDefect::RunTestCaseL(TInt aCurTestCase)
662fa7de7023 201024_05
hgs
parents:
diff changeset
    84
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
    85
    ((CTBiDiDefectStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    86
	switch(aCurTestCase)
662fa7de7023 201024_05
hgs
parents:
diff changeset
    87
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
    88
	case 1:
662fa7de7023 201024_05
hgs
parents:
diff changeset
    89
		{
662fa7de7023 201024_05
hgs
parents:
diff changeset
    90
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
    91
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0001
662fa7de7023 201024_05
hgs
parents:
diff changeset
    92
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
    93
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0001"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
    94
		TBuf<32> testText(_L(".Test"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
    95
		INFO_PRINTF1(_L("INC016328"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
    96
		INC016328L(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
    97
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
    98
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
    99
	case 2:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   100
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   101
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0002
662fa7de7023 201024_05
hgs
parents:
diff changeset
   102
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   103
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0002"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   104
		INFO_PRINTF1(_L("INC016665"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   105
		INC016665L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   106
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   107
	case 3:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   108
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   109
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0003
662fa7de7023 201024_05
hgs
parents:
diff changeset
   110
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   111
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0003"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   112
		INFO_PRINTF1(_L("INC017825"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   113
		INC017825L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   114
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   115
	case 4:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   116
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   117
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0004
662fa7de7023 201024_05
hgs
parents:
diff changeset
   118
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   119
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0004"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   120
		INFO_PRINTF1(_L("INC017974"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   121
		INC017974L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   122
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   123
	case 5:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   124
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   125
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0005
662fa7de7023 201024_05
hgs
parents:
diff changeset
   126
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   127
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0005"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   128
		INFO_PRINTF1(_L("INC017991"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   129
		INC017991L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   130
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   131
	case 6:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   132
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   133
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0006
662fa7de7023 201024_05
hgs
parents:
diff changeset
   134
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   135
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0006"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   136
		INFO_PRINTF1(_L("DEF021227"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   137
		DEF021227();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   138
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   139
	case 7:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   140
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   141
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0007
662fa7de7023 201024_05
hgs
parents:
diff changeset
   142
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   143
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0007"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   144
		INFO_PRINTF1(_L("DEF021347"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   145
		DEF021347L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   146
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   147
	case 8:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   148
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   149
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0008
662fa7de7023 201024_05
hgs
parents:
diff changeset
   150
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   151
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0008"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   152
		INFO_PRINTF1(_L("INC023337"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   153
		INC023337();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   154
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   155
	case 9:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   156
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   157
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0009
662fa7de7023 201024_05
hgs
parents:
diff changeset
   158
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   159
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0009"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   160
		INFO_PRINTF1(_L("INC023917"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   161
		INC023917();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   162
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   163
	case 10:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   164
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   165
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0010
662fa7de7023 201024_05
hgs
parents:
diff changeset
   166
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   167
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0010"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   168
		INFO_PRINTF1(_L("DEF037928"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   169
		DEF037928();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   170
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   171
	case 11:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   172
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   173
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0011
662fa7de7023 201024_05
hgs
parents:
diff changeset
   174
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   175
	//INC037549 TBidiText crashes if  <CR><LF> appear at the end of the text
662fa7de7023 201024_05
hgs
parents:
diff changeset
   176
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0011"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   177
		INFO_PRINTF1(_L("INC037549L"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   178
		INC037549L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   179
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   180
	case 12:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   181
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   182
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0012
662fa7de7023 201024_05
hgs
parents:
diff changeset
   183
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   184
	//INC042422 when calculated length in BidiCompact.cpp TRunInfoCompact::Reorder < 0
662fa7de7023 201024_05
hgs
parents:
diff changeset
   185
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0012"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   186
		INFO_PRINTF1(_L("INC042422L"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   187
		INC042422L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   188
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   189
	case 13:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   190
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   191
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0013
662fa7de7023 201024_05
hgs
parents:
diff changeset
   192
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   193
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0013"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   194
		INFO_PRINTF1(_L("DEF043720"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   195
		TestDEF043720L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   196
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   197
	case 14:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   198
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   199
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0014
662fa7de7023 201024_05
hgs
parents:
diff changeset
   200
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   201
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0014"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   202
		INFO_PRINTF1(_L("DEF059214: Erroneous caret cursor movements"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   203
		DEF059214L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   204
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   205
	case 15:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   206
/**
662fa7de7023 201024_05
hgs
parents:
diff changeset
   207
   @SYMTestCaseID          	GRAPHICS-GDI-BiDiDefect-0015
662fa7de7023 201024_05
hgs
parents:
diff changeset
   208
*/
662fa7de7023 201024_05
hgs
parents:
diff changeset
   209
		((CTBiDiDefectStep*)iStep)->SetTestStepID(_L("GRAPHICS-GDI-BiDiDefect-0015"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   210
		INFO_PRINTF1(_L("PDEF117110"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   211
		TestPDEF117110L();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   212
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   213
	case 16:
662fa7de7023 201024_05
hgs
parents:
diff changeset
   214
		((CTBiDiDefectStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   215
		((CTBiDiDefectStep*)iStep)->CloseTMSGraphicsStep();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   216
		TestComplete();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   217
		break;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   218
		}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   219
        ((CTBiDiDefectStep*)iStep)->RecordTestResultL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   220
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   221
662fa7de7023 201024_05
hgs
parents:
diff changeset
   222
void CTBiDiDefect::CreateTestGraphicsContextL()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   223
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   224
	delete iTestGraphicsContext;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   225
	iTestGraphicsContext = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   226
	delete iTestGraphicsDevice;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   227
	iTestGraphicsDevice = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   228
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   229
	TSize windowSize(400, 400);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   230
	iTestGraphicsDevice = CTestGraphicsDevice::NewL(windowSize);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   231
	CGraphicsContext* tContext = NULL;	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   232
	TEST(iTestGraphicsDevice->CreateContext(tContext) == KErrNone);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   233
	iTestGraphicsContext = static_cast<CTestGraphicsContext*>(tContext);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   234
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   235
662fa7de7023 201024_05
hgs
parents:
diff changeset
   236
//TBidiText crashes if the first character of the text is '.'.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   237
void CTBiDiDefect::INC016328L(const TDesC& aTestText)
662fa7de7023 201024_05
hgs
parents:
diff changeset
   238
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   239
	TInt arraySize = TBidirectionalState::GenerateBdRunArray(aTestText.Ptr(), aTestText.Length(), 0, 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   240
	iRunInfoArray = new (ELeave) TBidirectionalState::TRunInfo[arraySize];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   241
	TBidirectionalState::GenerateBdRunArray(aTestText.Ptr(), aTestText.Length(), iRunInfoArray, arraySize);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   242
	TBidirectionalState state;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   243
	state.ReorderLine(iRunInfoArray, arraySize, ETrue, ETrue, EFalse, TChar::EOtherNeutral, TChar::EOtherNeutral);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   244
	TEST(iRunInfoArray->iLength > 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   245
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   246
662fa7de7023 201024_05
hgs
parents:
diff changeset
   247
//Truncation after space character in Bidirectional text classes.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   248
//Actually it doesn't prove missing space character but proves 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   249
//truncation at the middle of "text" word - yet another defect.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   250
void CTBiDiDefect::INC016665L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   251
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   252
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   253
	iBidiText = TBidiText::NewL(_L("Truncated text"), 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   254
	iBidiText->WrapText(110, *iTestFont, NULL);//"Truncated " and "text"
662fa7de7023 201024_05
hgs
parents:
diff changeset
   255
	TEST(iBidiText->DisplayText().Length() == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   256
	TEST(iBidiText->DisplayText()[9] == 0x2026);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   257
	delete (iBidiText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   258
662fa7de7023 201024_05
hgs
parents:
diff changeset
   259
	iBidiText = TBidiText::NewL(_L("Truncated     text"), 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   260
	iBidiText->WrapText(110, *iTestFont, NULL);//"Truncated " and "text"
662fa7de7023 201024_05
hgs
parents:
diff changeset
   261
	TEST(iBidiText->DisplayText().Length() == 10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   262
	TEST(iBidiText->DisplayText()[9] == 0x2026);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   263
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   264
662fa7de7023 201024_05
hgs
parents:
diff changeset
   265
//TBidiText crashes with length 0 descriptor.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   266
void CTBiDiDefect::INC017825L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   267
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   268
	delete iTestGraphicsContext;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   269
	iTestGraphicsContext = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   270
	CreateTestGraphicsContextL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   271
662fa7de7023 201024_05
hgs
parents:
diff changeset
   272
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   273
	iTestFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   274
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   275
662fa7de7023 201024_05
hgs
parents:
diff changeset
   276
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   277
	iBidiText = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   278
	iBidiText = TBidiText::NewL(KNullDesC(), 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   279
	iBidiText->WrapText(100, *iTestFont, NULL);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   280
662fa7de7023 201024_05
hgs
parents:
diff changeset
   281
	iBidiText->DrawText(*iTestGraphicsContext, TPoint(0, 20), 20, CGraphicsContext::ERight);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   282
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   283
662fa7de7023 201024_05
hgs
parents:
diff changeset
   284
//BidiText does not show 0x062A character correctly if it is a first character.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   285
void CTBiDiDefect::INC017974L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   286
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   287
	_LIT(KTextWithLatinLettersFirstArabicLetter, "\x062A abcdef");
662fa7de7023 201024_05
hgs
parents:
diff changeset
   288
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   289
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   290
	iTestFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   291
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   292
662fa7de7023 201024_05
hgs
parents:
diff changeset
   293
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   294
	iBidiText = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   295
	iBidiText = TBidiText::NewL(KTextWithLatinLettersFirstArabicLetter, 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   296
	iBidiText->WrapText(100, *iTestFont, NULL);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   297
	const TText* text = iBidiText->DisplayText().Ptr();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   298
	TEST(text[7] == 0x062A);//the arabic character should be the first at the end.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   299
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   300
662fa7de7023 201024_05
hgs
parents:
diff changeset
   301
//TBidiText::DrawText draws out of the area if alignment is right.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   302
void CTBiDiDefect::INC017991L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   303
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   304
	delete iTestGraphicsContext;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   305
	iTestGraphicsContext = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   306
	CreateTestGraphicsContextL();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   307
662fa7de7023 201024_05
hgs
parents:
diff changeset
   308
	_LIT(KTextWithLatinLetters, "abc def ghijk lmnop qrstuvw xyz 12.34.");
662fa7de7023 201024_05
hgs
parents:
diff changeset
   309
	const TInt KTextWidth = 200;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   310
662fa7de7023 201024_05
hgs
parents:
diff changeset
   311
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   312
	iTestFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   313
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   314
662fa7de7023 201024_05
hgs
parents:
diff changeset
   315
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   316
	iBidiText = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   317
	iBidiText = TBidiText::NewL(KTextWithLatinLetters, 2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   318
	iBidiText->WrapText(KTextWidth, *iTestFont, NULL);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   319
662fa7de7023 201024_05
hgs
parents:
diff changeset
   320
	iBidiText->DrawText(*iTestGraphicsContext, TPoint(0, 20), 20, CGraphicsContext::ERight);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   321
	const TTestGCDisplayLine& line1 = iTestGraphicsContext->DisplayLine(0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   322
	const TDesC& text1 = line1.iLineData;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   323
	TInt width1 = iTestFont->TextWidthInPixels(text1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   324
	TEST((width1 + line1.iLinePos.iX) <= KTextWidth);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   325
	const TTestGCDisplayLine& line2 = iTestGraphicsContext->DisplayLine(1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   326
	const TDesC& text2 = line2.iLineData;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   327
	TInt width2 = iTestFont->TextWidthInPixels(text2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   328
	TEST((width2 + line2.iLinePos.iX) <= KTextWidth);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   329
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   330
662fa7de7023 201024_05
hgs
parents:
diff changeset
   331
//TBidiLogicalToVisual seems to lose characters. 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   332
void CTBiDiDefect::DEF021227()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   333
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   334
	_LIT(KTestText, "Waitnote + D prompt ");
662fa7de7023 201024_05
hgs
parents:
diff changeset
   335
// 	_LIT(KTestText, "Waitnote H D prompt ");
662fa7de7023 201024_05
hgs
parents:
diff changeset
   336
	TBuf<100> visualText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   337
	visualText.Fill(0xCDCD);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   338
	TBidirectionalState::TRunInfo runArray[6];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   339
662fa7de7023 201024_05
hgs
parents:
diff changeset
   340
	TBidiLogicalToVisual bidiConverter(KTestText, EFalse, runArray,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   341
		sizeof(runArray)/sizeof(runArray[0]));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   342
	bidiConverter.Reorder();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   343
	TDesC des = KTestText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   344
	bidiConverter.GetVisualLine(visualText, 0, des.Length() - 1, 0xFFFF);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   345
	TInt len = visualText.Length();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   346
	TEST((des.Length() - 1) == len);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   347
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   348
662fa7de7023 201024_05
hgs
parents:
diff changeset
   349
//DrawText should not draw control codes (particularly Bidirectional ones)
662fa7de7023 201024_05
hgs
parents:
diff changeset
   350
void CTBiDiDefect::DEF021347L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   351
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   352
	TestDEF021347L(0x200C);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   353
	TestDEF021347L(0x200D);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   354
	TestDEF021347L(0x200E);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   355
	TestDEF021347L(0x200F);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   356
	TestDEF021347L(0x202A);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   357
	TestDEF021347L(0x202B);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   358
	TestDEF021347L(0x202C);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   359
	TestDEF021347L(0x202D);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   360
	TestDEF021347L(0x202E);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   361
	// Tested in TGLYPHSEL now following rewrite.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   362
	//TestDEF021347L(0xFFFF);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   363
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   364
662fa7de7023 201024_05
hgs
parents:
diff changeset
   365
void CTBiDiDefect::TestDEF021347L(TUint16 aControlCharacter)
662fa7de7023 201024_05
hgs
parents:
diff changeset
   366
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   367
	const TInt KTestTextLen = 5;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   368
	TBuf<100> testText(KTestTextLen);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   369
	testText[0] = 'a';
662fa7de7023 201024_05
hgs
parents:
diff changeset
   370
	testText[1] = 'b';
662fa7de7023 201024_05
hgs
parents:
diff changeset
   371
	testText[2] = aControlCharacter;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   372
	testText[3] = 'c';
662fa7de7023 201024_05
hgs
parents:
diff changeset
   373
	testText[4] = 'd';
662fa7de7023 201024_05
hgs
parents:
diff changeset
   374
662fa7de7023 201024_05
hgs
parents:
diff changeset
   375
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   376
	iTestFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   377
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   378
662fa7de7023 201024_05
hgs
parents:
diff changeset
   379
	CFont::TPositionParam param;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   380
	param.iDirection = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   381
	param.iFlags = 1;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   382
	param.iText.Set(testText);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   383
	param.iPosInText = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   384
	param.iPen.iX = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   385
	param.iPen.iY = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   386
	param.iPosInText = 2; //testText[2] = aControlCharacter
662fa7de7023 201024_05
hgs
parents:
diff changeset
   387
	TBool r = iTestFont->GetCharacterPosition(param);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   388
662fa7de7023 201024_05
hgs
parents:
diff changeset
   389
	TEST(r && param.iPen.iX == 0 && param.iOutputGlyphs == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   390
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   391
662fa7de7023 201024_05
hgs
parents:
diff changeset
   392
//TBidiLogicalToVisual::GetVisualLine() panics when aEnd == 0 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   393
void CTBiDiDefect::INC023337()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   394
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   395
	_LIT(KTestText, "");
662fa7de7023 201024_05
hgs
parents:
diff changeset
   396
	TBuf<100> visualText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   397
	visualText.Fill(0xCDCD);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   398
	TBidirectionalState::TRunInfo runArray[6];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   399
	TBidiLogicalToVisual bidiConverter(KTestText, EFalse, runArray, sizeof(runArray)/sizeof(runArray[0]));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   400
	bidiConverter.Reorder();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   401
662fa7de7023 201024_05
hgs
parents:
diff changeset
   402
	TDesC des = KTestText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   403
	const TUint KEmptyChar = TUint(0xFFFF);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   404
	//The next statement will panics, if INC023337 is not fixed.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   405
	bidiConverter.GetVisualLine(visualText, 0, des.Length(), KEmptyChar);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   406
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   407
662fa7de7023 201024_05
hgs
parents:
diff changeset
   408
//TBidiLogicalToVisual indexes over the given text.
662fa7de7023 201024_05
hgs
parents:
diff changeset
   409
void CTBiDiDefect::INC023917()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   410
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   411
	const TInt dest_buf_len = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   412
	TBidirectionalState::TRunInfo runInfoArray[dest_buf_len];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   413
	const TInt src_buf_len = 4;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   414
    TBuf<src_buf_len> logical;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   415
    logical.Fill(0x0639, src_buf_len);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   416
662fa7de7023 201024_05
hgs
parents:
diff changeset
   417
    _LIT(KArabicWord, "\x0631\x0641\x0636");
662fa7de7023 201024_05
hgs
parents:
diff changeset
   418
    logical = KArabicWord;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   419
662fa7de7023 201024_05
hgs
parents:
diff changeset
   420
    TBidiLogicalToVisual bidiConverter(logical, runInfoArray, sizeof(runInfoArray)/sizeof(runInfoArray[0]));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   421
    bidiConverter.Reorder();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   422
662fa7de7023 201024_05
hgs
parents:
diff changeset
   423
    TBuf<dest_buf_len> visual;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   424
    bidiConverter.GetVisualLine(visual, 0, logical.Length(), 0xFFFF);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   425
662fa7de7023 201024_05
hgs
parents:
diff changeset
   426
	TEST(visual[0] == 0x0636);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   427
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   428
662fa7de7023 201024_05
hgs
parents:
diff changeset
   429
// DEF037928 - TBidiLogicalToVisual::GetVisualLine does not work correctly for 0 length strings
662fa7de7023 201024_05
hgs
parents:
diff changeset
   430
void CTBiDiDefect::DEF037928()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   431
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   432
	// Zero length string for testing
662fa7de7023 201024_05
hgs
parents:
diff changeset
   433
	_LIT(KTestText, "");
662fa7de7023 201024_05
hgs
parents:
diff changeset
   434
	TBuf<100> visualText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   435
	visualText.Fill(0xCDCD);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   436
	visualText.SetMax();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   437
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   438
	TBidirectionalState::TRunInfo runArray[6];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   439
	TBidiLogicalToVisual bidiConverter(KTestText, EFalse, runArray,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   440
		sizeof(runArray)/sizeof(runArray[0]));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   441
	bidiConverter.Reorder();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   442
662fa7de7023 201024_05
hgs
parents:
diff changeset
   443
	bidiConverter.GetVisualLine(visualText, 0, 1, 0xFFFF);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   444
	TEST( visualText.Length() == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   445
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   446
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   447
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   448
// INC037549 - TBidiText crashes if  <CR><LF> appear at the end of the text
662fa7de7023 201024_05
hgs
parents:
diff changeset
   449
void CTBiDiDefect::INC037549L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   450
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   451
	// This crash occured when the final character is <cr>
662fa7de7023 201024_05
hgs
parents:
diff changeset
   452
	// and following memory location is <lf>
662fa7de7023 201024_05
hgs
parents:
diff changeset
   453
	// To test this testString has a length of 5, but sPtr has length 4
662fa7de7023 201024_05
hgs
parents:
diff changeset
   454
	_LIT( testString, "123\r\n" ) ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   455
	TBuf<5> string( testString ) ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   456
	TPtrC sPtr( string.Ptr(), 4 ) ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   457
	TBidiText* bText = TBidiText::NewL( sPtr, 1, TBidiText::ELeftToRight ) ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   458
662fa7de7023 201024_05
hgs
parents:
diff changeset
   459
	delete bText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   460
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   461
662fa7de7023 201024_05
hgs
parents:
diff changeset
   462
// INC042422 - when calculated length in BidiCompact.cpp TRunInfoCompact::Reorder < 0
662fa7de7023 201024_05
hgs
parents:
diff changeset
   463
//
662fa7de7023 201024_05
hgs
parents:
diff changeset
   464
// This defect causes an extra blank line to be added when text contains \r\n
662fa7de7023 201024_05
hgs
parents:
diff changeset
   465
// This was caused by a miscalculation in Biditext.cpp SizeLineBreak().
662fa7de7023 201024_05
hgs
parents:
diff changeset
   466
// this test case is modified due to change of TBidiText::DoWrapText for fixing PDEF117110
662fa7de7023 201024_05
hgs
parents:
diff changeset
   467
void CTBiDiDefect::INC042422L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   468
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   469
	_LIT( testString, "123\r\n" ) ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   470
	TBidiText* bText = TBidiText::NewL( testString, 1, TBidiText::ELeftToRight ) ;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   471
	bText->WrapText(100,*iTestFont,0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   472
	TPtrC text = bText->DisplayText(); 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   473
662fa7de7023 201024_05
hgs
parents:
diff changeset
   474
	// The defect caused text to contain an extra blank line
662fa7de7023 201024_05
hgs
parents:
diff changeset
   475
	// So the length was 5 ( text contained:1,2,3, 0x2028, 0x2026)
662fa7de7023 201024_05
hgs
parents:
diff changeset
   476
	// when the correct value is 4 (text should contain: 1,2,3, 0x2026)
662fa7de7023 201024_05
hgs
parents:
diff changeset
   477
	// Note: Due to fix for PDEF117109, the correct value is 3 now (text contains: 1,2,3)
662fa7de7023 201024_05
hgs
parents:
diff changeset
   478
	TEST(text.Length() == 3);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   479
	TEST(text[0] == '1');
662fa7de7023 201024_05
hgs
parents:
diff changeset
   480
	TEST(text[1] == '2');
662fa7de7023 201024_05
hgs
parents:
diff changeset
   481
	TEST(text[2] == '3');
662fa7de7023 201024_05
hgs
parents:
diff changeset
   482
662fa7de7023 201024_05
hgs
parents:
diff changeset
   483
	delete bText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   484
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   485
662fa7de7023 201024_05
hgs
parents:
diff changeset
   486
//DEF043720 - Assert fails in TBiDiText wrapping when more than one \n is present in the text 
662fa7de7023 201024_05
hgs
parents:
diff changeset
   487
void CTBiDiDefect::TestDEF043720L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   488
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   489
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   490
	iTestFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   491
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   492
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   493
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   494
	iBidiText = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   495
	iBidiText = TBidiText::NewL(_L("\n\nAB\n\n\nCD\n"),10);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   496
	iBidiText->WrapText(10,*iTestFont,0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   497
662fa7de7023 201024_05
hgs
parents:
diff changeset
   498
	//After wrapping text should look like "\x2028\x2028A\x2028B\x2028\x2028\x2028C\x2028D"
662fa7de7023 201024_05
hgs
parents:
diff changeset
   499
	//where \x2028 is the line separator
662fa7de7023 201024_05
hgs
parents:
diff changeset
   500
	TPtrC afterwrap(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   501
	TEST(afterwrap.Length()==11);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   502
	TEST(afterwrap[0]==0x2028);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   503
	TEST(afterwrap[1]==0x2028);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   504
	TEST(afterwrap[3]==0x2028);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   505
	TEST(afterwrap[5]==0x2028);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   506
	TEST(afterwrap[6]==0x2028);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   507
	TEST(afterwrap[7]==0x2028);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   508
	TEST(afterwrap[9]==0x2028);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   509
662fa7de7023 201024_05
hgs
parents:
diff changeset
   510
	INFO_PRINTF1(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   511
662fa7de7023 201024_05
hgs
parents:
diff changeset
   512
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   513
	iBidiText = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   514
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   515
	iTestFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   516
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   517
662fa7de7023 201024_05
hgs
parents:
diff changeset
   518
void CTBiDiDefect::DEF059214L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   519
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   520
	TBidirectionalState::TRunInfo runs[4];
662fa7de7023 201024_05
hgs
parents:
diff changeset
   521
	TBidirectionalState bs;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   522
	TBool ambig;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   523
662fa7de7023 201024_05
hgs
parents:
diff changeset
   524
	// entirely left to right paragraph is not ambiguous
662fa7de7023 201024_05
hgs
parents:
diff changeset
   525
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   526
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   527
	runs[0].iCategory = TChar::ELeftToRight;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   528
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   529
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   530
	bs.ReorderLine(runs, 1, ETrue, EFalse, EFalse, TChar::ELeftToRight,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   531
		TChar::ELeftToRight, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   532
662fa7de7023 201024_05
hgs
parents:
diff changeset
   533
	// entirely right to left paragraph is not ambiguous
662fa7de7023 201024_05
hgs
parents:
diff changeset
   534
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   535
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   536
	runs[0].iCategory = TChar::ERightToLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   537
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   538
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   539
	bs.ReorderLine(runs, 1, ETrue, EFalse, ETrue, TChar::ERightToLeft,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   540
		TChar::ERightToLeft, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   541
	TEST(!ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   542
662fa7de7023 201024_05
hgs
parents:
diff changeset
   543
	// right to left portion within left to right paragraph is ambiguous
662fa7de7023 201024_05
hgs
parents:
diff changeset
   544
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   545
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   546
	runs[0].iCategory = TChar::ERightToLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   547
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   548
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   549
	bs.ReorderLine(runs, 1, ETrue, EFalse, EFalse, TChar::ERightToLeft,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   550
		TChar::ERightToLeft, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   551
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   552
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   553
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   554
	runs[0].iCategory = TChar::ERightToLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   555
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   556
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   557
	bs.ReorderLine(runs, 1, ETrue, EFalse, EFalse, TChar::EOtherNeutral,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   558
		TChar::ERightToLeft, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   559
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   560
662fa7de7023 201024_05
hgs
parents:
diff changeset
   561
	// left to right portion within right to left paragraph is ambiguous
662fa7de7023 201024_05
hgs
parents:
diff changeset
   562
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   563
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   564
	runs[0].iCategory = TChar::ELeftToRight;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   565
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   566
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   567
	bs.ReorderLine(runs, 1, ETrue, EFalse, ETrue, TChar::ELeftToRight,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   568
		TChar::ELeftToRight, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   569
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   570
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   571
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   572
	runs[0].iCategory = TChar::ELeftToRight;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   573
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   574
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   575
	bs.ReorderLine(runs, 1, ETrue, EFalse, ETrue, TChar::EOtherNeutral,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   576
		TChar::ELeftToRight, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   577
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   578
662fa7de7023 201024_05
hgs
parents:
diff changeset
   579
	// right to left following on from left to right paragraph is ambiguous
662fa7de7023 201024_05
hgs
parents:
diff changeset
   580
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   581
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   582
	runs[0].iCategory = TChar::ELeftToRight;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   583
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   584
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   585
	bs.ReorderLine(runs, 1, ETrue, EFalse, EFalse, TChar::ERightToLeft,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   586
		TChar::ERightToLeft, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   587
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   588
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   589
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   590
	runs[0].iCategory = TChar::ELeftToRight;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   591
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   592
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   593
	bs.ReorderLine(runs, 1, ETrue, EFalse, EFalse, TChar::EOtherNeutral,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   594
		TChar::ERightToLeft, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   595
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   596
662fa7de7023 201024_05
hgs
parents:
diff changeset
   597
	// left to right following on from right to left paragraph is ambiguous
662fa7de7023 201024_05
hgs
parents:
diff changeset
   598
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   599
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   600
	runs[0].iCategory = TChar::ERightToLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   601
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   602
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   603
	bs.ReorderLine(runs, 1, ETrue, EFalse, ETrue, TChar::ELeftToRight,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   604
		TChar::ELeftToRight, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   605
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   606
	ambig = 3000;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   607
	bs.Reset();
662fa7de7023 201024_05
hgs
parents:
diff changeset
   608
	runs[0].iCategory = TChar::ERightToLeft;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   609
	runs[0].iStart = 0;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   610
	runs[0].iLength = 10;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   611
	bs.ReorderLine(runs, 1, ETrue, EFalse, ETrue, TChar::EOtherNeutral,
662fa7de7023 201024_05
hgs
parents:
diff changeset
   612
		TChar::ELeftToRight, ambig);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   613
	TEST(ambig && ambig != 3000);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   614
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   615
662fa7de7023 201024_05
hgs
parents:
diff changeset
   616
void CTBiDiDefect::TestPDEF117110L()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   617
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   618
	TPtrC wrappedText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   619
	TPtrC expectedText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   620
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   621
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   622
	iTestFont = new (ELeave) CTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   623
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   624
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   625
	iBidiText = TBidiText::NewL(_L("Test Text\n"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   626
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   627
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   628
	expectedText.Set(_L("Test Text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   629
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   630
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   631
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   632
	iBidiText = TBidiText::NewL(_L("Test Text\r"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   633
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   634
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   635
	expectedText.Set(_L("Test Text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   636
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   637
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   638
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   639
	iBidiText = TBidiText::NewL(_L("Test Text\r\n"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   640
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   641
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   642
	expectedText.Set(_L("Test Text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   643
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   644
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   645
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   646
	iBidiText = TBidiText::NewL(_L("Test Text\x2028"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   647
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   648
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   649
	expectedText.Set(_L("Test Text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   650
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   651
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   652
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   653
	iBidiText = TBidiText::NewL(_L("Test Text\n\x2028"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   654
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   655
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   656
	expectedText.Set(_L("Test Text\x2028"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   657
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   658
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   659
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   660
	iBidiText = TBidiText::NewL(_L("Test\nText\n"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   661
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   662
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   663
	expectedText.Set(_L("Test\x2028Text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   664
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   665
	
662fa7de7023 201024_05
hgs
parents:
diff changeset
   666
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   667
	iBidiText = TBidiText::NewL(_L("Test\nText\n"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   668
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   669
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   670
	expectedText.Set(_L("Test\x2026"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   671
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   672
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   673
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   674
	iBidiText = TBidiText::NewL(_L("TestText\n"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   675
	iBidiText->WrapText(45, *iTestFont, NULL, 2);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   676
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   677
	expectedText.Set(_L("Test\x2028Text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   678
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   679
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   680
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   681
	iBidiText = TBidiText::NewL(_L("Test Text"), 5);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   682
	iBidiText->WrapText(KMaxTInt, *iTestFont, NULL, 1);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   683
	wrappedText.Set(iBidiText->DisplayText());
662fa7de7023 201024_05
hgs
parents:
diff changeset
   684
	expectedText.Set(_L("Test Text"));
662fa7de7023 201024_05
hgs
parents:
diff changeset
   685
	TEST(expectedText.Compare(wrappedText) == 0);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   686
		
662fa7de7023 201024_05
hgs
parents:
diff changeset
   687
	delete iBidiText;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   688
	iBidiText = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   689
	delete iTestFont;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   690
	iTestFont = NULL;
662fa7de7023 201024_05
hgs
parents:
diff changeset
   691
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   692
662fa7de7023 201024_05
hgs
parents:
diff changeset
   693
//--------------
662fa7de7023 201024_05
hgs
parents:
diff changeset
   694
CTBiDiDefectStep::CTBiDiDefectStep()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   695
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   696
	SetTestStepName(KTBiDiDefectStep);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   697
	}
662fa7de7023 201024_05
hgs
parents:
diff changeset
   698
662fa7de7023 201024_05
hgs
parents:
diff changeset
   699
CTGraphicsBase* CTBiDiDefectStep::CreateTestL()
662fa7de7023 201024_05
hgs
parents:
diff changeset
   700
	{
662fa7de7023 201024_05
hgs
parents:
diff changeset
   701
	return new (ELeave) CTBiDiDefect(this);
662fa7de7023 201024_05
hgs
parents:
diff changeset
   702
	}