libept
0.5.25
|
00001 // -*- C++ -*- 00002 #include <ept/config.h> 00003 #include <ept/core/desktop.h> 00004 #include <ept/core/list.h> 00005 #include <ept/test.h> 00006 00007 using namespace ept::core; 00008 00009 struct TestDesktop { 00010 desktop::Source desk; 00011 ept::Token t; 00012 00013 TestDesktop() : desk( TEST_ENV_DIR "desktop" ) {} 00014 00015 template< desktop::PropertyId P, typename L > 00016 void checkIteration2( int c, const char **check, L l ) { 00017 int i = 0; 00018 while ( !l.empty() ) { 00019 assert_eq( l.head().template get< P >(), check[ i ] ); 00020 l = l.tail(); 00021 ++ i; 00022 } 00023 assert_eq( i, c ); 00024 } 00025 00026 template< desktop::PropertyId P, typename L > 00027 void checkIteration( int c, const char **check, L l ) { 00028 checkIteration2< P >( c, check, list::sort( l ) ); 00029 } 00030 00031 Test iteration() { 00032 const char *check[] = { "Kdict", "foo", "XQF", "X-Server" }; 00033 checkIteration< desktop::Name >( 00034 4, check, desk.list< desktop::Name >() ); 00035 } 00036 00037 Test groupProperty() { 00038 const char *check[] = { 00039 "{ KDE, Qt, Utility }", 00040 "{ KDE, Qt, Utility }", 00041 "{ Application, Game, X-SuSE-Core-Game }", 00042 "{ KDE, Qt, X-KDE-information }", 00043 }; 00044 checkIteration< desktop::Group >( 00045 4, check, desk.list< desktop::Name >() ); 00046 } 00047 00048 Test groups() { 00049 const char *check[] = { "Kdict", "foo" }; 00050 checkIteration< desktop::Name >( 00051 2, check, desk.group( "{ KDE, Qt, Utility }" ) ); 00052 } 00053 00054 Test emptyGroupList() { 00055 desktop::InternalList l; 00056 assert( l.empty() ); 00057 } 00058 };