--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/fileutils/tsrc/fileutilstestinit/src.s60/filetestutils.cpp Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,330 @@
+/*
+* Copyright (c) 2008 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: FileTestUtils
+ *
+*/
+
+
+#include <f32file.h>
+#include <fstream>
+#include <iostream>
+
+#include <DRMCommon.h>
+#include <DRMMessageParser.h>
+#include <DRMRightsClient.h>
+
+#include "filetestutils.h"
+
+using namespace std;
+using namespace java::filetest;
+
+void FileTestUtils::createFile(const wstring &aPath, int aFlags, int aMode)
+{
+ int fd = wopen(aPath.c_str(), aFlags, aMode);
+ FileTestUtils::checkError(aPath,fd);
+ close(fd);
+}
+
+
+
+HBufC* stringToDes(const wchar_t* str)
+{
+ HBufC* resultBuf = 0;
+ try
+ {
+ if (str)
+ {
+ int len = wcslen(str);
+ resultBuf = HBufC::New(len + 1);
+ TPtr ptr = resultBuf->Des();
+
+ TPtr16 ptr16((TUint16 *)str, len);
+ ptr16.SetLength(len);
+ ptr.Copy(ptr16);
+ ptr.ZeroTerminate();
+ }
+ }
+ catch (...)
+ {
+
+ }
+ return resultBuf;
+}
+
+
+/**
+ *
+ */
+void ReplaceCharacters(TPtr& aPtr,TUint8 aReplacedChar,
+ TUint8 aNewChar,TBool aOnlyFirstMatch)
+{
+ for (TInt i = 0; i < aPtr.Length(); ++i)
+ {
+ if (aReplacedChar == aPtr[i])
+ {
+ aPtr[i] = aNewChar;
+ if (aOnlyFirstMatch)
+ return;
+ }
+ }
+}
+
+void ReplaceCharacters(TPtr& aPtr,TUint8 aReplacedChar,
+ TUint8 aNewChar)
+{
+ ReplaceCharacters(aPtr,aReplacedChar,aNewChar,EFalse);
+}
+
+
+
+void FileTestUtils::createSystemFile(const wstring &aPath)
+{
+ FileTestUtils::createNormalFile(aPath);
+ wchar_t* filePtr = const_cast<wchar_t*>(aPath.c_str());
+ HBufC* tmpBuf = stringToDes(filePtr);
+ TPtr tmpBufPtr(tmpBuf->Des());
+ ReplaceCharacters(tmpBufPtr,'/','\\');
+
+ RFs aRFs;
+ aRFs.Connect();
+ int err = aRFs.SetAtt(*tmpBuf,KEntryAttSystem,0);
+ aRFs.Close();
+ //Donot know what to do in linux
+ checkError(aPath, err);
+}
+
+void FileTestUtils::createHiddenDir(const wstring &aPath, const wstring& aFile)
+{
+ FileTestUtils::createDir(aPath+aFile);
+
+ wstring fileName = (aPath+aFile);
+
+ wchar_t* filePtr = const_cast<wchar_t*>(fileName.c_str());
+ HBufC* tmpBuf = stringToDes(filePtr);
+ TPtr tmpBufPtr(tmpBuf->Des());
+ ReplaceCharacters(tmpBufPtr,'/','\\');
+
+ RFs aRFs;
+ aRFs.Connect();
+ int error = aRFs.SetAtt(*tmpBuf ,KEntryAttHidden,0);
+ aRFs.Close();
+ checkError(aPath+aFile, error);
+}
+
+void FileTestUtils::createSystemDir(const wstring &aPath)
+{
+ FileTestUtils::createDir(aPath);
+ wchar_t* filePtr = const_cast<wchar_t*>(aPath.c_str());
+ HBufC* tmpBuf = stringToDes(filePtr);
+ TPtr tmpBufPtr(tmpBuf->Des());
+ ReplaceCharacters(tmpBufPtr,'/','\\');
+
+ RFs aRFs;
+ aRFs.Connect();
+ int err = aRFs.SetAtt(*tmpBuf,KEntryAttSystem,0);
+ aRFs.Close();
+ //Donot know what to do in linux
+ checkError(aPath, err);
+}
+
+
+void FileTestUtils::createDirMode(const wstring& aPath, const int aMode)
+{
+ // R W X
+ // 4 2 1
+ int error = wmkdir(aPath.c_str(), aMode);
+ FileTestUtils::checkError(aPath, error);
+}
+
+void FileTestUtils::writeDataToFile(const wstring& aPath, const string& aData)
+{
+ //Linux, just use ofstream
+ int fd = wopen(aPath.c_str(), O_RDWR);
+
+ checkError(aPath, fd);
+ write(fd, aData.c_str(), aData.length());
+ close(fd);
+}
+
+void FileTestUtils::writeDataInLoop(const wstring& aPath, const int aData, const int aTimes)
+{
+ char* chr = new char[aPath.size()+1];
+ sprintf(chr,"%ls",aPath.c_str());
+ wofstream file(chr, ios::out|ios::app|ios::binary);
+
+ for (int i=0 ; i<aTimes; i++)
+ {
+ file<<(char)aData;
+ }
+ file.close();
+
+}
+
+void FileTestUtils::appendDataToFile(const wstring& aPath, const int aData)
+{
+ char* chr = new char[aPath.size()+1];
+ sprintf(chr,"%ls",aPath.c_str());
+ wofstream file(chr, ios::out|ios::app|ios::binary);
+ file<<(char)aData;
+ file.close();
+}
+
+void FileTestUtils::appendDataToFile(const wstring& aPath, const wstring& aData)
+{
+ char* chr = new char[aPath.size()+1];
+ sprintf(chr,"%ls",aPath.c_str());
+ wofstream file(chr, ios::out|ios::app|ios::binary);
+ file<<(char*)aData.c_str();
+ file.close();
+}
+
+void FileTestUtils::setFileHidden(const wstring &aPath, const wstring &aFile)
+{
+ wstring fileName = (aPath+aFile);
+
+ wchar_t* filePtr = const_cast<wchar_t*>(fileName.c_str());
+ HBufC* tmpBuf = stringToDes(filePtr);
+ TPtr tmpBufPtr(tmpBuf->Des());
+ ReplaceCharacters(tmpBufPtr,'/','\\');
+
+ RFs aRFs;
+ aRFs.Connect();
+ int error = aRFs.SetAtt(*tmpBuf ,KEntryAttHidden,0);
+ aRFs.Close();
+ checkError(aPath+aFile, error);
+}
+
+void FileTestUtils::setFileReadOnly(const wstring &aPath)
+{
+ wchmod(aPath.c_str(), 0444);
+}
+
+void FileTestUtils::setDirHidden(const wstring &aPath, const wstring &aName)
+{
+ wstring fileName = (aPath+aName);
+
+ wchar_t* filePtr = const_cast<wchar_t*>(fileName.c_str());
+ HBufC* tmpBuf = stringToDes(filePtr);
+ TPtr tmpBufPtr(tmpBuf->Des());
+ ReplaceCharacters(tmpBufPtr,'/','\\');
+
+ RFs aRFs;
+ aRFs.Connect();
+ int error = aRFs.SetAtt(*tmpBuf ,KEntryAttHidden,0);
+ aRFs.Close();
+ checkError(aPath+aName, error);
+}
+
+
+/*******************************************************************************
+
+
+DRM Methods: Specific to S60
+
+******************************************************************************/
+
+void InitDrFile(RFs& aRfs,const TDesC& aFileName)
+{
+ //_LIT( KTempFile, "c:\\mainTestDir\\readme.dr");
+ TInt size;
+ RFile file;
+ //CDRMRights* rightsDetail = NULL;
+ RPointerArray<CDRMRights> rightsDetails;
+
+ //DRMAuthenticated *drm = DRMAuthenticated::NewL();
+ CDRMMessageParser* msgParser = CDRMMessageParser::NewL();
+ CleanupStack::PushL(msgParser);
+
+ User::LeaveIfError(file.Open(aRfs,aFileName,EFileRead));
+ User::LeaveIfError(file.Size(size));
+ HBufC8* buffer = HBufC8::NewLC(size);
+ TPtr8 ptr(buffer->Des());
+
+ User::LeaveIfError(file.Read(ptr, size));
+ CleanupStack::Pop(buffer);
+
+ User::LeaveIfError(msgParser->ProcessRightsObject(ptr, rightsDetails));
+
+ delete buffer;
+ //delete rightsDetail;
+ rightsDetails.ResetAndDestroy();
+
+ CleanupStack::PopAndDestroy(); // drm
+ file.Close();
+}
+
+
+
+//We will have to unzip winscw.zip in ..\doc folder to \epoc32\winscw\ for this
+//to work
+void FileTestUtils::doInitDRMContents()
+{
+ RFs aRFs;
+ aRFs.Connect();
+ RDRMRightsClient rightsClient;
+ User::LeaveIfError(rightsClient.Connect());
+ TInt err = rightsClient.DeleteAll();
+ rightsClient.Close();
+ User::LeaveIfError(err);
+
+ //InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile002DecExecuteCount2.dr"));
+ //InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\readme2.dr"));
+
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile001PlayPreview.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile001DisplayPreview.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile001PrintPreview.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile001ExecutePreview.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile002DecDisplayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile002DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile002DecPrintCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile002DecExecuteCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile002EncCount1.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile003_01DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile003_02DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile003_03DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile003_04DecPlayCount50.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile004DecPlayCount1.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile006_6DecPlayCount1.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile006_7DecPlayCount10.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile006DecPlayCount1.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile007DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile008DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile009DecPlayCount1.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile010DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile011DecPlayCount4.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile012DecPlayCount4.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile013DecPlayCount1.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile014DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile015DecPlayCount3.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\testDir001\\drmfile015_001DecPlayCount3.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile016DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile017DecPlayCount10.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile018DecPlayCount10.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile019DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile020DecPlayCount3.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile021DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile022DecPlayCount2.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile023DecPlayCount10.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile024DecPlayCount50.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile024DecDisplayCount50.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile024DecPrintCount50.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile024DecExecuteCount50.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Videos\\drmFiles\\drmfile025DecPlayCount3.dr"));
+ InitDrFile(aRFs,_L("c:\\data\\Images\\myDir\\drmfile026DecPlayCount50.dr"));
+
+ InitDrFile(aRFs,_L("e:\\drmfile003DecPlayCount1.dr"));
+ InitDrFile(aRFs,_L("e:\\drmfile006_61DecPlayCount1.dr"));
+ InitDrFile(aRFs,_L("e:\\drmfile025DecPrintCount50.dr"));
+ InitDrFile(aRFs,_L("e:\\drmfile003_05DecPlayCount50.dr"));
+}