License conversion from Flora to Apache 2.0
[platform/core/uifw/dali-adaptor.git] / automated-tests / src / dali-adaptor / utc-Dali-Key.cpp
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // EXTERNAL INCLUDES
19 #include <utilX.h>
20 #include <map>
21 #include <string.h>
22 #include <iostream>
23
24 // CLASS HEADER
25 #include <stdlib.h>
26 #include <iostream>
27 #include <dali.h>
28 #include <dali-test-suite-utils.h>
29
30 using namespace Dali;
31
32 void utc_dali_adaptor_key_startup(void)
33 {
34   test_return_value = TET_UNDEF;
35 }
36
37 void utc_dali_adaptor_key_cleanup(void)
38 {
39   test_return_value = TET_PASS;
40 }
41
42 // Copied from key-impl.cpp
43 struct KeyLookup
44 {
45   const char* keyName;      ///< X string representation
46   const int   daliKeyCode;  ///< Dali Enum Representation
47   const bool  deviceButton; ///< Whether the key is from a button on the device
48 };
49
50 // Taken from key-impl.cpp
51 KeyLookup KeyLookupTable[]=
52 {
53   // KeyName                DALi Equivalent           true if device key
54   { "Escape",               DALI_KEY_ESCAPE,          false },
55   { "Menu",                 DALI_KEY_MENU,            false },
56   { KEY_CAMERA,             DALI_KEY_CAMERA,          false },
57   { KEY_CONFIG,             DALI_KEY_CONFIG,          false },
58   { KEY_POWER,              DALI_KEY_POWER,           true  },
59   { KEY_PAUSE,              DALI_KEY_PAUSE,           false },
60   { KEY_CANCEL,             DALI_KEY_CANCEL,          false },
61   { KEY_PLAYCD,             DALI_KEY_PLAY_CD,         false },
62   { KEY_STOPCD,             DALI_KEY_STOP_CD,         false },
63   { KEY_PAUSECD,            DALI_KEY_PAUSE_CD,        false },
64   { KEY_NEXTSONG,           DALI_KEY_NEXT_SONG,       false },
65   { KEY_PREVIOUSSONG,       DALI_KEY_PREVIOUS_SONG,   false },
66   { KEY_REWIND,             DALI_KEY_REWIND,          false },
67   { KEY_FASTFORWARD,        DALI_KEY_FASTFORWARD,     false },
68   { KEY_MEDIA,              DALI_KEY_MEDIA,           false },
69   { KEY_PLAYPAUSE,          DALI_KEY_PLAY_PAUSE,      false },
70   { KEY_MUTE,               DALI_KEY_MUTE,            false },
71   { KEY_SEND,               DALI_KEY_SEND,            true  },
72   { KEY_SELECT,             DALI_KEY_SELECT,          true  },
73   { KEY_END,                DALI_KEY_END,             true  },
74   { KEY_MENU,               DALI_KEY_MENU,            true  },
75   { KEY_HOME,               DALI_KEY_HOME,            true  },
76   { KEY_BACK,               DALI_KEY_BACK,            true  },
77   { KEY_HOMEPAGE,           DALI_KEY_HOMEPAGE,        false },
78   { KEY_WEBPAGE,            DALI_KEY_WEBPAGE,         false },
79   { KEY_MAIL,               DALI_KEY_MAIL,            false },
80   { KEY_SCREENSAVER,        DALI_KEY_SCREENSAVER,     false },
81   { KEY_BRIGHTNESSUP,       DALI_KEY_BRIGHTNESS_UP,   false },
82   { KEY_BRIGHTNESSDOWN,     DALI_KEY_BRIGHTNESS_DOWN, false },
83   { KEY_SOFTKBD,            DALI_KEY_SOFT_KBD,        false },
84   { KEY_QUICKPANEL,         DALI_KEY_QUICK_PANEL,     false },
85   { KEY_TASKSWITCH,         DALI_KEY_TASK_SWITCH,     false },
86   { KEY_APPS,               DALI_KEY_APPS,            false },
87   { KEY_SEARCH,             DALI_KEY_SEARCH,          false },
88   { KEY_VOICE,              DALI_KEY_VOICE,           false },
89   { KEY_LANGUAGE,           DALI_KEY_LANGUAGE,        false },
90   { KEY_VOLUMEUP,           DALI_KEY_VOLUME_UP,       true  },
91   { KEY_VOLUMEDOWN,         DALI_KEY_VOLUME_DOWN,     true  },
92 };
93 const std::size_t KEY_LOOKUP_COUNT = (sizeof( KeyLookupTable))/ (sizeof(KeyLookup));
94
95
96 // Generate a KeyPressEvent to send to Core
97 Dali::KeyEvent GenerateKeyPress( const std::string& keyName )
98 {
99   KeyEvent keyPress;
100   keyPress.keyPressedName = keyName;
101   return keyPress;
102 }
103
104 int UtcDaliKeyIsKey(void)
105 {
106   TestApplication application;
107
108   for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
109   {
110     tet_printf( "Checking %s", KeyLookupTable[i].keyName );
111     DALI_TEST_CHECK( IsKey( GenerateKeyPress( KeyLookupTable[i].keyName ), KeyLookupTable[i].daliKeyCode ) );
112   }
113   END_TEST;
114 }
115
116 int UtcDaliKeyIsKeyNegative(void)
117 {
118   TestApplication application;
119
120   // Random value
121   DALI_TEST_CHECK( IsKey( GenerateKeyPress( "invalid-key-name" ), DALI_KEY_MUTE ) == false );
122
123   // Compare with another key value
124   for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
125   {
126     tet_printf( "Checking %s", KeyLookupTable[i].keyName );
127     DALI_TEST_CHECK( IsKey( GenerateKeyPress( KeyLookupTable[i].keyName ), KeyLookupTable[ ( i + 1 ) % KEY_LOOKUP_COUNT ].daliKeyCode ) == false );
128   }
129   END_TEST;
130 }