1 : // -*- C++ -*-
2 : #include <ept/config.h>
3 : #include <ept/core/desktop.h>
4 : #include <ept/core/list.h>
5 : #include <ept/test.h>
6 :
7 : using namespace ept::core;
8 :
9 5 : struct TestDesktop {
10 : desktop::Source desk;
11 : ept::Token t;
12 :
13 5 : TestDesktop() : desk( TEST_ENV_DIR "desktop" ) {}
14 :
15 : template< desktop::PropertyId P, typename L >
16 3 : void checkIteration2( int c, const char **check, L l ) {
17 3 : int i = 0;
18 16 : while ( !l.empty() ) {
19 10 : assert_eq( l.head().template get< P >(), check[ i ] );
20 20 : l = l.tail();
21 10 : ++ i;
22 : }
23 3 : assert_eq( i, c );
24 3 : }
25 :
26 : template< desktop::PropertyId P, typename L >
27 3 : void checkIteration( int c, const char **check, L l ) {
28 3 : checkIteration2< P >( c, check, list::sort( l ) );
29 3 : }
30 :
31 1 : Test iteration() {
32 1 : const char *check[] = { "Kdict", "foo", "XQF", "X-Server" };
33 : checkIteration< desktop::Name >(
34 1 : 4, check, desk.list< desktop::Name >() );
35 1 : }
36 :
37 1 : Test groupProperty() {
38 : const char *check[] = {
39 : "{ KDE, Qt, Utility }",
40 : "{ KDE, Qt, Utility }",
41 : "{ Application, Game, X-SuSE-Core-Game }",
42 : "{ KDE, Qt, X-KDE-information }",
43 1 : };
44 : checkIteration< desktop::Group >(
45 1 : 4, check, desk.list< desktop::Name >() );
46 1 : }
47 :
48 1 : Test groups() {
49 1 : const char *check[] = { "Kdict", "foo" };
50 : checkIteration< desktop::Name >(
51 1 : 2, check, desk.group( "{ KDE, Qt, Utility }" ) );
52 1 : }
53 :
54 1 : Test groupList() {
55 : std::string check[] = {
56 : "{ Application, Game, X-SuSE-Core-Game }",
57 : "{ KDE, Qt, Utility }",
58 : "{ KDE, Qt, X-KDE-information }",
59 1 : };
60 :
61 2 : assert_list_eq( desk.groupList(), check );
62 1 : }
63 :
64 1 : Test emptyGroupList() {
65 1 : desktop::InternalList l;
66 1 : assert( l.empty() );
67 1 : }
68 : };
|