mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-26 15:10:22 -05:00
#14878: Add RifCsvHtmlTableTools for CSV content preview
Generic helper to render CSV file content as an HTML table, used to preview well formations.csv content in the UI.
This commit is contained in:
1 parent
cf36012cd2
commit
fe887270e5
5 files changed
+227
-1
No files matched your search
@@ -124,6 +124,7 @@ set(SOURCE_UNITTEST_FILES
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifFormationNamesReader-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifWellPathFormationReader-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RigWellPathFormations-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifCsvHtmlTableTools-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifRoffReader-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifRoffWriter-Test.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/RifRoffFileTools-Test.cpp
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "RifCsvHtmlTableTools.h"
|
||||
|
||||
TEST( RifCsvHtmlTableTools, GeneratesTableFromCommaSeparatedText )
|
||||
{
|
||||
const QString content = "Well,Zone,Top,Base\n"
|
||||
"A-1,Upper,100.0,110.0\n"
|
||||
"A-1,Lower,110.0,120.0\n";
|
||||
|
||||
auto result = RifCsvHtmlTableTools::generateHtmlTableFromText( content );
|
||||
ASSERT_TRUE( result.has_value() );
|
||||
|
||||
EXPECT_TRUE( result->contains( "<th>Well</th>" ) );
|
||||
EXPECT_TRUE( result->contains( "<th>Zone</th>" ) );
|
||||
EXPECT_TRUE( result->contains( "<td>A-1</td>" ) );
|
||||
EXPECT_TRUE( result->contains( "<td>Upper</td>" ) );
|
||||
EXPECT_TRUE( result->contains( "<td align=right>100.0</td>" ) );
|
||||
}
|
||||
|
||||
TEST( RifCsvHtmlTableTools, GeneratesTableFromSemicolonSeparatedText )
|
||||
{
|
||||
const QString content = "Well;Zone;Top;Base\n"
|
||||
"A-1;Upper;100.0;110.0\n";
|
||||
|
||||
auto result = RifCsvHtmlTableTools::generateHtmlTableFromText( content );
|
||||
ASSERT_TRUE( result.has_value() );
|
||||
EXPECT_TRUE( result->contains( "<th>Well</th>" ) );
|
||||
EXPECT_TRUE( result->contains( "<td>A-1</td>" ) );
|
||||
}
|
||||
|
||||
TEST( RifCsvHtmlTableTools, DetectsDelimiter )
|
||||
{
|
||||
EXPECT_EQ( QChar( ',' ), RifCsvHtmlTableTools::detectDelimiter( "a,b,c" ) );
|
||||
EXPECT_EQ( QChar( ';' ), RifCsvHtmlTableTools::detectDelimiter( "a;b;c" ) );
|
||||
EXPECT_EQ( QChar( '\t' ), RifCsvHtmlTableTools::detectDelimiter( "a\tb\tc" ) );
|
||||
}
|
||||
|
||||
TEST( RifCsvHtmlTableTools, EmptyContentGivesError )
|
||||
{
|
||||
auto result = RifCsvHtmlTableTools::generateHtmlTableFromText( "" );
|
||||
EXPECT_FALSE( result.has_value() );
|
||||
}
|
||||
|
||||
TEST( RifCsvHtmlTableTools, RespectsMaxRowCount )
|
||||
{
|
||||
const QString content = "A,B\n1,2\n3,4\n5,6\n";
|
||||
|
||||
auto result = RifCsvHtmlTableTools::generateHtmlTableFromText( content, 1 );
|
||||
ASSERT_TRUE( result.has_value() );
|
||||
|
||||
EXPECT_TRUE( result->contains( "<td align=right>1</td>" ) );
|
||||
EXPECT_FALSE( result->contains( "<td align=right>3</td>" ) );
|
||||
}
|
||||
Reference in new issue
Block a user