Tizen 2.0 Release
[framework/web/wrt-commons.git] / tests / dpl / utils / widget_version.cpp
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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  * @file    widget_version.cpp
18  * @author  Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
19  * @version 1.0
20  * @brief   Implementation file for test cases for engine internal tests
21  */
22 #include <dpl/test/test_runner.h>
23 #include <dpl/utils/widget_version.h>
24
25 RUNNER_TEST_GROUP_INIT(DPL_WIDGET_VERSION)
26
27 RUNNER_TEST(WidgetVersion_M2_O0)
28 {
29     DPL::String raw(L"1.2");
30     WidgetVersion version(raw);
31
32     RUNNER_ASSERT(version.IsWac() == true);
33     RUNNER_ASSERT(version.Major() == DPL::String(L"1"));
34     RUNNER_ASSERT(version.Minor() == DPL::String(L"2"));
35     RUNNER_ASSERT(version.Micro() == DPL::Optional<DPL::String>());
36     RUNNER_ASSERT(version.Optional() == DPL::Optional<DPL::String>());
37     RUNNER_ASSERT(version.Raw() == raw);
38 }
39
40 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_1)
41 {
42     DPL::String raw(L"a1.2");
43     WidgetVersion version(raw);
44
45     RUNNER_ASSERT(version.IsWac() == false);
46     RUNNER_ASSERT(version.Raw() == raw);
47 }
48
49 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_2)
50 {
51     DPL::String raw(L"1.2a");
52     WidgetVersion version(raw);
53
54     RUNNER_ASSERT(version.IsWac() == false);
55     RUNNER_ASSERT(version.Raw() == raw);
56 }
57
58 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_3)
59 {
60     DPL::String raw(L"aaa1.2bbb");
61     WidgetVersion version(raw);
62
63     RUNNER_ASSERT(version.IsWac() == false);
64     RUNNER_ASSERT(version.Raw() == raw);
65 }
66
67 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_4)
68 {
69     DPL::String raw(L"1a.a2");
70     WidgetVersion version(raw);
71
72     RUNNER_ASSERT(version.IsWac() == false);
73     RUNNER_ASSERT(version.Raw() == raw);
74 }
75
76 RUNNER_TEST(WidgetVersion_M2_O0_long)
77 {
78     DPL::String raw(L"123456789012345678901234567890.98765432109876543210987654321");
79     WidgetVersion version(raw);
80
81     RUNNER_ASSERT(version.IsWac() == true);
82     RUNNER_ASSERT(version.Major() == DPL::String(L"123456789012345678901234567890"));
83     RUNNER_ASSERT(version.Minor() == DPL::String(L"98765432109876543210987654321"));
84     RUNNER_ASSERT(version.Micro() == DPL::Optional<DPL::String>());
85     RUNNER_ASSERT(version.Optional() == DPL::Optional<DPL::String>());
86     RUNNER_ASSERT(version.Raw() == raw);
87 }
88
89 RUNNER_TEST(WidgetVersion_M3_O0)
90 {
91     DPL::String raw(L"1.2.3");
92     WidgetVersion version(raw);
93
94     RUNNER_ASSERT(version.IsWac() == true);
95     RUNNER_ASSERT(version.Major() == DPL::String(L"1"));
96     RUNNER_ASSERT(version.Minor() == DPL::String(L"2"));
97     RUNNER_ASSERT(version.Micro() == DPL::Optional<DPL::String>(L"3"));
98     RUNNER_ASSERT(version.Optional() == DPL::Optional<DPL::String>());
99     RUNNER_ASSERT(version.Raw() == raw);
100 }
101
102 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_1)
103 {
104     DPL::String raw(L"a1a.2.3");
105     WidgetVersion version(raw);
106
107     RUNNER_ASSERT(version.IsWac() == false);
108     RUNNER_ASSERT(version.Raw() == raw);
109 }
110
111 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_2)
112 {
113     DPL::String raw(L"1.b2.3");
114     WidgetVersion version(raw);
115
116     RUNNER_ASSERT(version.IsWac() == false);
117     RUNNER_ASSERT(version.Raw() == raw);
118 }
119
120 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_3)
121 {
122     DPL::String raw(L"1.2.3c");
123     WidgetVersion version(raw);
124
125     RUNNER_ASSERT(version.IsWac() == false);
126     RUNNER_ASSERT(version.Raw() == raw);
127 }
128
129 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_4)
130 {
131     DPL::String raw(L"1.2.3a");
132     WidgetVersion version(raw);
133
134     RUNNER_ASSERT(version.IsWac() == false);
135     RUNNER_ASSERT(version.Raw() == raw);
136 }
137
138 RUNNER_TEST(WidgetVersion_M3_O1_1)
139 {
140     DPL::String raw(L"1.2.3 test111");
141     WidgetVersion version(raw);
142
143     RUNNER_ASSERT(version.IsWac() == true);
144     RUNNER_ASSERT(version.Major() == DPL::String(L"1"));
145     RUNNER_ASSERT(version.Minor() == DPL::String(L"2"));
146     RUNNER_ASSERT(version.Micro() == DPL::Optional<DPL::String>(L"3"));
147     RUNNER_ASSERT(version.Optional() == DPL::Optional<DPL::String>(L"test111"));
148     RUNNER_ASSERT(version.Raw() == raw);
149 }
150
151 RUNNER_TEST(WidgetVersion_M3_O1_2)
152 {
153     DPL::String raw(L"1.2.3 111");
154     WidgetVersion version(raw);
155
156     RUNNER_ASSERT(version.IsWac() == true);
157     RUNNER_ASSERT(version.Major() == DPL::String(L"1"));
158     RUNNER_ASSERT(version.Minor() == DPL::String(L"2"));
159     RUNNER_ASSERT(version.Micro() == DPL::Optional<DPL::String>(L"3"));
160     RUNNER_ASSERT(version.Optional() == DPL::Optional<DPL::String>(L"111"));
161     RUNNER_ASSERT(version.Raw() == raw);
162 }
163
164 RUNNER_TEST(WidgetVersion_M3_O1_3)
165 {
166     DPL::String raw(L"1.2.3 ");
167     WidgetVersion version(raw);
168
169     RUNNER_ASSERT(version.IsWac() == false);
170     RUNNER_ASSERT(version.Raw() == raw);
171 }
172
173 RUNNER_TEST(WidgetVersion_M2_O1_1)
174 {
175     DPL::String raw(L"1.2 t");
176     WidgetVersion version(raw);
177
178     RUNNER_ASSERT(version.IsWac() == true);
179     RUNNER_ASSERT(version.Major() == DPL::String(L"1"));
180     RUNNER_ASSERT(version.Minor() == DPL::String(L"2"));
181     RUNNER_ASSERT(version.Micro() == DPL::Optional<DPL::String>());
182     RUNNER_ASSERT(version.Optional() == DPL::Optional<DPL::String>(L"t"));
183     RUNNER_ASSERT(version.Raw() == raw);
184 }
185
186 RUNNER_TEST(WidgetVersion_Strange_0)
187 {
188     DPL::String raw(L"1");
189     WidgetVersion version(raw);
190
191     RUNNER_ASSERT(version.IsWac() == false);
192     RUNNER_ASSERT(version.Raw() == raw);
193 }
194
195 RUNNER_TEST(WidgetVersion_Strange_1)
196 {
197     DPL::String raw(L".1");
198     WidgetVersion version(raw);
199
200     RUNNER_ASSERT(version.IsWac() == false);
201     RUNNER_ASSERT(version.Raw() == raw);
202 }
203
204 RUNNER_TEST(WidgetVersion_Strange_2)
205 {
206     DPL::String raw(L"..1");
207     WidgetVersion version(raw);
208
209     RUNNER_ASSERT(version.IsWac() == false);
210     RUNNER_ASSERT(version.Raw() == raw);
211 }
212
213 RUNNER_TEST(WidgetVersion_Strange_3)
214 {
215     DPL::String raw(L"...1");
216     WidgetVersion version(raw);
217
218     RUNNER_ASSERT(version.IsWac() == false);
219     RUNNER_ASSERT(version.Raw() == raw);
220 }
221
222 RUNNER_TEST(WidgetVersion_Strange_4)
223 {
224     DPL::String raw(L"qwerty");
225     WidgetVersion version(raw);
226
227     RUNNER_ASSERT(version.IsWac() == false);
228     RUNNER_ASSERT(version.Raw() == raw);
229 }
230
231 RUNNER_TEST(WidgetVersion_Strange_5)
232 {
233     DPL::String raw(L"!@#$%^&*()_+   ^&%^*&%$^*&%*()&   JHKJLHKJLH   685685687");
234     WidgetVersion version(raw);
235
236     RUNNER_ASSERT(version.IsWac() == false);
237     RUNNER_ASSERT(version.Raw() == raw);
238 }
239
240 RUNNER_TEST(WidgetVersion_Compare_0)
241 {
242     RUNNER_ASSERT(WidgetVersion(L"1.1") < WidgetVersion(L"1.2"));
243 }
244
245 RUNNER_TEST(WidgetVersion_Compare_1)
246 {
247     RUNNER_ASSERT(WidgetVersion(L"01.001") < WidgetVersion(L"0001.002"));
248 }
249
250 RUNNER_TEST(WidgetVersion_Compare_2)
251 {
252     RUNNER_ASSERT(WidgetVersion(L"0.1") == WidgetVersion(L"00.1"));
253 }
254
255 RUNNER_TEST(WidgetVersion_Compare_3)
256 {
257     RUNNER_ASSERT(WidgetVersion(L"1.00000000000000") >= WidgetVersion(L"1.0 test"));
258 }
259
260 RUNNER_TEST(WidgetVersion_Compare_4)
261 {
262     RUNNER_ASSERT(WidgetVersion(L"19647963733338932479072098437089778943732432.00000000000000004324324324324321") > WidgetVersion(L"4324324324324324324321.000432"));
263 }
264
265 RUNNER_TEST(WidgetVersion_Compare_5)
266 {
267     RUNNER_ASSERT(WidgetVersion(L"12345.1") == WidgetVersion(L"12345.1"));
268 }
269
270 RUNNER_TEST(WidgetVersion_Compare_6)
271 {
272     RUNNER_ASSERT(WidgetVersion(L"1.1") != WidgetVersion(L"1.11"));
273 }
274
275 RUNNER_TEST(WidgetVersion_Compare_7)
276 {
277     RUNNER_ASSERT(WidgetVersion(L"000123000.0 notatest") == WidgetVersion(L"00123000.0 testtesttest"));
278 }