Set the image type of encoded image buffer
[platform/core/uifw/dali-adaptor.git] / automated-tests / src / dali-adaptor / utc-Dali-EncodedImageBuffer.cpp
1 /*
2  * Copyright (c) 2022 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-test-suite-utils.h>
19 #include <dali/dali.h>
20 #include <dali/public-api/adaptor-framework/encoded-image-buffer.h>
21 #include <stdlib.h>
22 #include <unistd.h>
23
24 using namespace Dali;
25
26 namespace
27 {
28 EncodedImageBuffer::RawBufferType tinybuffer()
29 {
30   EncodedImageBuffer::RawBufferType buffer;
31   buffer.PushBack(0x11);
32   buffer.PushBack(0x22);
33   buffer.PushBack(0x33);
34   return buffer;
35 }
36
37 } // anonymous namespace
38
39 void dali_encoded_image_buffer_startup(void)
40 {
41   test_return_value = TET_UNDEF;
42 }
43
44 void dali_encoded_image_buffer_cleanup(void)
45 {
46   test_return_value = TET_PASS;
47 }
48
49 int UtcDaliEncodedImageBufferNew01(void)
50 {
51   // invoke default handle constructor
52   EncodedImageBuffer buffer;
53
54   DALI_TEST_CHECK(!buffer);
55
56   // initialise handle
57   buffer = EncodedImageBuffer::New(tinybuffer());
58
59   DALI_TEST_CHECK(buffer);
60   END_TEST;
61 }
62
63 int UtcDaliEncodedImageBufferNew02(void)
64 {
65   // invoke default handle constructor
66   EncodedImageBuffer buffer;
67
68   DALI_TEST_CHECK(!buffer);
69
70   // initialise handle
71   buffer = EncodedImageBuffer::New(tinybuffer(), Dali::EncodedImageBuffer::ImageType::VECTOR_IMAGE);
72
73   DALI_TEST_CHECK(buffer);
74   END_TEST;
75 }
76
77 int UtcDaliEncodedImageBufferCopyConstructor(void)
78 {
79   EncodedImageBuffer buffer = EncodedImageBuffer::New(tinybuffer());
80   EncodedImageBuffer bufferCopy(buffer);
81
82   DALI_TEST_EQUALS((bool)bufferCopy, true, TEST_LOCATION);
83   END_TEST;
84 }
85
86 int UtcDaliEncodedImageBufferAssignmentOperator(void)
87 {
88   EncodedImageBuffer buffer = EncodedImageBuffer::New(tinybuffer());
89
90   EncodedImageBuffer buffer2;
91   DALI_TEST_EQUALS((bool)buffer2, false, TEST_LOCATION);
92
93   buffer2 = buffer;
94   DALI_TEST_EQUALS((bool)buffer2, true, TEST_LOCATION);
95
96   END_TEST;
97 }
98
99 int UtcDaliEncodedImageBufferMoveConstructor(void)
100 {
101   EncodedImageBuffer buffer      = EncodedImageBuffer::New(tinybuffer());
102   EncodedImageBuffer bufferMoved = std::move(buffer);
103
104   DALI_TEST_EQUALS((bool)buffer, false, TEST_LOCATION);
105   DALI_TEST_EQUALS((bool)bufferMoved, true, TEST_LOCATION);
106   END_TEST;
107 }
108
109 int UtcDaliEncodedImageBufferMoveAssignmentOperator(void)
110 {
111   EncodedImageBuffer buffer = EncodedImageBuffer::New(tinybuffer());
112
113   EncodedImageBuffer buffer2;
114   DALI_TEST_EQUALS((bool)buffer, true, TEST_LOCATION);
115   DALI_TEST_EQUALS((bool)buffer2, false, TEST_LOCATION);
116
117   buffer2 = std::move(buffer);
118   DALI_TEST_EQUALS((bool)buffer, false, TEST_LOCATION);
119   DALI_TEST_EQUALS((bool)buffer2, true, TEST_LOCATION);
120
121   END_TEST;
122 }
123
124 int UtcDaliEncodedImageBufferGetRawBuffer(void)
125 {
126   EncodedImageBuffer::RawBufferType originBuffer = tinybuffer();
127
128   EncodedImageBuffer buffer = EncodedImageBuffer::New(originBuffer);
129
130   EncodedImageBuffer::RawBufferType getBuffer = buffer.GetRawBuffer();
131
132   // compare value between originBuffer and getBuffer
133   DALI_TEST_EQUALS(originBuffer.Count(), getBuffer.Count(), TEST_LOCATION);
134
135   EncodedImageBuffer::RawBufferType::Iterator iter = originBuffer.Begin();
136   EncodedImageBuffer::RawBufferType::Iterator jter = getBuffer.Begin();
137   for(; iter != originBuffer.End(); ++iter, ++jter)
138   {
139     DALI_TEST_EQUALS(*iter, *jter, TEST_LOCATION);
140   }
141
142   END_TEST;
143 }
144
145 int UtcDaliEncodedImageBufferGetHash(void)
146 {
147   EncodedImageBuffer buffer1 = EncodedImageBuffer::New(tinybuffer());
148   EncodedImageBuffer buffer2 = EncodedImageBuffer::New(tinybuffer());
149   EncodedImageBuffer buffer3 = EncodedImageBuffer::New(EncodedImageBuffer::RawBufferType()); //< EmptyBuffer
150
151   tet_infoline("Test different encoded buffer with same data has same hash value.");
152   DALI_TEST_CHECK(buffer1 != buffer2);
153   DALI_TEST_CHECK(buffer1.GetHash() == buffer2.GetHash());
154
155   tet_infoline("Test hash with empty buffer.");
156   DALI_TEST_CHECK(buffer1.GetHash() != buffer3.GetHash());
157   DALI_TEST_CHECK(buffer2.GetHash() != buffer3.GetHash());
158
159   END_TEST;
160 }
161
162
163 int UtcDaliEncodedImageBufferSetGetType(void)
164 {
165   EncodedImageBuffer buffer1 = EncodedImageBuffer::New(tinybuffer());
166   EncodedImageBuffer buffer2 = buffer1; ///< Copy handle
167
168   DALI_TEST_CHECK(buffer1);
169   DALI_TEST_CHECK(buffer2);
170   DALI_TEST_CHECK(buffer1 == buffer2);
171   DALI_TEST_CHECK(buffer1.GetHash() == buffer2.GetHash());
172
173   DALI_TEST_EQUALS(buffer1.GetImageType(), Dali::EncodedImageBuffer::ImageType::DEFAULT, TEST_LOCATION);
174   DALI_TEST_EQUALS(buffer2.GetImageType(), Dali::EncodedImageBuffer::ImageType::DEFAULT, TEST_LOCATION);
175
176   buffer1.SetImageType(Dali::EncodedImageBuffer::ImageType::VECTOR_IMAGE);
177
178   DALI_TEST_EQUALS(buffer1.GetImageType(), Dali::EncodedImageBuffer::ImageType::VECTOR_IMAGE, TEST_LOCATION);
179   DALI_TEST_EQUALS(buffer2.GetImageType(), Dali::EncodedImageBuffer::ImageType::VECTOR_IMAGE, TEST_LOCATION);
180
181   buffer2.SetImageType(Dali::EncodedImageBuffer::ImageType::ANIMATED_VECTOR_IMAGE);
182
183   DALI_TEST_EQUALS(buffer1.GetImageType(), Dali::EncodedImageBuffer::ImageType::ANIMATED_VECTOR_IMAGE, TEST_LOCATION);
184   DALI_TEST_EQUALS(buffer2.GetImageType(), Dali::EncodedImageBuffer::ImageType::ANIMATED_VECTOR_IMAGE, TEST_LOCATION);
185
186   END_TEST;
187 }