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>
28 #include <dali/public-api/adaptor-framework/key-grab.h>
35 void utc_dali_adaptor_keygrab_startup(void)
37 test_return_value = TET_UNDEF;
40 void utc_dali_adaptor_keygrab_cleanup(void)
42 test_return_value = TET_PASS;
45 // Copied from key-impl.h
48 const char* keyName; ///< X string representation
49 const KEY daliKeyCode; ///< Dali Enum Representation
50 const bool deviceButton; ///< Whether the key is from a button on the device
53 KeyLookup TestKeyLookupTable[]=
55 { "XF86Camera", DALI_KEY_CAMERA, false },
56 { "XF86Camera_Full", DALI_KEY_CONFIG, false },
57 { "XF86PowerOff", DALI_KEY_POWER, true },
58 { "Cancel", DALI_KEY_CANCEL, false },
59 { "XF86AudioStop", DALI_KEY_STOP_CD, false },
60 { "XF86AudioPause", DALI_KEY_PAUSE_CD, false },
61 { "XF86AudioNext", DALI_KEY_NEXT_SONG, false },
62 { "XF86AudioPrev", DALI_KEY_PREVIOUS_SONG, false },
63 { "XF86AudioRewind", DALI_KEY_REWIND, false },
64 { "XF86AudioForward", DALI_KEY_FASTFORWARD, false },
65 { "XF86AudioMedia", DALI_KEY_MEDIA, false },
66 { "XF86AudioPlayPause", DALI_KEY_PLAY_PAUSE, false },
67 { "XF86AudioMute", DALI_KEY_MUTE, false },
68 { "XF86HomePage", DALI_KEY_HOMEPAGE, false },
69 { "XF86WWW", DALI_KEY_WEBPAGE, false },
70 { "XF86ScreenSaver", DALI_KEY_SCREENSAVER, false },
71 { "XF86MonBrightnessUp", DALI_KEY_BRIGHTNESS_UP, false },
72 { "XF86MonBrightnessDown", DALI_KEY_BRIGHTNESS_DOWN, false },
73 { "XF86SoftKBD", DALI_KEY_SOFT_KBD, false },
74 { "XF86QuickPanel", DALI_KEY_QUICK_PANEL, false },
75 { "XF86TaskPane", DALI_KEY_TASK_SWITCH, false },
76 { "XF86Apps", DALI_KEY_APPS, false },
77 { "XF86Search", DALI_KEY_SEARCH, false },
78 { "XF86Voice", DALI_KEY_VOICE, false },
79 { "Hangul", DALI_KEY_LANGUAGE, false },
80 { "XF86AudioRaiseVolume", DALI_KEY_VOLUME_UP, true },
81 { "XF86AudioLowerVolume", DALI_KEY_VOLUME_DOWN, true },
84 const std::size_t KEY_LOOKUP_COUNT = (sizeof( TestKeyLookupTable))/ (sizeof(KeyLookup));
94 struct MyTestApp : public ConnectionTracker
96 MyTestApp( Application& app, int type )
97 : mApplication( app ),
100 mApplication.InitSignal().Connect( this, &MyTestApp::OnInit );
103 void OnInit(Application& app)
105 mStartTimer = Timer::New( 100 );
106 mStartTimer.TickSignal().Connect( this, &MyTestApp::StartTick );
109 mTimer = Timer::New( 500 );
110 mTimer.TickSignal().Connect( this, &MyTestApp::Tick );
141 case GRAB_KEY_TOPMOST_P:
142 TestGrabKeyTopmostP();
144 case UNGRAB_KEY_TOPMOST_P:
145 TestUngrabKeyTopmostP();
152 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
154 DALI_TEST_CHECK( KeyGrab::GrabKey( mApplication.GetWindow(), TestKeyLookupTable[i].daliKeyCode, KeyGrab::TOPMOST ) );
155 DALI_TEST_CHECK( KeyGrab::GrabKey( mApplication.GetWindow(), TestKeyLookupTable[i].daliKeyCode, KeyGrab::SHARED ) );
159 void TestUngrabKeyP()
161 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
163 DALI_TEST_CHECK( KeyGrab::GrabKey( mApplication.GetWindow(), TestKeyLookupTable[i].daliKeyCode, KeyGrab::TOPMOST ) );
164 DALI_TEST_CHECK( KeyGrab::UngrabKey( mApplication.GetWindow(), TestKeyLookupTable[i].daliKeyCode ) );
168 void TestGrabKeyTopmostP()
170 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
172 DALI_TEST_CHECK( KeyGrab::GrabKeyTopmost( mApplication.GetWindow(), TestKeyLookupTable[i].daliKeyCode ) );
176 void TestUngrabKeyTopmostP()
178 for ( std::size_t i = 0; i < KEY_LOOKUP_COUNT; ++i )
180 DALI_TEST_CHECK( KeyGrab::GrabKeyTopmost( mApplication.GetWindow(), TestKeyLookupTable[i].daliKeyCode ) );
181 DALI_TEST_CHECK( KeyGrab::UngrabKeyTopmost( mApplication.GetWindow(), TestKeyLookupTable[i].daliKeyCode ) );
186 Application& mApplication;
188 Timer mTimer, mStartTimer;
191 int UtcDaliKeyGrabGrabKeyP(void)
193 Application application = Application::New( &gArgc, &gArgv );
194 MyTestApp testApp( application, GRAB_KEY_P );
195 application.MainLoop();
199 int UtcDaliKeyGrabUngrabKeyP(void)
201 Application application = Application::New( &gArgc, &gArgv );
202 MyTestApp testApp( application, UNGRAB_KEY_P );
203 application.MainLoop();
207 int UtcDaliKeyGrabGrabKeyTopmostP(void)
209 Application application = Application::New( &gArgc, &gArgv );
210 MyTestApp testApp( application, GRAB_KEY_TOPMOST_P );
211 application.MainLoop();
215 int UtcDaliKeyGrabUngrabKeyTopmostP(void)
217 Application application = Application::New( &gArgc, &gArgv );
218 MyTestApp testApp( application, UNGRAB_KEY_TOPMOST_P );
219 application.MainLoop();