#include "gtest/gtest.h" #include "RiaQDateTimeTools.h" #include "RiaTestDataDirectory.h" #include "RimProject.h" #include "cafFilePath.h" #include "cafPdmObjectHandle.h" #include #include #include //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- template void fieldsByType( caf::PdmObjectHandle* object, std::vector& typedFields ) { if ( !object ) return; std::vector allFieldsInObject; object->fields( allFieldsInObject ); std::vector children; for ( const auto& field : allFieldsInObject ) { caf::PdmField* typedField = dynamic_cast*>( field ); if ( typedField ) typedFields.push_back( &typedField->v() ); caf::PdmField>* typedFieldInVector = dynamic_cast>*>( field ); if ( typedFieldInVector ) { for ( T& typedFieldFromVector : typedFieldInVector->v() ) { typedFields.push_back( &typedFieldFromVector ); } } field->childObjects( &children ); } for ( const auto& child : children ) { fieldsByType( child, typedFields ); } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- TEST( RimRelocatePathTest, findPathsInProjectFile ) { QString fileName = QString( "%1/RimRelocatePath/RelocatePath.rsp" ).arg( TEST_DATA_DIR ); if ( fileName.isEmpty() ) return; RimProject project; project.fileName = fileName; project.readFile(); std::vector filePaths; fieldsByType( &project, filePaths ); for ( auto filePath : filePaths ) { std::cout << filePath->path().toStdString() << std::endl; } } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- TEST( RimRelocatePathTest, DISABLED_LocaleDateStringTest ) { // Set a non-english system locale on local machine for this test to be useful QDateTime dt; { QDate d( 2018, 10, 1 ); dt.setDate( d ); } QString formatString( "ddd MMM yyyy" ); // Change the default locale on your system to get a different text then the english formatted text QString defaultString = dt.toString( formatString ); std::cout << "default " << defaultString.toStdString() << std::endl; QString englishString = RiaQDateTimeTools::toStringUsingApplicationLocale( dt, formatString ); std::cout << "english " << englishString.toStdString() << std::endl; }