Ejemplo n.º 1
0
/**
@SYMTestCaseID			SYSLIB-BAFL-CT-4063
@SYMREQ					CR1328
@SYMTestCaseDesc		To ensure the correct attribute values are retrieved when there 
@SYMTestCaseDesc		are multiple ROFS sections which may each contain a different 
@SYMTestCaseDesc		version of the deviceattributes.ini file.
@SYMTestCaseDesc		
@SYMTestCaseDesc		Note: When run on hardware, this test needs to be part of a ROM 
@SYMTestCaseDesc		which is made up of a core ROM image and extension ROM images. 
@SYMTestCaseDesc		Each extension image should contain a different version of the 
@SYMTestCaseDesc		same INI file. The INI files should contain data which makes 
@SYMTestCaseDesc		sure the following things are covered: 
@SYMTestCaseDesc		-	There is an INI file in the core ROM image which contains at 
@SYMTestCaseDesc			least 1 device attribute. This attribute should not appear in 
@SYMTestCaseDesc			any of the other versions of the INI file which are contained 
@SYMTestCaseDesc			in the extension ROM images.
@SYMTestCaseDesc		-	There is an INI file in one of the extension ROM images which 
@SYMTestCaseDesc			contains at least 1 device attribute. This attribute should 
@SYMTestCaseDesc			not appear in the INI file contained in the core ROM image.
@SYMTestCaseDesc		-	There is an INI file in the core ROM image which contains at 
@SYMTestCaseDesc			least 1 device attribute. This attribute should appear in another 
@SYMTestCaseDesc			version of the INI file in one of the extension ROM images.
@SYMTestCaseDesc		-	There is an INI file in one of the extension ROM images which 
@SYMTestCaseDesc			contains at least 1 device attribute. This attribute should 
@SYMTestCaseDesc			appear in another version of the INI file in one of the 
@SYMTestCaseDesc			extension ROM images
@SYMTestPriority		HIGH
@SYMTestStatus			Implemented
@SYMTestActions			1.	Create an instance of CDeviceTypeInformation by calling 
@SYMTestActions				SysUtil::GetDeviceTypeInfo.
@SYMTestActions			2.	Call each of CDeviceTypeInformation member functions.
@SYMTestActions			3.	Check the retrieved value and return codes.
@SYMTestExpectedResults GetUIPlatformName should return a default value and return 
@SYMTestExpectedResults CDeviceTypeInformation::KDefaultValue. The rest of the APIs 
@SYMTestExpectedResults should retrieve provisioned values and return KErrNone.
*/
void TestMultipleRofsSectionsL()
	{
	CDeviceTypeInformation* attribs = SysUtil::GetDeviceTypeInfoL();
	CleanupStack::PushL(attribs);
	
	TPtrC16 buffer;
	TInt err = attribs->GetManufacturerName(buffer);
	test2(err, KErrNone);
	TInt difference = buffer.Compare(KTest1ManufacturerName);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1ManufacturerName, &buffer);
	test2(difference, 0);
	
	err = attribs->GetModelName(buffer);
	test2(err, KErrNone);
	difference = buffer.Compare(KTest1ModelName);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1ModelName, &buffer);
	test2(difference, 0);
	
	err = attribs->GetModelCode(buffer);
	test2(err, KErrNone);
	difference = buffer.Compare(KTest1ModelCode);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1ModelCode, &buffer);
	test2(difference, 0);
	
	err = attribs->GetRevisionID(buffer);
	test2(err, KErrNone);
	difference = buffer.Compare(KTest1RevisionID);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1RevisionID, &buffer);
	test2(difference, 0);
	
	err = attribs->GetDefaultDeviceName(buffer);
	test2(err, KErrNone);
	difference = buffer.Compare(KTest1DefaultDeviceName);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1DefaultDeviceName, &buffer);
	test2(difference, 0);
	
	err = attribs->GetUIPlatformName(buffer);
	test2(err, CDeviceTypeInformation::KDefaultValue);
	difference = buffer.Compare(KTest1UIPlatformName);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1UIPlatformName, &buffer);
	test2(difference, 0);
	
	TUint16 major, minor;
	err = attribs->GetUIPlatformVersion(major, minor);
	test2(err, KErrNone);
	test.Printf(_L("Expected major value = %d\nActual major value = %d\n"), KTest1UIPlatformVersionMajor, major);
	test.Printf(_L("Expected minor value = %d\nActual minor value = %d\n\n"), KTest1UIPlatformVersionMinor, minor);
	test2(major, KTest1UIPlatformVersionMajor);
	test2(minor, KTest1UIPlatformVersionMinor);
	
	err = attribs->GetUIPlatformVersion(buffer);
	test2(err, KErrNone);
	difference = buffer.Compare(KTest1UIPlatformVersion);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1UIPlatformVersion, &buffer);
	test2(difference, 0);
	
	err = attribs->GetOSVersion(major, minor);
	test2(err, KErrNone);
	test.Printf(_L("Expected major value = %d\nActual major value = %d\n"), KTest1OSVersionMajor, major);
	test.Printf(_L("Expected minor value = %d\nActual minor value = %d\n\n"), KTest1OSVersionMinor, minor);
	test2(major, KTest1OSVersionMajor);
	test2(minor, KTest1OSVersionMinor);
	
	err = attribs->GetOSVersion(buffer);
	test2(err, KErrNone);
	difference = buffer.Compare(KTest1OSVersion);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1OSVersion, &buffer);
	test2(difference, 0);
	
	err = attribs->GetAttribute(manufacturerAttributeUID, buffer);
	test2(err, KErrNone);
	difference = buffer.Compare(KTest1ManufacturerAttribute);
	test.Printf(_L("Expected value = %S\nActualValue = %S\n\n"), &KTest1ManufacturerAttribute, &buffer);
	test2(difference, 0);
	
	CleanupStack::PopAndDestroy(1);
	}
Ejemplo n.º 2
0
void ScrShotsGenUtils::DumpJsFileL(CScrShotsSettings* scrShotsSettings)
{
    CGetImei* getImei = CGetImei::NewL();
    CleanupStack::PushL(getImei);
    RBuf8 formatBuf;
    formatBuf.Create(256);
    formatBuf.CleanupClosePushL();
    TFileName infoFile;
    
    User::LeaveIfError(CEikonEnv::Static()->FsSession().PrivatePath(infoFile));
    infoFile.Append( KDeviceJSFile );
    TParsePtrC parse((CEikonEnv::Static()->EikAppUi()->Application())->AppFullName());
    infoFile.Insert(0, KCDriveWithColon);
    
    RFs fsConn;
    User::LeaveIfError(fsConn.Connect());
    CleanupClosePushL(fsConn);
    RFile jsFile;
    if(BaflUtils::FileExists(fsConn, infoFile)){
        BaflUtils::DeleteFile(fsConn, infoFile);
    }
    //now create the file
    User::LeaveIfError(jsFile.Create(fsConn, infoFile, EFileWrite));
    CleanupClosePushL(jsFile);
    
//    User::LeaveIfError(jsFile.Write(KFunctionBlockStart));
    RBuf8 values;
    values.Create(256);
    for(int i = 0; i < KDeviceParamsCount ; i++){
        formatBuf.Zero();
        TInt sizeOfItem = User::StringLength((TText8 *)DeviceParams [i]);
        TPtr8 item((unsigned char*)DeviceParams [i],sizeOfItem ,sizeOfItem );
        switch(i){
            //device_model
            case 0:{
                CDeviceTypeInformation* devInfo = SysUtil::GetDeviceTypeInfoL();
                CleanupStack::PushL(devInfo);
                TPtrC manufName, modelCode, modelName;
                devInfo->GetManufacturerName(manufName);
                devInfo->GetModelCode(modelCode);
                devInfo->GetModelName(modelName);
                RBuf8 manufName8, modelName8, modelCode8;
                manufName8.Create(128); modelName8.Create(128); modelCode8.Create(128);
                manufName8.CleanupClosePushL(); modelName8.CleanupClosePushL(); modelCode8.CleanupClosePushL();
                manufName8.Copy(manufName);
                modelName8.Copy(modelName);
                modelCode8.Copy(modelCode);
                values.Format(KModelNameFormatString, &manufName8, &modelName8, &modelCode8);
                CleanupStack::PopAndDestroy(4);
                break;
            }
            //firmware_version
            case 1:{
                RBuf swVersion;
                swVersion.Create(128);
                SysUtil::GetSWVersion(swVersion);
                values.Copy(swVersion);
                TInt pos = 0;
                while((pos = values.Find(_L8("\n"))) != KErrNotFound){
                    //values.Delete(pos,1);
                    values.Replace(pos,1,_L8("_"));
                }
                swVersion.Close();
                break;
            }
            
            //ram_info
            case 2:{
                TInt totalram= 0;
                HAL::Get(HALData::EMemoryRAM, totalram);
                totalram /= 1024;
                values.Num(totalram);
                break;
            }
            
            //uptime
            case 3:{
                TTimeIntervalMicroSeconds32 iTickPeriod;
                UserHal::TickPeriod(iTickPeriod);
                TUint tickCount = User::TickCount();
                TUint noOfTicksPerSecond = (1000 * 1000) / iTickPeriod.Int();
                TInt noOfSecsSinceStartUp = tickCount / noOfTicksPerSecond;//noOfMicroSecsSinceStartup / (1000 * 1000);
                values.Num(noOfSecsSinceStartUp);
                break;
            }
            
            //scrshot count
            case 4:{
                values.Num(scrShotsSettings->TotalScrShotCount());
                break;
            }
            
            //symbian version
            case 5:{
                TVersion epocver = User::Version();
                values.Copy(epocver.Name());            
                break;
            }
            
            //series 60 version
            case 6:{
                VersionInfo::TPlatformVersion platformVersion;
                VersionInfo::GetVersion(platformVersion);
                TInt aMajor = platformVersion.iMajorVersion;
                TInt aMinor = platformVersion.iMinorVersion;
                values.Format(_L8("%d.%d"),aMajor, aMinor);
                break;
            }
            //country code
            case 7:{
            
                TLocale loc;
                int code = loc.CountryCode();
                values.Num(code);
                break;
            }
            //imei hash
            case 8:{
                TBuf8<256> inputimei;
                TBuf8<256> outimeihash;
                if(getImei->IsImeiFetched()){
                    getImei->GetImei(inputimei);
                    GetWhirlPoolHash(outimeihash,inputimei);
                    values.Copy(outimeihash);
                }
            }
            break;

        }
        
        formatBuf.Format(KStringVariableDeclaration, 
                &item, 
                &values);
        TRACE_ON(RDebug::Printf((const char*)formatBuf.PtrZ()));
        jsFile.Write(formatBuf);
    }
    values.Close();
    CleanupStack::PopAndDestroy(4);
    //TODO: This code should be commented in final release build
#if BRAHMA_DEBUG
    //code to copy the js file just created to the c:\ so that it can be analyzed
    _LIT(KTargetFileName, "c:\\device_info.js");
    BaflUtils::CopyFile(CEikonEnv::Static()->FsSession(),infoFile, KTargetFileName);
#endif
}