2 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
27 #include <dali-test-suite-utils.h>
31 void utc_dali_adaptor_key_startup(void)
33 test_return_value = TET_UNDEF;
36 void utc_dali_adaptor_key_cleanup(void)
38 test_return_value = TET_PASS;
41 // Copied from key-impl.h
44 const char* keyName; ///< XF86 key name
45 const Dali::KEY daliKeyCode; ///< Dali key code
46 const bool deviceButton; ///< Whether the key is from a button on the device
49 // Common keys for all platforms
50 KeyLookup KeyLookupTable[]=
52 { "Escape", DALI_KEY_ESCAPE, false }, // item not defined in utilX
53 { "Menu", DALI_KEY_MENU, false }, // item not defined in utilX
55 // Now the key names are used as literal string not defined symbols,
56 // since these definition in utilX.h is deprecated and we're guided not to use them
57 { "XF86Camera", DALI_KEY_CAMERA, false },
58 { "XF86Camera_Full", DALI_KEY_CONFIG, false },
59 { "XF86PowerOff", DALI_KEY_POWER, true },
60 { "XF86Standby", DALI_KEY_PAUSE, false },
61 { "Cancel", DALI_KEY_CANCEL, false },
62 { "XF86AudioPlay", DALI_KEY_PLAY_CD, false },
63 { "XF86AudioStop", DALI_KEY_STOP_CD, false },
64 { "XF86AudioPause", DALI_KEY_PAUSE_CD, false },
65 { "XF86AudioNext", DALI_KEY_NEXT_SONG, false },
66 { "XF86AudioPrev", DALI_KEY_PREVIOUS_SONG, false },
67 { "XF86AudioRewind", DALI_KEY_REWIND, false },
68 { "XF86AudioForward", DALI_KEY_FASTFORWARD, false },
69 { "XF86AudioMedia", DALI_KEY_MEDIA, false },
70 { "XF86AudioPlayPause", DALI_KEY_PLAY_PAUSE, false },
71 { "XF86AudioMute", DALI_KEY_MUTE, false },
72 { "XF86Menu", DALI_KEY_MENU, true },
73 { "XF86Home", DALI_KEY_HOME, true },
74 { "XF86Back", DALI_KEY_BACK, true },
75 { "XF86Send", DALI_KEY_MENU, true },
76 { "XF86Phone", DALI_KEY_HOME, true },
77 { "XF86Stop", DALI_KEY_BACK, true },
78 { "XF86HomePage", DALI_KEY_HOMEPAGE, false },
79 { "XF86WWW", DALI_KEY_WEBPAGE, false },
80 { "XF86Mail", DALI_KEY_MAIL, false },
81 { "XF86ScreenSaver", DALI_KEY_SCREENSAVER, false },
82 { "XF86MonBrightnessUp", DALI_KEY_BRIGHTNESS_UP, false },
83 { "XF86MonBrightnessDown", DALI_KEY_BRIGHTNESS_DOWN, false },
84 { "XF86SoftKBD", DALI_KEY_SOFT_KBD, false },
85 { "XF86QuickPanel", DALI_KEY_QUICK_PANEL, false },
86 { "XF86TaskPane", DALI_KEY_TASK_SWITCH, false },
87 { "XF86Apps", DALI_KEY_APPS, false },
88 { "XF86Search", DALI_KEY_SEARCH, false },
89 { "XF86Voice", DALI_KEY_VOICE, false },
90 { "Hangul", DALI_KEY_LANGUAGE, false },
91 { "XF86AudioRaiseVolume", DALI_KEY_VOLUME_UP, true },
92 { "XF86AudioLowerVolume", DALI_KEY_VOLUME_DOWN, true },
94 const std::size_t KEY_LOOKUP_COUNT = (sizeof( KeyLookupTable))/ (sizeof(KeyLookup));
97 // Generate a KeyPressEvent to send to Core
98 Dali::KeyEvent GenerateKeyPress( const std::string& keyName )
101 keyPress.keyPressedName = keyName;
105 int UtcDaliKeyIsKey(void)
107 TestApplication application;
109 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
111 tet_printf( "Checking %s", KeyLookupTable[i].keyName );
112 DALI_TEST_CHECK( IsKey( GenerateKeyPress( KeyLookupTable[i].keyName ), KeyLookupTable[i].daliKeyCode ) );
117 int UtcDaliKeyIsKeyNegative(void)
119 TestApplication application;
122 DALI_TEST_CHECK( IsKey( GenerateKeyPress( "invalid-key-name" ), DALI_KEY_MUTE ) == false );
124 // Compare with another key value
125 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
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 );