Revert "Renamed KeyEvent enum values to comply with coding standards."
[platform/core/uifw/dali-adaptor.git] / automated-tests / src / dali-adaptor / utc-Dali-Key.cpp
1 /*
2  * Copyright (c) 2020 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 <map>
20 #include <string.h>
21 #include <iostream>
22
23 // CLASS HEADER
24 #include <stdlib.h>
25 #include <iostream>
26 #include <dali.h>
27 #include <dali/devel-api/events/key-event-devel.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.h
43 struct KeyLookup
44 {
45   const char* keyName;          ///< XF86 key name
46   const Dali::KEY daliKeyCode;  ///< Dali key code
47   const bool  deviceButton;     ///< Whether the key is from a button on the device
48 };
49
50 // Common keys for all platforms
51 KeyLookup KeyLookupTable[]=
52 {
53   { "Escape",                DALI_KEY_ESCAPE,          false },  // item not defined in utilX
54   { "Menu",                  DALI_KEY_MENU,            false },  // item not defined in utilX
55
56   // Now the key names are used as literal string not defined symbols,
57   // since these definition in utilX.h is deprecated and we're guided not to use them
58   { "XF86Camera",            DALI_KEY_CAMERA,          false },
59   { "XF86Camera_Full",       DALI_KEY_CONFIG,          false },
60   { "XF86PowerOff",          DALI_KEY_POWER,           true  },
61   { "XF86Standby",           DALI_KEY_PAUSE,           false },
62   { "Cancel",                DALI_KEY_CANCEL,          false },
63   { "XF86AudioPlay",         DALI_KEY_PLAY_CD,         false },
64   { "XF86AudioStop",         DALI_KEY_STOP_CD,         false },
65   { "XF86AudioPause",        DALI_KEY_PAUSE_CD,        false },
66   { "XF86AudioNext",         DALI_KEY_NEXT_SONG,       false },
67   { "XF86AudioPrev",         DALI_KEY_PREVIOUS_SONG,   false },
68   { "XF86AudioRewind",       DALI_KEY_REWIND,          false },
69   { "XF86AudioForward",      DALI_KEY_FASTFORWARD,     false },
70   { "XF86AudioMedia",        DALI_KEY_MEDIA,           false },
71   { "XF86AudioPlayPause",    DALI_KEY_PLAY_PAUSE,      false },
72   { "XF86AudioMute",         DALI_KEY_MUTE,            false },
73   { "XF86Menu",              DALI_KEY_MENU,            true  },
74   { "XF86Home",              DALI_KEY_HOME,            true  },
75   { "XF86Back",              DALI_KEY_BACK,            true  },
76   { "XF86Send",              DALI_KEY_MENU,            true  },
77   { "XF86Phone",             DALI_KEY_HOME,            true  },
78   { "XF86Stop",              DALI_KEY_BACK,            true  },
79   { "XF86HomePage",          DALI_KEY_HOMEPAGE,        false },
80   { "XF86WWW",               DALI_KEY_WEBPAGE,         false },
81   { "XF86Mail",              DALI_KEY_MAIL,            false },
82   { "XF86ScreenSaver",       DALI_KEY_SCREENSAVER,     false },
83   { "XF86MonBrightnessUp",   DALI_KEY_BRIGHTNESS_UP,   false },
84   { "XF86MonBrightnessDown", DALI_KEY_BRIGHTNESS_DOWN, false },
85   { "XF86SoftKBD",           DALI_KEY_SOFT_KBD,        false },
86   { "XF86QuickPanel",        DALI_KEY_QUICK_PANEL,     false },
87   { "XF86TaskPane",          DALI_KEY_TASK_SWITCH,     false },
88   { "XF86Apps",              DALI_KEY_APPS,            false },
89   { "XF86Search",            DALI_KEY_SEARCH,          false },
90   { "XF86Voice",             DALI_KEY_VOICE,           false },
91   { "Hangul",                DALI_KEY_LANGUAGE,        false },
92   { "XF86AudioRaiseVolume",  DALI_KEY_VOLUME_UP,       true  },
93   { "XF86AudioLowerVolume",  DALI_KEY_VOLUME_DOWN,     true  },
94 };
95 const std::size_t KEY_LOOKUP_COUNT = (sizeof( KeyLookupTable))/ (sizeof(KeyLookup));
96
97
98 // Generate a KeyPressEvent to send to Core
99 Dali::KeyEvent GenerateKeyPress( const std::string& keyName )
100 {
101   Dali::KeyEvent keyPress = DevelKeyEvent::New(keyName, "", "", -1, 0, 0lu, Dali::KeyEvent::Down, "", "", Device::Class::NONE, Device::Subclass::NONE);  // set name to test, key string to i and modifier to shift
102   return keyPress;
103 }
104
105 int UtcDaliKeyIsKey(void)
106 {
107   TestApplication application;
108
109   for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
110   {
111     tet_printf( "Checking %s", KeyLookupTable[i].keyName );
112     DALI_TEST_CHECK( IsKey( GenerateKeyPress( KeyLookupTable[i].keyName ), KeyLookupTable[i].daliKeyCode ) );
113   }
114   END_TEST;
115 }
116
117 int UtcDaliKeyIsKeyNegative(void)
118 {
119   TestApplication application;
120
121   // Random value
122   DALI_TEST_CHECK( IsKey( GenerateKeyPress( "invalid-key-name" ), DALI_KEY_MUTE ) == false );
123
124   // Compare with another key value
125   for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
126   {
127     tet_printf( "Checking %s", KeyLookupTable[i].keyName );
128     DALI_TEST_CHECK( IsKey( GenerateKeyPress( KeyLookupTable[i].keyName ), KeyLookupTable[ ( i + 1 ) % KEY_LOOKUP_COUNT ].daliKeyCode ) == false );
129   }
130   END_TEST;
131 }