/**
Subtest function

@SYMTestCaseID          SYSLIB-BAFL-CT-0490
@SYMTestCaseDesc        Tests for defect number DEF043985
@SYMTestPriority        High
@SYMTestActions         Tests that the table is invalid when creating a folded RString
@SYMTestExpectedResults Tests must not fail
@SYMREQ                 REQ0000
*/
void RStringPoolPanicTest::DEF043985_IndexTest_SubFunctionL()
	{
	__UHEAP_MARK;

	RStringPool stringPool;
	stringPool.OpenL();

	// Create a table and make it so it passes some internal tests
	// for validity as we are testing a particular internal test
	TStringTable testTable;
	testTable.iCaseSensitive = ETrue;
	testTable.iCount = 1;

	RString testString = stringPool.OpenStringL(KDummyString());
	CleanupClosePushL(testString);
	
	// Test for Panic
	testString.Index(testTable);
	
	// Test should never get this far as it Panics
	
	CleanupStack::PopAndDestroy(&testString);
	stringPool.Close();
	
	__UHEAP_MARKEND;
	}
void CSLContentHandler::HandleElementL ( const RString& /* aTag */, const RString& aAttributeName, const RString& aAttributeValue )
	{
	__LOG_PTR_DEBUG("CSIContentHandler:: HandleElementL Called");
	
	switch ( aAttributeName.Index ( slattributetable::Table ) )
		{
		case slattributetable::EHref:
		delete iHrefBuf;
		iHrefBuf = NULL;
		iHrefBuf = EscapeUtils::ConvertToUnicodeFromUtf8L ( aAttributeValue.DesC() );
		break;
		
		case slattributetable::EAction1:
		case slattributetable::EAction2:
		case slattributetable::EAction3:
			{
			switch ( aAttributeValue.Index ( slattributevaluetable::Table ) ) 
				{
				// execute-low
				case slattributevaluetable::EAction1:
				iPushMsgAction = CSLPushMsgEntry::ESLPushMsgExecuteLow;
				break;
				
				case slattributevaluetable::EAction2:
				iPushMsgAction = CSLPushMsgEntry::ESLPushMsgExecuteHigh;
				break;
				
				case slattributevaluetable::EAction3:
				iPushMsgAction = CSLPushMsgEntry::ESLPushMsgExecuteCache;
				break;
				
				default:
				// shouldn't come here.
				User::Invariant ();	
				}
			}
		break;
		
		default:
		// shouldn't come here.
		User::Invariant ();
		}	
	}
CTldListInitializer::TParserState CTldListInitializer::ParserStateL ( const RString& aTag, TBool aEndElement /* =EFalse */ )
	{	
	// Open a RString from the string pool
	RString myTagString = iStringPool.OpenStringL ( aTag.DesC() );
	TInt tblIndex = myTagString.Index ( TLDXMLTAGS::Table );
	TParserState parserState( EInitial );
	switch ( tblIndex )
		{
		case TLDXMLTAGS::EPolicyData:
			{
			parserState = aEndElement ? EEndOfPolicyData : EStartOfPolicyData;
			break;				
			}

		case TLDXMLTAGS::EWhitelist:
		case TLDXMLTAGS::EBlacklist:
			{
			parserState = aEndElement ? EEndOfListtype : EStartOfListtype;
			SetListType ( tblIndex );
			break;				
			}
		
		case TLDXMLTAGS::ETLD:
			{
			parserState = aEndElement ? EEndOfTLD : EStartOfTLD;
			break;	
			}

		default:
			{
			// Do nothing
			break;
			}
		}	
	myTagString.Close ();
	return parserState;	
	}