da30c62380c27689239fe326b86c795896990489
[platform/core/uifw/dali-core.git] / automated-tests / src / dali-devel / utc-Dali-Actor.cpp
1 /*
2  * Copyright (c) 2015 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 #include <dali/public-api/dali-core.h>
19 #include <dali-test-suite-utils.h>
20 #include <mesh-builder.h>
21
22 //& set: DaliActor
23
24 using std::string;
25 using namespace Dali;
26
27
28 int UtcDaliActorAddRendererP(void)
29 {
30   tet_infoline("Testing Actor::AddRenderer");
31   TestApplication application;
32
33   Actor actor = Actor::New();
34
35   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
36
37   Geometry geometry = Geometry::QUAD();
38   Shader shader = CreateShader();
39   Renderer renderer = Renderer::New(geometry, shader);
40
41   actor.AddRenderer( renderer );
42   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
43   DALI_TEST_EQUALS( actor.GetRendererAt(0), renderer, TEST_LOCATION );
44
45   END_TEST;
46 }
47
48 int UtcDaliActorAddRendererN(void)
49 {
50   tet_infoline("Testing Actor::AddRenderer");
51   TestApplication application;
52
53   Actor actor = Actor::New();
54   Renderer renderer;
55
56   // try illegal Add
57   try
58   {
59     actor.AddRenderer( renderer );
60     tet_printf("Assertion test failed - no Exception\n" );
61     tet_result(TET_FAIL);
62   }
63   catch(Dali::DaliException& e)
64   {
65     DALI_TEST_PRINT_ASSERT( e );
66     DALI_TEST_ASSERT(e, "Renderer handle is empty", TEST_LOCATION);
67     DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
68   }
69   catch(...)
70   {
71     tet_printf("Assertion test failed - wrong Exception\n" );
72     tet_result(TET_FAIL);
73   }
74
75   END_TEST;
76 }
77
78 int UtcDaliActorAddRendererOnStage(void)
79 {
80   tet_infoline("Testing Actor::AddRenderer");
81   TestApplication application;
82
83   Actor actor = Actor::New();
84   Stage::GetCurrent().Add(actor);
85
86   application.SendNotification();
87   application.Render(0);
88
89   Geometry geometry = Geometry::QUAD();
90   Shader shader = CreateShader();
91   Renderer renderer = Renderer::New(geometry, shader);
92
93   application.SendNotification();
94   application.Render(0);
95
96   try
97   {
98     actor.AddRenderer( renderer );
99     tet_result(TET_PASS);
100   }
101   catch(...)
102   {
103     tet_result(TET_FAIL);
104   }
105
106   END_TEST;
107 }
108
109 int UtcDaliActorRemoveRendererP1(void)
110 {
111   tet_infoline("Testing Actor::RemoveRenderer");
112   TestApplication application;
113
114   Actor actor = Actor::New();
115
116   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
117
118   Geometry geometry = Geometry::QUAD();
119   Shader shader = CreateShader();
120   Renderer renderer = Renderer::New(geometry, shader);
121
122   actor.AddRenderer( renderer );
123   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
124   DALI_TEST_EQUALS( actor.GetRendererAt(0), renderer, TEST_LOCATION );
125
126   actor.RemoveRenderer(renderer);
127   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
128
129
130   END_TEST;
131 }
132
133 int UtcDaliActorRemoveRendererP2(void)
134 {
135   tet_infoline("Testing Actor::RemoveRenderer");
136   TestApplication application;
137
138   Actor actor = Actor::New();
139
140   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
141
142   Geometry geometry = Geometry::QUAD();
143   Shader shader = CreateShader();
144   Renderer renderer = Renderer::New(geometry, shader);
145
146   actor.AddRenderer( renderer );
147   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
148   DALI_TEST_EQUALS( actor.GetRendererAt(0), renderer, TEST_LOCATION );
149
150   actor.RemoveRenderer(0);
151   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
152
153
154   END_TEST;
155 }
156
157
158 int UtcDaliActorRemoveRendererN(void)
159 {
160   tet_infoline("Testing Actor::RemoveRenderer");
161   TestApplication application;
162
163   Actor actor = Actor::New();
164
165   DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION );
166
167   Geometry geometry = Geometry::QUAD();
168   Shader shader = CreateShader();
169   Renderer renderer = Renderer::New(geometry, shader);
170
171   actor.AddRenderer( renderer );
172   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
173   DALI_TEST_EQUALS( actor.GetRendererAt(0), renderer, TEST_LOCATION );
174
175   actor.RemoveRenderer(10);
176   DALI_TEST_EQUALS( actor.GetRendererAt(0), renderer, TEST_LOCATION );
177   DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION );
178
179   END_TEST;
180 }