2 * Copyright (c) 2016 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.
17 #include <dali/devel-api/adaptor-framework/style-monitor.h>
23 #include <dali-toolkit-test-suite-utils.h>
24 #include <dali-toolkit/dali-toolkit.h>
25 #include <dali/integration-api/events/touch-event-integ.h>
26 #include <dali-toolkit/devel-api/builder/builder.h>
27 #include <test-button.h>
28 #include <test-animation-data.h>
29 #include <toolkit-style-monitor.h>
30 #include <dummy-control.h>
31 #include <dali-toolkit/devel-api/controls/control-devel.h>
32 #include <dali-toolkit/devel-api/visuals/text-visual-properties.h>
33 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
34 #include <dali-toolkit/devel-api/visual-factory/visual-base.h>
37 using namespace Dali::Toolkit;
41 std::string defaultTheme;
43 } // anonymous namespace
48 void dali_style_manager_startup(void)
50 test_return_value = TET_UNDEF;
52 std::ifstream t("src/dali-toolkit-styling/default-theme.json");
53 defaultTheme = std::string((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());
56 void dali_style_manager_cleanup(void)
58 test_return_value = TET_PASS;
62 Visual::Base CheckVisual( Impl::DummyControl& dummyImpl, Property::Index visualId, int type, const char* location )
64 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(visualId), true, location);
65 Visual::Base visual = dummyImpl.GetVisual(visualId);
66 DALI_TEST_EQUALS( (bool)visual, true, location );
68 visual.CreatePropertyMap( map );
69 Property::Value* value = map.Find( Visual::Property::TYPE );
70 DALI_TEST_EQUALS( value != NULL, true, location );
73 value->Get( visualType );
74 DALI_TEST_EQUALS( visualType, type, location );
79 Integration::Bitmap* CreateBitmap( unsigned int imageWidth, unsigned int imageHeight, unsigned int initialColor, Pixel::Format pixelFormat )
81 Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_RETAIN );
82 Integration::PixelBuffer* pixbuffer = bitmap->GetPackedPixelsProfile()->ReserveBuffer( pixelFormat, imageWidth, imageHeight, imageWidth, imageHeight );
83 unsigned int bytesPerPixel = GetBytesPerPixel( pixelFormat );
85 memset( pixbuffer, initialColor, imageHeight * imageWidth * bytesPerPixel );
90 Integration::ResourcePointer CustomizeNinePatch( TestApplication& application,
91 unsigned int ninePatchImageWidth,
92 unsigned int ninePatchImageHeight)
94 TestPlatformAbstraction& platform = application.GetPlatform();
96 Pixel::Format pixelFormat = Pixel::RGBA8888;
98 tet_infoline("Create Bitmap");
99 platform.SetClosestImageSize(Vector2( ninePatchImageWidth, ninePatchImageHeight));
100 Integration::Bitmap* bitmap = CreateBitmap( ninePatchImageWidth, ninePatchImageHeight, 0xFF, pixelFormat );
102 tet_infoline("Getting resource");
103 Integration::ResourcePointer resourcePtr(bitmap);
104 platform.SetSynchronouslyLoadedResource( resourcePtr);
109 int UtcDaliStyleManagerConstructorP(void)
111 ToolkitTestApplication application;
113 tet_infoline(" UtcDaliStyleManagerConstructorP");
114 StyleManager styleManager;
115 DALI_TEST_CHECK( !styleManager);
119 int UtcDaliStyleManagerCopyConstructorP(void)
121 TestApplication application;
123 StyleManager styleManager = StyleManager::Get();
124 StyleManager copyOfStyleManager( styleManager );
126 DALI_TEST_CHECK( copyOfStyleManager );
130 int UtcDaliStyleManagerAssignmentOperatorP(void)
132 TestApplication application;
134 StyleManager styleManager = StyleManager::Get();
135 StyleManager copyOfStyleManager = styleManager;
137 DALI_TEST_CHECK( copyOfStyleManager );
138 DALI_TEST_CHECK( copyOfStyleManager == styleManager );
142 int UtcDaliStyleManagerGet(void)
144 ToolkitTestApplication application;
146 tet_infoline(" UtcDaliStyleManagerGet");
150 type = TypeRegistry::Get().GetTypeInfo( "StyleManager" );
151 DALI_TEST_CHECK( type );
152 BaseHandle handle = type.CreateInstance();
153 DALI_TEST_CHECK( handle );
155 StyleManager manager;
157 manager = StyleManager::Get();
158 DALI_TEST_CHECK(manager);
160 StyleManager newManager = StyleManager::Get();
161 DALI_TEST_CHECK(newManager);
163 // Check that focus manager is a singleton
164 DALI_TEST_CHECK(manager == newManager);
171 class StyleChangedSignalChecker : public ConnectionTracker
174 StyleChangedSignalChecker()
179 void OnStyleChanged(StyleManager styleManager, StyleChange::Type type)
193 } // anonymous namespace
195 int UtcDaliStyleManagerApplyTheme(void)
197 ToolkitTestApplication application;
199 tet_infoline( "Testing StyleManager ApplyTheme" );
205 " \"CONFIG_SCRIPT_LOG_LEVEL\":\"Verbose\"\n"
211 " \"backgroundColor\":[1.0,1.0,0.0,1.0],\n"
212 " \"foregroundColor\":[0.0,0.0,1.0,1.0]\n"
223 " \"backgroundColor\":[1.0,0.0,0.0,1.0],\n"
224 " \"foregroundColor\":[0.0,1.0,1.0,1.0]\n"
229 // Add 2 buttons to test how many times the signal is sent
230 Test::TestButton testButton = Test::TestButton::New();
231 Test::TestButton testButton2 = Test::TestButton::New();
232 Stage::GetCurrent().Add( testButton );
233 Stage::GetCurrent().Add( testButton2 );
234 StyleChangedSignalChecker styleChangedSignalHandler;
235 StyleChangedSignalChecker styleChangedSignalHandler2;
236 StyleManager styleManager = StyleManager::Get();
238 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
241 application.SendNotification();
242 application.Render();
244 tet_infoline("Apply the style");
246 std::string themeFile("ThemeOne");
247 Test::StyleMonitor::SetThemeFileOutput(themeFile, json1);
248 StyleManager::Get().ApplyTheme(themeFile);
250 Property::Value bgColor( testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR) );
251 Property::Value fgColor( testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR) );
253 DALI_TEST_EQUALS( bgColor, Property::Value(Color::YELLOW), 0.001, TEST_LOCATION );
254 DALI_TEST_EQUALS( fgColor, Property::Value(Color::BLUE), 0.001, TEST_LOCATION );
256 tet_infoline("Testing that the signal handler is called only once");
257 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
259 tet_infoline("Override the background property");
260 testButton.SetProperty( Test::TestButton::Property::BACKGROUND_COLOR, Color::GREEN );
261 bgColor = testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR);
262 fgColor = testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR);
263 DALI_TEST_EQUALS( bgColor, Property::Value(Color::GREEN), 0.001, TEST_LOCATION );
264 DALI_TEST_EQUALS( fgColor, Property::Value(Color::BLUE), 0.001, TEST_LOCATION );
267 application.SendNotification();
268 application.Render();
270 tet_infoline("Apply the style again");
272 styleChangedSignalHandler.signalCount = 0;
273 StyleManager::Get().ApplyTheme(themeFile);
275 bgColor = testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR);
276 fgColor = testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR);
278 tet_infoline("Check that the property is changed");
279 DALI_TEST_EQUALS( bgColor, Property::Value(Color::YELLOW), 0.001, TEST_LOCATION );
280 DALI_TEST_EQUALS( fgColor, Property::Value(Color::BLUE), 0.001, TEST_LOCATION );
281 tet_infoline("Testing that the signal handler is called only once");
282 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
284 tet_infoline( "Load a different stylesheet");
286 tet_infoline("Apply the new style");
287 std::string themeFile2("ThemeTwo");
288 Test::StyleMonitor::SetThemeFileOutput(themeFile2, json2);
290 styleChangedSignalHandler.signalCount = 0;
291 StyleManager::Get().ApplyTheme(themeFile2);
293 bgColor = testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR);
294 fgColor = testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR);
296 tet_infoline("Check that the properties change, but the signal gets sent only once");
297 DALI_TEST_EQUALS( bgColor, Property::Value(Color::RED), 0.001, TEST_LOCATION );
298 DALI_TEST_EQUALS( fgColor, Property::Value(Color::CYAN), 0.001, TEST_LOCATION );
299 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
305 int UtcDaliStyleManagerApplyDefaultTheme(void)
307 tet_infoline( "Testing StyleManager ApplyTheme" );
309 const char* defaultTheme =
313 " \"CONFIG_SCRIPT_LOG_LEVEL\":\"Concise\"\n"
319 " \"backgroundColor\":[1.0,1.0,0.0,1.0],\n"
320 " \"foregroundColor\":[0.0,0.0,1.0,1.0]\n"
324 // Bg: Yellow, Fg: Blue
326 const char* appTheme =
332 " \"backgroundColor\":[1.0,0.0,1.0,1.0],\n"
333 " \"foregroundColor\":[0.0,1.0,0.0,1.0]\n"
337 // Bg::Magenta, Fg:Green
339 std::string filepath(TEST_RESOURCE_DIR "");
341 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
343 ToolkitTestApplication application;
345 Test::TestButton testButton = Test::TestButton::New();
346 Stage::GetCurrent().Add( testButton );
347 StyleChangedSignalChecker styleChangedSignalHandler;
348 StyleManager styleManager = StyleManager::Get();
350 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
353 application.SendNotification();
354 application.Render();
357 Property::Value defaultBgColor( testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR) );
358 Property::Value defaultFgColor( testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR) );
360 tet_infoline("Apply the style");
362 std::string themeFile("ThemeOne");
363 Test::StyleMonitor::SetThemeFileOutput(themeFile, appTheme);
364 StyleManager::Get().ApplyTheme(themeFile);
366 Property::Value bgColor( testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR) );
367 Property::Value fgColor( testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR) );
369 DALI_TEST_EQUALS( bgColor, Property::Value(Color::MAGENTA), 0.001, TEST_LOCATION );
370 DALI_TEST_EQUALS( fgColor, Property::Value(Color::GREEN), 0.001, TEST_LOCATION );
372 tet_infoline("Testing that the signal handler is called only once");
373 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
374 tet_infoline("Revert the style");
376 styleChangedSignalHandler.signalCount = 0;
377 StyleManager::Get().ApplyDefaultTheme();
379 bgColor = testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR);
380 fgColor = testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR);
382 tet_infoline("Check that the property is reverted");
383 DALI_TEST_EQUALS( bgColor, defaultBgColor, 0.001, TEST_LOCATION );
384 DALI_TEST_EQUALS( fgColor, defaultFgColor, 0.001, TEST_LOCATION );
385 DALI_TEST_EQUALS( bgColor, Property::Value(Color::YELLOW), 0.001, TEST_LOCATION );
386 DALI_TEST_EQUALS( fgColor, Property::Value(Color::BLUE), 0.001, TEST_LOCATION );
387 tet_infoline("Testing that the signal handler is called only once");
388 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
394 int UtcDaliStyleManagerSetStyleConstantP(void)
396 ToolkitTestApplication application;
398 tet_infoline( " UtcDaliStyleManagerSetStyleConstantP" );
400 StyleManager manager = StyleManager::Get();
402 std::string key( "key" );
403 Property::Value value( 100 );
405 manager.SetStyleConstant( key, value );
407 Property::Value returnedValue;
408 manager.GetStyleConstant( key, returnedValue );
410 DALI_TEST_CHECK( value.Get<int>() == returnedValue.Get<int>() );
415 int UtcDaliStyleManagerGetStyleConstantP(void)
417 ToolkitTestApplication application;
419 tet_infoline( " UtcDaliStyleManagerGetStyleConstantP" );
421 StyleManager manager = StyleManager::Get();
423 std::string key( "key" );
424 Property::Value value( 100 );
426 manager.SetStyleConstant( key, value );
428 Property::Value returnedValue;
429 manager.GetStyleConstant( key, returnedValue );
431 DALI_TEST_CHECK( value.Get<int>() == returnedValue.Get<int>() );
435 int UtcDaliStyleManagerGetStyleConstantN(void)
437 ToolkitTestApplication application;
439 tet_infoline( " UtcDaliStyleManagerGetStyleConstantN" );
441 StyleManager manager = StyleManager::Get();
443 std::string key2( "key2" );
444 Property::Value returnedValue2;
445 DALI_TEST_CHECK( !manager.GetStyleConstant( key2, returnedValue2 ) );
450 int UtcDaliStyleManagerApplyStyle(void)
452 ToolkitTestApplication application;
454 tet_infoline( "UtcDaliStyleManagerApplyStyle - test that a style can be applied to a single button" );
460 " \"CONFIG_SCRIPT_LOG_LEVEL\":\"General\"\n"
466 " \"backgroundColor\":[1.0,1.0,0.0,1.0],\n"
467 " \"foregroundColor\":[0.0,0.0,1.0,1.0]\n"
478 " \"backgroundColor\":[1.0,0.0,0.0,1.0],\n"
479 " \"foregroundColor\":[0.0,1.0,1.0,1.0]\n"
485 Test::TestButton testButton = Test::TestButton::New();
486 Test::TestButton testButton2 = Test::TestButton::New();
487 Stage::GetCurrent().Add( testButton );
488 Stage::GetCurrent().Add( testButton2 );
489 StyleChangedSignalChecker styleChangedSignalHandler;
490 StyleManager styleManager = StyleManager::Get();
492 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
494 tet_infoline("Apply the style");
496 std::string themeFile("ThemeOne");
497 Test::StyleMonitor::SetThemeFileOutput(themeFile, json1);
498 styleManager.ApplyTheme(themeFile);
501 application.SendNotification();
502 application.Render();
504 Property::Value themedBgColor( testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR) );
505 Property::Value themedFgColor( testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR) );
507 // Apply the style to the test button:
508 std::string themeFile2("ThemeTwo");
509 Test::StyleMonitor::SetThemeFileOutput(themeFile2, json2);
510 styleManager.ApplyStyle( testButton, themeFile2, "testbutton" );
512 tet_infoline("Check that the properties change for the first button");
513 Property::Value bgColor = testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR);
514 Property::Value fgColor = testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR);
515 DALI_TEST_EQUALS( bgColor, Property::Value(Color::RED), 0.001, TEST_LOCATION );
516 DALI_TEST_EQUALS( fgColor, Property::Value(Color::CYAN), 0.001, TEST_LOCATION );
518 DALI_TEST_NOT_EQUALS( bgColor, themedBgColor, 0.001, TEST_LOCATION );
519 DALI_TEST_NOT_EQUALS( fgColor, themedFgColor, 0.001, TEST_LOCATION );
521 tet_infoline("Check that the properties remain the same for the second button");
522 bgColor = testButton2.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR);
523 fgColor = testButton2.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR);
524 DALI_TEST_EQUALS( bgColor, themedBgColor, 0.001, TEST_LOCATION );
525 DALI_TEST_EQUALS( fgColor, themedFgColor, 0.001, TEST_LOCATION );
531 int UtcDaliStyleManagerIncludeStyleP(void)
533 ToolkitTestApplication application;
535 tet_infoline( "UtcDaliStyleManagerIncludeStyle - test that style sheet inclusion works" );
541 " \"src/dali-toolkit-styling/theme2.json\"\n"
547 " \"foregroundColor\":[0.0,0.0,1.0,1.0]\n"
553 Test::TestButton testButton = Test::TestButton::New();
554 Test::TestButton testButton2 = Test::TestButton::New();
555 Stage::GetCurrent().Add( testButton );
556 Stage::GetCurrent().Add( testButton2 );
557 StyleChangedSignalChecker styleChangedSignalHandler;
558 StyleManager styleManager = StyleManager::Get();
560 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
562 tet_infoline("Apply the style");
564 std::string themeFile("ThemeOne");
565 Test::StyleMonitor::SetThemeFileOutput(themeFile, json1);
567 styleManager.ApplyTheme(themeFile);
570 application.SendNotification();
571 application.Render();
573 Property::Value themedBgColor( testButton.GetProperty(Test::TestButton::Property::BACKGROUND_COLOR) );
574 Property::Value themedFgColor( testButton.GetProperty(Test::TestButton::Property::FOREGROUND_COLOR) );
576 DALI_TEST_EQUALS( themedBgColor, Property::Value(Color::YELLOW), 0.001, TEST_LOCATION );
577 DALI_TEST_EQUALS( themedFgColor, Property::Value(Color::BLUE), 0.001, TEST_LOCATION );
583 int UtcDaliStyleManagerIncludeStyleN(void)
585 ToolkitTestApplication application;
587 tet_infoline( "UtcDaliStyleManagerIncludeStyle - test that style sheet inclusion works, but included stylesheet is bad json" );
593 " \"src/dali-toolkit-styling/theme3.json\"\n"
599 " \"foregroundColor\":[0.0,0.0,1.0,1.0]\n"
605 Test::TestButton testButton = Test::TestButton::New();
606 Test::TestButton testButton2 = Test::TestButton::New();
607 Stage::GetCurrent().Add( testButton );
608 Stage::GetCurrent().Add( testButton2 );
609 StyleChangedSignalChecker styleChangedSignalHandler;
610 StyleManager styleManager = StyleManager::Get();
612 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
614 tet_infoline("Apply the style");
616 std::string themeFile("ThemeOne");
617 Test::StyleMonitor::SetThemeFileOutput(themeFile, json1);
621 styleManager.ApplyTheme(themeFile);
623 catch( Dali::DaliException& e )
625 DALI_TEST_ASSERT( e, "!\"Cannot parse JSON\"", TEST_LOCATION );
632 int UtcDaliStyleManagerStyleChangedSignalFontFamily(void)
634 tet_infoline("Test that the StyleChange signal is fired when the font family is altered" );
635 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
638 ToolkitTestApplication application;
640 std::string labelStr("Label");
641 Toolkit::TextLabel label = Toolkit::TextLabel::New(labelStr);
642 Stage::GetCurrent().Add( label );
644 Toolkit::TextLabel label2 = Toolkit::TextLabel::New(labelStr);
645 Stage::GetCurrent().Add( label2 );
647 StyleChangedSignalChecker styleChangedSignalHandler;
648 Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
649 StyleManager styleManager = StyleManager::Get();
651 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
653 Test::StyleMonitor::SetDefaultFontFamily("Times New Roman");
655 styleMonitor.StyleChangeSignal().Emit( styleMonitor, StyleChange::DEFAULT_FONT_CHANGE);
657 tet_infoline("Test that the StyleChanged signal is received only once");
659 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
661 // Check that the label's font style has been altered
662 Property::Value family = label.GetProperty(TextLabel::Property::FONT_FAMILY);
663 std::string familyStr;
664 family.Get( familyStr );
666 DALI_TEST_EQUALS( familyStr, "Times New Roman", TEST_LOCATION);
671 int UtcDaliStyleManagerStyleChangedSignalFontSize(void)
673 tet_infoline("Test that the StyleChange signal is fired when the font size is altered" );
675 const char* defaultTheme =
679 " \"textlabelFontSize0\":\n"
681 " \"pointSize\":10\n"
683 " \"textlabelFontSize1\":\n"
685 " \"pointSize\":10\n"
687 " \"textlabelFontSize2\":\n"
689 " \"pointSize\":12\n"
691 " \"textlabelFontSize3\":\n"
693 " \"pointSize\":14\n"
695 " \"textlabelFontSize4\":\n"
697 " \"pointSize\":16\n"
702 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json", defaultTheme );
704 ToolkitTestApplication application;
706 std::string labelStr("Label");
707 Toolkit::TextLabel label = Toolkit::TextLabel::New(labelStr);
708 Stage::GetCurrent().Add( label );
710 Toolkit::TextLabel label2 = Toolkit::TextLabel::New(labelStr);
711 Stage::GetCurrent().Add( label2 );
713 StyleChangedSignalChecker styleChangedSignalHandler;
714 StyleMonitor styleMonitor = StyleMonitor::Get();
715 StyleManager styleManager = StyleManager::Get();
717 label.SetProperty(TextLabel::Property::POINT_SIZE, 10.0f);
719 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
721 Test::StyleMonitor::SetDefaultFontSize(2);
722 styleMonitor.StyleChangeSignal().Emit( styleMonitor, StyleChange::DEFAULT_FONT_SIZE_CHANGE);
724 tet_infoline("Test that the StyleChanged signal is received only once");
725 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
727 tet_infoline("Test that the label's font size has been altered\n");
728 Property::Value pointSizeValue = label.GetProperty(TextLabel::Property::POINT_SIZE);
730 pointSizeValue.Get( pointSize );
732 DALI_TEST_EQUALS( pointSize, 12.0f, 0.001, TEST_LOCATION );
734 styleChangedSignalHandler.signalCount = 0;
736 Test::StyleMonitor::SetDefaultFontSize(4);
737 styleMonitor.StyleChangeSignal().Emit( styleMonitor, StyleChange::DEFAULT_FONT_SIZE_CHANGE);
739 tet_infoline("Test that the StyleChanged signal is received only once");
740 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
742 // Check that the label's font style has been altered
743 pointSizeValue = label.GetProperty(TextLabel::Property::POINT_SIZE);
744 pointSizeValue.Get( pointSize );
746 DALI_TEST_EQUALS( pointSize, 16.0f, 0.001, TEST_LOCATION );
753 int UtcDaliStyleManagerStyleChangedSignalFontSizeTextField(void)
755 tet_infoline("Test that the StyleChange signal is fired when the font size is altered" );
757 const char* defaultTheme =
761 " \"textfieldFontSize0\":\n"
765 " \"textfieldFontSize1\":\n"
767 " \"pointSize\":10\n"
769 " \"textfieldFontSize2\":\n"
771 " \"pointSize\":12\n"
773 " \"textfieldFontSize3\":\n"
775 " \"pointSize\":14\n"
777 " \"textfieldFontSize4\":\n"
779 " \"pointSize\":16\n"
784 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json", defaultTheme );
786 ToolkitTestApplication application;
788 std::string fieldStr("Field");
789 Toolkit::TextField field = Toolkit::TextField::New();
790 field.SetProperty( Toolkit::TextField::Property::TEXT, fieldStr );
791 Stage::GetCurrent().Add( field );
793 Toolkit::TextField field2 = Toolkit::TextField::New();
794 Stage::GetCurrent().Add( field2 );
795 field2.SetProperty( Toolkit::TextField::Property::TEXT, fieldStr );
797 StyleChangedSignalChecker styleChangedSignalHandler;
798 StyleMonitor styleMonitor = StyleMonitor::Get();
799 StyleManager styleManager = StyleManager::Get();
801 field.SetProperty(TextField::Property::POINT_SIZE, 10.0f);
803 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
805 Test::StyleMonitor::SetDefaultFontSize(2);
806 styleMonitor.StyleChangeSignal().Emit( styleMonitor, StyleChange::DEFAULT_FONT_SIZE_CHANGE);
808 tet_infoline("Test that the StyleChanged signal is received only once");
809 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
811 tet_infoline("Test that the field's font size has been altered\n");
812 Property::Value pointSizeValue = field.GetProperty(TextField::Property::POINT_SIZE);
814 pointSizeValue.Get( pointSize );
816 DALI_TEST_EQUALS( pointSize, 12.0f, 0.001, TEST_LOCATION );
818 styleChangedSignalHandler.signalCount = 0;
820 Test::StyleMonitor::SetDefaultFontSize(4);
821 styleMonitor.StyleChangeSignal().Emit( styleMonitor, StyleChange::DEFAULT_FONT_SIZE_CHANGE);
823 tet_infoline("Test that the StyleChanged signal is received only once");
824 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
826 // Check that the field's font style has been altered
827 pointSizeValue = field.GetProperty(TextField::Property::POINT_SIZE);
828 pointSizeValue.Get( pointSize );
830 DALI_TEST_EQUALS( pointSize, 16.0f, 0.001, TEST_LOCATION );
836 int UtcDaliStyleManagerStyleChangedSignalFontSizeTextEditor(void)
838 tet_infoline("Test that the StyleChange signal is fired when the font size is altered" );
840 const char* defaultTheme =
844 " \"texteditorFontSize0\":\n"
846 " \"pointSize\":10\n"
848 " \"texteditorFontSize1\":\n"
850 " \"pointSize\":12\n"
852 " \"texteditorFontSize2\":\n"
854 " \"pointSize\":14\n"
856 " \"texteditorFontSize3\":\n"
858 " \"pointSize\":18\n"
860 " \"texteditorFontSize4\":\n"
862 " \"pointSize\":25\n"
867 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json", defaultTheme );
869 ToolkitTestApplication application;
871 std::string editorStr("Editor");
872 Toolkit::TextEditor editor = Toolkit::TextEditor::New();
873 editor.SetProperty( Toolkit::TextEditor::Property::TEXT, editorStr );
874 Stage::GetCurrent().Add( editor );
876 Toolkit::TextEditor editor2 = Toolkit::TextEditor::New();
877 Stage::GetCurrent().Add( editor2 );
878 editor2.SetProperty( Toolkit::TextEditor::Property::TEXT, editorStr );
880 StyleChangedSignalChecker styleChangedSignalHandler;
881 StyleMonitor styleMonitor = StyleMonitor::Get();
882 StyleManager styleManager = StyleManager::Get();
884 editor.SetProperty(TextEditor::Property::POINT_SIZE, 10.0f);
886 styleManager.StyleChangedSignal().Connect(&styleChangedSignalHandler, &StyleChangedSignalChecker::OnStyleChanged);
888 Test::StyleMonitor::SetDefaultFontSize(2);
889 styleMonitor.StyleChangeSignal().Emit( styleMonitor, StyleChange::DEFAULT_FONT_SIZE_CHANGE);
891 tet_infoline("Test that the StyleChanged signal is received only once");
892 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
894 tet_infoline("Test that the editor's font size has been altered\n");
895 Property::Value pointSizeValue = editor.GetProperty(TextEditor::Property::POINT_SIZE);
897 pointSizeValue.Get( pointSize );
899 DALI_TEST_EQUALS( pointSize, 14.0f, 0.001, TEST_LOCATION );
901 styleChangedSignalHandler.signalCount = 0;
903 Test::StyleMonitor::SetDefaultFontSize(4);
904 styleMonitor.StyleChangeSignal().Emit( styleMonitor, StyleChange::DEFAULT_FONT_SIZE_CHANGE);
906 tet_infoline("Test that the StyleChanged signal is received only once");
907 DALI_TEST_EQUALS( styleChangedSignalHandler.signalCount, 1, TEST_LOCATION );
909 // Check that the editor's font style has been altered
910 pointSizeValue = editor.GetProperty(TextEditor::Property::POINT_SIZE);
911 pointSizeValue.Get( pointSize );
913 DALI_TEST_EQUALS( pointSize, 25.0f, 0.001, TEST_LOCATION );
920 int UtcDaliStyleManagerSetState01(void)
922 tet_infoline("Instantiate dummy control and test state/visual/transition capture" );
923 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
926 ToolkitTestApplication application;
928 StyleChangedSignalChecker styleChangedSignalHandler;
929 Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
930 StyleManager styleManager = StyleManager::Get();
932 DummyControl actor = DummyControl::New(true);
933 actor.SetStyleName("BasicControl");
934 Stage::GetCurrent().Add(actor);
936 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
937 Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
939 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOREGROUND_VISUAL), true, TEST_LOCATION);
940 Visual::Base visual1 = dummyImpl.GetVisual(DummyControl::Property::FOREGROUND_VISUAL);
941 Visual::Base labelVisual1 = dummyImpl.GetVisual(DummyControl::Property::LABEL_VISUAL);
942 Property::Map labelMap;
943 labelVisual1.CreatePropertyMap( labelMap );
944 labelMap[TextVisual::Property::TEXT] = "New text";
945 VisualFactory factory = VisualFactory::Get();
946 labelVisual1 = factory.CreateVisual(labelMap);
947 dummyImpl.UnregisterVisual(DummyControl::Property::LABEL_VISUAL );
948 dummyImpl.RegisterVisual(DummyControl::Property::LABEL_VISUAL, labelVisual1 );
950 actor.SetProperty( DevelControl::Property::STATE, DevelControl::FOCUSED );
952 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOREGROUND_VISUAL), true, TEST_LOCATION);
953 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOCUS_VISUAL), true, TEST_LOCATION);
954 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::LABEL_VISUAL), true, TEST_LOCATION);
956 Visual::Base visual2 = dummyImpl.GetVisual(DummyControl::Property::FOREGROUND_VISUAL);
957 Visual::Base labelVisual2 = dummyImpl.GetVisual(DummyControl::Property::LABEL_VISUAL);
958 DALI_TEST_CHECK( visual1 != visual2 );
959 DALI_TEST_CHECK( labelVisual1 != labelVisual2 );
961 labelVisual2.CreatePropertyMap( labelMap );
962 Property::Value* textValue = labelMap.Find( Toolkit::TextVisual::Property::TEXT, "text");
963 DALI_TEST_CHECK( textValue );
964 Property::Value* pointSizeValue = labelMap.Find( Toolkit::TextVisual::Property::POINT_SIZE, "pointSize");
965 tet_infoline( "Check that the instance data has been copied to the new text visual\n");
966 DALI_TEST_EQUALS( textValue->Get<std::string>(), "New text", TEST_LOCATION );
967 DALI_TEST_EQUALS( pointSizeValue->Get<int>(), 10, TEST_LOCATION );
970 actor.SetProperty( DevelControl::Property::STATE, DevelControl::DISABLED );
972 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOREGROUND_VISUAL), true, TEST_LOCATION);
974 Visual::Base visual3 = dummyImpl.GetVisual(DummyControl::Property::FOREGROUND_VISUAL);
975 Visual::Base focusVisual = dummyImpl.GetVisual(DummyControl::Property::FOCUS_VISUAL);
976 DALI_TEST_CHECK( !focusVisual );
977 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOCUS_VISUAL), false, TEST_LOCATION);
979 DALI_TEST_CHECK( visual1 != visual3 );
980 DALI_TEST_CHECK( visual2 != visual3 );
982 Visual::Base labelVisual3 = dummyImpl.GetVisual(DummyControl::Property::LABEL_VISUAL);
983 DALI_TEST_CHECK( labelVisual2 != labelVisual3 );
985 labelVisual2.CreatePropertyMap( labelMap );
986 textValue = labelMap.Find(Toolkit::TextVisual::Property::TEXT, "text");
987 DALI_TEST_CHECK( textValue );
988 pointSizeValue = labelMap.Find(Toolkit::TextVisual::Property::POINT_SIZE, "pointSize");
989 tet_infoline( "Check that the instance data has been copied to the new text visual\n");
990 DALI_TEST_EQUALS( textValue->Get<std::string>(), "New text", TEST_LOCATION );
991 DALI_TEST_EQUALS( pointSizeValue->Get<int>(), 10, TEST_LOCATION );
996 int UtcDaliStyleManagerSetState02(void)
998 tet_infoline("Instantiate dummy control and test state/visual/transition capture" );
999 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
1002 ToolkitTestApplication application;
1004 StyleChangedSignalChecker styleChangedSignalHandler;
1005 Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
1006 StyleManager styleManager = StyleManager::Get();
1008 DummyControl actor = DummyControl::New(true);
1009 actor.SetStyleName("BasicControl");
1010 Stage::GetCurrent().Add(actor);
1012 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
1013 Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
1015 int state = actor.GetProperty<int>( DevelControl::Property::STATE );
1016 DALI_TEST_EQUALS( state, (int) DevelControl::NORMAL, TEST_LOCATION );
1018 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOREGROUND_VISUAL), true, TEST_LOCATION);
1019 Visual::Base visual1 = dummyImpl.GetVisual(DummyControl::Property::FOREGROUND_VISUAL);
1021 actor.SetProperty( DevelControl::Property::STATE,
1022 Property::Map().Add( "state", "FOCUSED" ).Add("withTransitions", false));
1024 state = actor.GetProperty<int>( DevelControl::Property::STATE );
1025 DALI_TEST_EQUALS( state, (int) DevelControl::FOCUSED, TEST_LOCATION );
1027 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOREGROUND_VISUAL), true, TEST_LOCATION);
1028 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOCUS_VISUAL), true, TEST_LOCATION);
1030 Visual::Base visual2 = dummyImpl.GetVisual(DummyControl::Property::FOREGROUND_VISUAL);
1031 DALI_TEST_CHECK( visual1 != visual2 );
1033 actor.SetProperty( DevelControl::Property::STATE,
1034 Property::Map().Add( "state", "DISABLED" ).Add("withTransitions", false));
1036 state = actor.GetProperty<int>( DevelControl::Property::STATE );
1037 DALI_TEST_EQUALS( state, (int) DevelControl::DISABLED, TEST_LOCATION );
1039 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOREGROUND_VISUAL), true, TEST_LOCATION);
1041 Visual::Base visual3 = dummyImpl.GetVisual(DummyControl::Property::FOREGROUND_VISUAL);
1043 Visual::Base testVisual = dummyImpl.GetVisual(DummyControl::Property::FOCUS_VISUAL);
1044 DALI_TEST_CHECK( !testVisual );
1045 testVisual = dummyImpl.GetVisual(DummyControl::Property::TEST_VISUAL);
1046 DALI_TEST_CHECK( !testVisual );
1047 testVisual = dummyImpl.GetVisual(DummyControl::Property::TEST_VISUAL2);
1048 DALI_TEST_CHECK( !testVisual );
1049 testVisual = dummyImpl.GetVisual(DummyControl::Property::LABEL_VISUAL);
1050 DALI_TEST_CHECK( testVisual );
1053 DALI_TEST_CHECK( visual1 != visual3 );
1054 DALI_TEST_CHECK( visual2 != visual3 );
1056 actor.SetProperty( DevelControl::Property::STATE,
1057 Property::Map().Add( "state", "NORMAL" ).Add("withTransitions", false));
1059 state = actor.GetProperty<int>( DevelControl::Property::STATE );
1060 DALI_TEST_EQUALS( state, (int) DevelControl::NORMAL, TEST_LOCATION );
1062 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOREGROUND_VISUAL), true, TEST_LOCATION);
1064 visual1 = dummyImpl.GetVisual(DummyControl::Property::FOREGROUND_VISUAL);
1065 DALI_TEST_CHECK( visual1 );
1067 Visual::Base focusVisual = dummyImpl.GetVisual(DummyControl::Property::FOCUS_VISUAL);
1068 DALI_TEST_CHECK( !focusVisual );
1069 DALI_TEST_EQUALS(dummyImpl.IsVisualEnabled(DummyControl::Property::FOCUS_VISUAL), false, TEST_LOCATION);
1076 int UtcDaliStyleManagerSetState03N(void)
1078 tet_infoline("Instantiate dummy control and test state transition without state style" );
1079 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
1082 ToolkitTestApplication application;
1084 StyleChangedSignalChecker styleChangedSignalHandler;
1085 Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
1086 StyleManager styleManager = StyleManager::Get();
1088 DummyControl actor = DummyControl::New(true);
1089 actor.SetStyleName("NoStyles");
1090 Stage::GetCurrent().Add(actor);
1092 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
1093 Property::Map propertyMap;
1094 propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR);
1095 propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE);
1096 VisualFactory factory = VisualFactory::Get();
1097 Visual::Base visual = factory.CreateVisual( propertyMap );
1098 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
1100 int state = actor.GetProperty<int>( DevelControl::Property::STATE );
1101 DALI_TEST_EQUALS( state, (int) DevelControl::NORMAL, TEST_LOCATION );
1103 actor.SetProperty( DevelControl::Property::STATE,
1104 Property::Map().Add( "state", "FOCUSED" ).Add("withTransitions", false));
1106 Visual::Base testVisual = dummyImpl.GetVisual(DummyControl::Property::TEST_VISUAL);
1107 DALI_TEST_CHECK( testVisual = visual );
1109 state = actor.GetProperty<int>( DevelControl::Property::STATE );
1110 DALI_TEST_EQUALS( state, (int) DevelControl::FOCUSED, TEST_LOCATION );
1112 actor.SetProperty( DevelControl::Property::STATE,
1113 Property::Map().Add( "state", "DISABLED" ).Add("withTransitions", false));
1115 testVisual = dummyImpl.GetVisual(DummyControl::Property::TEST_VISUAL);
1116 DALI_TEST_CHECK( testVisual = visual );
1118 state = actor.GetProperty<int>( DevelControl::Property::STATE );
1119 DALI_TEST_EQUALS( state, (int) DevelControl::DISABLED, TEST_LOCATION );
1125 int UtcDaliStyleManagerSetState04N(void)
1127 tet_infoline("Instantiate dummy control and test state transition with style without state" );
1128 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
1131 ToolkitTestApplication application;
1133 StyleChangedSignalChecker styleChangedSignalHandler;
1134 Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
1135 StyleManager styleManager = StyleManager::Get();
1137 DummyControl actor = DummyControl::New(true);
1138 actor.SetStyleName("NoStateStyle");
1139 Stage::GetCurrent().Add(actor);
1141 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
1142 Property::Map propertyMap;
1143 propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR);
1144 propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE);
1145 VisualFactory factory = VisualFactory::Get();
1146 Visual::Base visual = factory.CreateVisual( propertyMap );
1147 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
1149 int state = actor.GetProperty<int>( DevelControl::Property::STATE );
1150 DALI_TEST_EQUALS( state, (int) DevelControl::NORMAL, TEST_LOCATION );
1152 actor.SetProperty( DevelControl::Property::STATE,
1153 Property::Map().Add( "state", "FOCUSED" ).Add("withTransitions", false));
1155 Visual::Base testVisual = dummyImpl.GetVisual(DummyControl::Property::TEST_VISUAL);
1156 DALI_TEST_CHECK( testVisual = visual );
1158 state = actor.GetProperty<int>( DevelControl::Property::STATE );
1159 DALI_TEST_EQUALS( state, (int) DevelControl::FOCUSED, TEST_LOCATION );
1161 actor.SetProperty( DevelControl::Property::STATE,
1162 Property::Map().Add( "state", "DISABLED" ).Add("withTransitions", false));
1164 testVisual = dummyImpl.GetVisual(DummyControl::Property::TEST_VISUAL);
1165 DALI_TEST_CHECK( testVisual = visual );
1167 state = actor.GetProperty<int>( DevelControl::Property::STATE );
1168 DALI_TEST_EQUALS( state, (int) DevelControl::DISABLED, TEST_LOCATION );
1173 int UtcDaliStyleManagerSetSubState01(void)
1175 tet_infoline("Instantiate dummy control and test state/visual/transition capture" );
1176 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
1179 ToolkitTestApplication application;
1181 StyleChangedSignalChecker styleChangedSignalHandler;
1182 Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
1183 StyleManager styleManager = StyleManager::Get();
1185 DummyControl actor = DummyControl::New(true);
1186 actor.SetProperty(DevelControl::Property::STATE, "NORMAL");
1187 actor.SetProperty(DevelControl::Property::SUB_STATE, "SELECTED");
1188 actor.SetStyleName("ComplexControl");
1189 Stage::GetCurrent().Add(actor);
1191 Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
1193 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
1195 CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1196 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1197 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL2, Toolkit::Visual::GRADIENT, TEST_LOCATION);
1199 actor.SetProperty(DevelControl::Property::SUB_STATE, "UNSELECTED");
1201 CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1202 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1203 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL2, Toolkit::Visual::COLOR, TEST_LOCATION);
1205 actor.SetProperty(DevelControl::Property::SUB_STATE, "SELECTED");
1207 CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1208 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1209 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL2, Toolkit::Visual::GRADIENT, TEST_LOCATION);
1215 int UtcDaliStyleManagerSetSubState02(void)
1217 tet_infoline("Instantiate complex control and test state/substate change" );
1218 Test::StyleMonitor::SetThemeFileOutput( DALI_STYLE_DIR "dali-toolkit-default-theme.json",
1221 ToolkitTestApplication application;
1223 StyleChangedSignalChecker styleChangedSignalHandler;
1224 Dali::StyleMonitor styleMonitor = Dali::StyleMonitor::Get();
1225 StyleManager styleManager = StyleManager::Get();
1227 DummyControl actor = DummyControl::New(true);
1228 actor.SetProperty(DevelControl::Property::STATE, "NORMAL");
1229 actor.SetProperty(DevelControl::Property::SUB_STATE, "SELECTED");
1230 tet_infoline( "Setting state to NORMAL/SELECTED before re-styling\n");
1232 actor.SetStyleName("ComplexControl");
1233 Stage::GetCurrent().Add(actor);
1235 Integration::ResourcePointer ninePatch = CustomizeNinePatch( application, 30, 30 );
1237 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(actor.GetImplementation());
1239 CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1240 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL2, Toolkit::Visual::GRADIENT, TEST_LOCATION);
1242 actor.SetProperty(DevelControl::Property::SUB_STATE, "UNSELECTED");
1243 tet_infoline( "Changing substate to UNSELECTED - check visual changes\n");
1245 CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1246 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL2, Toolkit::Visual::COLOR, TEST_LOCATION);
1248 actor.SetProperty(DevelControl::Property::STATE, "FOCUSED");
1249 tet_infoline( "Changing state to FOCUSED - check visual changes\n");
1251 Visual::Base fgVisual1 = CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::GRADIENT, TEST_LOCATION);
1252 Visual::Base focusVisual1 = CheckVisual( dummyImpl, DummyControl::Property::FOCUS_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1254 actor.SetProperty(DevelControl::Property::SUB_STATE, "SELECTED");
1255 tet_infoline( "Changing substate to SELECTED - Expect no change\n");
1257 Visual::Base fgVisual2 = CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::GRADIENT, TEST_LOCATION);
1258 Visual::Base focusVisual2 = CheckVisual( dummyImpl, DummyControl::Property::FOCUS_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1260 DALI_TEST_CHECK( fgVisual1 == fgVisual2 );
1261 DALI_TEST_CHECK( focusVisual1 == focusVisual2 );
1263 actor.SetProperty(DevelControl::Property::STATE, "NORMAL");
1264 tet_infoline( "Changing state to NORMAL - Expect to change to NORMAL/SELECTED \n");
1266 CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1267 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL2, Toolkit::Visual::GRADIENT, TEST_LOCATION);
1269 Visual::Base focusVisual = dummyImpl.GetVisual(DummyControl::Property::FOCUS_VISUAL);
1270 DALI_TEST_CHECK( ! focusVisual );
1272 actor.SetProperty(DevelControl::Property::STATE, "DISABLED");
1273 tet_infoline( "Changing state to DISABLED - Expect to change to DISABLED/SELECTED \n");
1275 CheckVisual( dummyImpl, DummyControl::Property::FOREGROUND_VISUAL, Toolkit::Visual::COLOR, TEST_LOCATION);
1276 CheckVisual( dummyImpl, DummyControl::Property::TEST_VISUAL, Toolkit::Visual::IMAGE, TEST_LOCATION);
1278 Visual::Base testVisual = dummyImpl.GetVisual(DummyControl::Property::FOCUS_VISUAL);
1279 DALI_TEST_CHECK( ! testVisual );
1280 testVisual = dummyImpl.GetVisual(DummyControl::Property::LABEL_VISUAL);
1281 DALI_TEST_CHECK( ! testVisual );