2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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 * @file widget_version.cpp
18 * @author Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
20 * @brief Implementation file for test cases for engine internal tests
22 #include <dpl/test/test_runner.h>
23 #include <dpl/utils/widget_version.h>
25 RUNNER_TEST_GROUP_INIT(DPL_WIDGET_VERSION)
27 RUNNER_TEST(WidgetVersion_M2_O0)
29 DPL::String raw(L"1.2");
30 WidgetVersion version(raw);
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);
40 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_1)
42 DPL::String raw(L"a1.2");
43 WidgetVersion version(raw);
45 RUNNER_ASSERT(version.IsWac() == false);
46 RUNNER_ASSERT(version.Raw() == raw);
49 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_2)
51 DPL::String raw(L"1.2a");
52 WidgetVersion version(raw);
54 RUNNER_ASSERT(version.IsWac() == false);
55 RUNNER_ASSERT(version.Raw() == raw);
58 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_3)
60 DPL::String raw(L"aaa1.2bbb");
61 WidgetVersion version(raw);
63 RUNNER_ASSERT(version.IsWac() == false);
64 RUNNER_ASSERT(version.Raw() == raw);
67 RUNNER_TEST(WidgetVersion_M2_O0_nonwac_4)
69 DPL::String raw(L"1a.a2");
70 WidgetVersion version(raw);
72 RUNNER_ASSERT(version.IsWac() == false);
73 RUNNER_ASSERT(version.Raw() == raw);
76 RUNNER_TEST(WidgetVersion_M2_O0_long)
78 DPL::String raw(L"123456789012345678901234567890.98765432109876543210987654321");
79 WidgetVersion version(raw);
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);
89 RUNNER_TEST(WidgetVersion_M3_O0)
91 DPL::String raw(L"1.2.3");
92 WidgetVersion version(raw);
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);
102 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_1)
104 DPL::String raw(L"a1a.2.3");
105 WidgetVersion version(raw);
107 RUNNER_ASSERT(version.IsWac() == false);
108 RUNNER_ASSERT(version.Raw() == raw);
111 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_2)
113 DPL::String raw(L"1.b2.3");
114 WidgetVersion version(raw);
116 RUNNER_ASSERT(version.IsWac() == false);
117 RUNNER_ASSERT(version.Raw() == raw);
120 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_3)
122 DPL::String raw(L"1.2.3c");
123 WidgetVersion version(raw);
125 RUNNER_ASSERT(version.IsWac() == false);
126 RUNNER_ASSERT(version.Raw() == raw);
129 RUNNER_TEST(WidgetVersion_M3_O0_nonwac_4)
131 DPL::String raw(L"1.2.3a");
132 WidgetVersion version(raw);
134 RUNNER_ASSERT(version.IsWac() == false);
135 RUNNER_ASSERT(version.Raw() == raw);
138 RUNNER_TEST(WidgetVersion_M3_O1_1)
140 DPL::String raw(L"1.2.3 test111");
141 WidgetVersion version(raw);
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);
151 RUNNER_TEST(WidgetVersion_M3_O1_2)
153 DPL::String raw(L"1.2.3 111");
154 WidgetVersion version(raw);
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);
164 RUNNER_TEST(WidgetVersion_M3_O1_3)
166 DPL::String raw(L"1.2.3 ");
167 WidgetVersion version(raw);
169 RUNNER_ASSERT(version.IsWac() == false);
170 RUNNER_ASSERT(version.Raw() == raw);
173 RUNNER_TEST(WidgetVersion_M2_O1_1)
175 DPL::String raw(L"1.2 t");
176 WidgetVersion version(raw);
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);
186 RUNNER_TEST(WidgetVersion_Strange_0)
188 DPL::String raw(L"1");
189 WidgetVersion version(raw);
191 RUNNER_ASSERT(version.IsWac() == false);
192 RUNNER_ASSERT(version.Raw() == raw);
195 RUNNER_TEST(WidgetVersion_Strange_1)
197 DPL::String raw(L".1");
198 WidgetVersion version(raw);
200 RUNNER_ASSERT(version.IsWac() == false);
201 RUNNER_ASSERT(version.Raw() == raw);
204 RUNNER_TEST(WidgetVersion_Strange_2)
206 DPL::String raw(L"..1");
207 WidgetVersion version(raw);
209 RUNNER_ASSERT(version.IsWac() == false);
210 RUNNER_ASSERT(version.Raw() == raw);
213 RUNNER_TEST(WidgetVersion_Strange_3)
215 DPL::String raw(L"...1");
216 WidgetVersion version(raw);
218 RUNNER_ASSERT(version.IsWac() == false);
219 RUNNER_ASSERT(version.Raw() == raw);
222 RUNNER_TEST(WidgetVersion_Strange_4)
224 DPL::String raw(L"qwerty");
225 WidgetVersion version(raw);
227 RUNNER_ASSERT(version.IsWac() == false);
228 RUNNER_ASSERT(version.Raw() == raw);
231 RUNNER_TEST(WidgetVersion_Strange_5)
233 DPL::String raw(L"!@#$%^&*()_+ ^&%^*&%$^*&%*()& JHKJLHKJLH 685685687");
234 WidgetVersion version(raw);
236 RUNNER_ASSERT(version.IsWac() == false);
237 RUNNER_ASSERT(version.Raw() == raw);
240 RUNNER_TEST(WidgetVersion_Compare_0)
242 RUNNER_ASSERT(WidgetVersion(L"1.1") < WidgetVersion(L"1.2"));
245 RUNNER_TEST(WidgetVersion_Compare_1)
247 RUNNER_ASSERT(WidgetVersion(L"01.001") < WidgetVersion(L"0001.002"));
250 RUNNER_TEST(WidgetVersion_Compare_2)
252 RUNNER_ASSERT(WidgetVersion(L"0.1") == WidgetVersion(L"00.1"));
255 RUNNER_TEST(WidgetVersion_Compare_3)
257 RUNNER_ASSERT(WidgetVersion(L"1.00000000000000") >= WidgetVersion(L"1.0 test"));
260 RUNNER_TEST(WidgetVersion_Compare_4)
262 RUNNER_ASSERT(WidgetVersion(L"19647963733338932479072098437089778943732432.00000000000000004324324324324321") > WidgetVersion(L"4324324324324324324321.000432"));
265 RUNNER_TEST(WidgetVersion_Compare_5)
267 RUNNER_ASSERT(WidgetVersion(L"12345.1") == WidgetVersion(L"12345.1"));
270 RUNNER_TEST(WidgetVersion_Compare_6)
272 RUNNER_ASSERT(WidgetVersion(L"1.1") != WidgetVersion(L"1.11"));
275 RUNNER_TEST(WidgetVersion_Compare_7)
277 RUNNER_ASSERT(WidgetVersion(L"000123000.0 notatest") == WidgetVersion(L"00123000.0 testtesttest"));