2 * Copyright (c) 2018 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.
22 #include <dali-toolkit-test-suite-utils.h>
23 #include <dali-toolkit/dali-toolkit.h>
24 #include <toolkit-text-utils.h>
25 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
26 #include <dali-toolkit/internal/visuals/visual-factory-cache.h>
27 #include <dali-toolkit/internal/visuals/color/color-visual.h>
28 #include <dummy-visual.h>
29 #include <../dali-toolkit/dali-toolkit-test-utils/dummy-control.h>
32 using namespace Toolkit;
34 int UtcDaliVisualAction(void)
36 ToolkitTestApplication application;
37 tet_infoline( "Register an ImageVisual and and perform an Action on Visual directly" );
38 Vector2 controlSize( 20.f, 30.f );
41 Property::Map settings;
42 Toolkit::Internal::DummyVisualPtr dummyVisualPtr = Toolkit::Internal::DummyVisual::New( settings );
44 DummyControl dummyControl = DummyControl::New( true );
45 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(dummyControl.GetImplementation());
47 tet_infoline( "Register visual and stage control" );
49 Toolkit::Visual::Base visualBaseHandle = Toolkit::Visual::Base( dummyVisualPtr.Get() );
50 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visualBaseHandle );
51 dummyControl.SetSize(200.f, 200.f);
52 Stage::GetCurrent().Add( dummyControl );
54 application.SendNotification();
57 tet_infoline( "Check action counter is 0 before DoAction" );
58 DALI_TEST_EQUALS( dummyVisualPtr->GetActionCounter() , 0, TEST_LOCATION );
60 tet_infoline( "Perform TEST_ACTION action on Visual. Should increase the action counter" );
62 Property::Map attributes;
63 Toolkit::Internal::Visual::Base& internalVisualBase = GetImplementation( visualBaseHandle );
64 internalVisualBase.DoAction( Dali::Toolkit::Internal::DummyVisual::TEST_ACTION, attributes );
65 application.SendNotification();
66 DALI_TEST_EQUALS( dummyVisualPtr->GetActionCounter() , 1, TEST_LOCATION );
71 int UtcDaliVisualActionNotImplemented(void)
73 ToolkitTestApplication application;
74 tet_infoline( "Register an ImageVisual and and perform an Action on a Visual which does not support any Actions" );
75 Vector2 controlSize( 20.f, 30.f );
78 Property::Map settings;
79 Toolkit::Internal::DummyVisualPtr dummyVisualPtr = Toolkit::Internal::DummyVisual::New( settings );
81 DummyControl dummyControl = DummyControl::New( true );
82 Impl::DummyControl& dummyImpl = static_cast<Impl::DummyControl&>(dummyControl.GetImplementation());
84 tet_infoline( "Register visual and stage control" );
86 VisualFactory factory = VisualFactory::Get();
87 Property::Map propertyMap;
88 propertyMap.Insert(Visual::Property::TYPE, Visual::COLOR);
89 propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE);
90 Visual::Base visual = factory.CreateVisual( propertyMap );
92 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual );
93 dummyControl.SetSize(200.f, 200.f);
94 Stage::GetCurrent().Add( dummyControl );
96 application.SendNotification();
99 tet_infoline( "Check action counter is 0 before DoAction" );
100 DALI_TEST_EQUALS( dummyVisualPtr->GetActionCounter() , 0, TEST_LOCATION );
102 tet_infoline( "Perform TEST_ACTION action on Color Visual which does not support it.. Should not increment the action counter" );
103 Property::Map attributes;
104 GetImplementation( visual ).DoAction( Dali::Toolkit::Internal::DummyVisual::TEST_ACTION, attributes );
105 application.SendNotification();
106 DALI_TEST_EQUALS( dummyVisualPtr->GetActionCounter() , 0, TEST_LOCATION );
111 int UtcDaliVisualSetProperties(void)
113 ToolkitTestApplication application;
114 tet_infoline( "Register a visual and SetProperties" );
116 Toolkit::Internal::VisualFactoryCache* factoryCache = new Toolkit::Internal::VisualFactoryCache(false);
118 //Created ColorVisual
119 Property::Map propertyMap1;
120 propertyMap1.Insert(Visual::Property::TYPE, Visual::COLOR);
121 propertyMap1.Insert(ColorVisual::Property::MIX_COLOR, Color::RED);
122 Toolkit::Internal::ColorVisualPtr colorVisualPtr = Toolkit::Internal::ColorVisual::New( *factoryCache, propertyMap1 );
124 DummyControl dummyControl = DummyControl::New( true );
125 Impl::DummyControl& dummyImpl = static_cast< Impl::DummyControl& >( dummyControl.GetImplementation() );
127 Toolkit::Visual::Base visualBaseHandle = Toolkit::Visual::Base( colorVisualPtr.Get() );
128 dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visualBaseHandle );
129 dummyControl.SetSize( 200.f, 200.f );
130 Stage::GetCurrent().Add( dummyControl );
132 application.SendNotification();
133 application.Render();
135 Property::Map propertyMap;
136 propertyMap.Insert( Visual::Property::MIX_COLOR, Color::BLUE );
138 colorVisualPtr->SetProperties( propertyMap );
139 application.SendNotification();
140 application.Render();
142 Property::Map resultMap;
143 visualBaseHandle.CreatePropertyMap( resultMap );
145 Property::Value* colorValue = resultMap.Find( Visual::Property::MIX_COLOR, Property::VECTOR4 );
146 DALI_TEST_CHECK( colorValue );
147 DALI_TEST_CHECK( colorValue->Get< Vector4 >() == Color::BLUE );