tizen 2.4 release
[framework/web/wrt-commons.git] / tests / files_localization / test_suite01.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  * This file contains the declaration of widget dao class.
18  *
19  * @file    test_suite01.cpp
20  * @author  Krzysztof Jackiewicz (k.jackiewicz@samsung.com)
21  * @version 1.0
22  * @brief
23  */
24
25 #include <dpl/test/test_runner.h>
26 #include <dpl/static_block.h>
27 #include <dpl/wrt-dao-ro/widget_dao_read_only.h>
28 #include <dpl/localization/w3c_file_localization.h>
29 #include <dpl/optional_typedefs.h>
30 #include <LanguageTagsProvider.h>
31
32 namespace {
33
34 STATIC_BLOCK
35 {
36     WrtDB::LanguageTagList tags;
37     tags.push_back(L"pl-pl");
38     tags.push_back(L"en-en");
39     tags.push_back(L"pl-en");
40     LanguageTagsProviderSingleton::Instance().setLanguageTags(tags);
41 }
42
43 static const DPL::String widget1Path =
44     L"/opt/share/widget/tests/localization/widget1/";
45 static const DPL::String widget2Path =
46     L"/opt/share/widget/tests/localization/widget2/";
47
48
49 const std::string appId1("tizenid201");
50 const std::string appId2("tizenid202");
51
52 } // anonymous namespace
53
54 RUNNER_TEST(test01_getFilePathInWidgetPackageFromUrl){
55     WrtDB::TizenAppId name = L"tizenid201"; //no difference if it is valid or invalid appId/pkgId, we fill database which has no intergrity constrainst
56     WrtDB::WidgetDAOReadOnly dao(name);
57
58     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
59             name,
60             DPL::String(L"widget://one"));
61
62     RUNNER_ASSERT_MSG(!!result, "No result");
63     RUNNER_ASSERT(
64         *result ==
65         L"/opt/share/widget/tests/localization/widget1/res/wgt/locales/pl-en/one");
66 }
67
68 RUNNER_TEST(test02_getFilePathInWidgetPackageFromUrl){
69     WrtDB::TizenAppId name = L"tizenid202";
70     WrtDB::WidgetDAOReadOnly dao(name);
71
72     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
73             name,
74             DPL::String(L"widget://one"));
75
76     RUNNER_ASSERT_MSG(!!result, "No result");
77     RUNNER_ASSERT(
78         *result ==
79         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/pl-en/one");
80 }
81
82 RUNNER_TEST(test03_getFilePathInWidgetPackageFromUrl){
83     WrtDB::TizenAppId name = L"tizenid202";
84     WrtDB::WidgetDAOReadOnly dao(name);
85
86     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
87             name,
88             DPL::String(L"widget://two.html"));
89
90     RUNNER_ASSERT_MSG(!!result, "No result");
91     RUNNER_ASSERT(
92         *result ==
93         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
94 }
95
96 RUNNER_TEST(test04_getFilePathInWidgetPackageFromUrl)
97 {
98     WrtDB::TizenAppId name = L"tizenid202";
99
100     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
101             name,
102             DPL::String(L"widget://two.html?a=1#b"));
103
104     RUNNER_ASSERT_MSG(!!result, "No result");
105     RUNNER_ASSERT(
106         *result ==
107         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html?a=1#b");
108 }
109
110 RUNNER_TEST(test05_getFilePathInWidgetPackageFromUrl)
111 {
112     WrtDB::TizenAppId name = L"tizenid202";
113
114     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
115             name,
116             DPL::String(L"widget://two.html#a?b"));
117
118     RUNNER_ASSERT_MSG(!!result, "No result");
119     RUNNER_ASSERT(
120         *result ==
121         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html#a?b");
122 }
123
124 RUNNER_TEST(test06_getFilePathInWidgetPackageFromUrl)
125 {
126     WrtDB::TizenAppId name = L"tizenid202";
127
128     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
129             name,
130             DPL::String(L"file://two.html"));
131
132     RUNNER_ASSERT_MSG(!!result, "No result");
133     RUNNER_ASSERT(
134         *result ==
135         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
136 }
137
138 RUNNER_TEST(test07_getFilePathInWidgetPackageFromUrl)
139 {
140     WrtDB::TizenAppId name = L"tizenid202";
141
142     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
143             name,
144             DPL::String(L"file:///opt/share/widget/tests/localization/widget2/res/wgt/two.html"));
145
146     RUNNER_ASSERT_MSG(!!result, "No result");
147     RUNNER_ASSERT(
148         *result ==
149         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
150 }
151
152 RUNNER_TEST(test08_getFilePathInWidgetPackageFromUrl)
153 {
154     WrtDB::TizenAppId name = L"tizenid202";
155
156     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
157             name,
158             DPL::String(L"file:///opt/share/widget/tests/localization/widget2/res/wgt/locales/pl-en/two.html"));
159
160     RUNNER_ASSERT_MSG(!!result, "No result");
161     RUNNER_ASSERT(
162         *result ==
163         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
164 }
165
166 RUNNER_TEST(test09_getFilePathInWidgetPackageFromUrl)
167 {
168     WrtDB::TizenAppId name = L"tizenid202";
169
170     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
171             name,
172             DPL::String(L"app://two.html"));
173
174     RUNNER_ASSERT(!result);
175 }
176
177 RUNNER_TEST(test10_getFilePathInWidgetPackageFromUrl)
178 {
179     WrtDB::TizenAppId name = L"tizenid202";
180
181     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
182             name,
183             DPL::String(L"app://tizenid202/two.html"));
184
185     RUNNER_ASSERT_MSG(!!result, "No result");
186     RUNNER_ASSERT(
187         *result ==
188         L"/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
189 }
190
191 RUNNER_TEST(test11_getFilePathInWidgetPackageFromUrl)
192 {
193     WrtDB::TizenAppId name = L"tizenid202";
194
195     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
196             name,
197             DPL::String(L"dummy"));
198
199     RUNNER_ASSERT(!result);
200 }
201
202 RUNNER_TEST(test12_getFilePathInWidgetPackageFromUrl)
203 {
204     WrtDB::TizenAppId name = L"tizenid202";
205
206     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(
207             name,
208             DPL::String(L"app://tizenid202/notExisingFIle"));
209
210     RUNNER_ASSERT(!result);
211 }
212
213 RUNNER_TEST(test13_getFilePathInWidgetPackageFromUrl2)
214 {
215     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId1, "widget://one");
216
217     RUNNER_ASSERT_MSG(!result.empty(), "No result");
218     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget1/res/wgt/locales/pl-en/one");
219 }
220
221 RUNNER_TEST(test14_getFilePathInWidgetPackageFromUrl2)
222 {
223     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "widget://one");
224
225     RUNNER_ASSERT_MSG(!result.empty(), "No result");
226     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/pl-en/one");
227 }
228
229 RUNNER_TEST(test15_getFilePathInWidgetPackageFromUrl2)
230 {
231     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "widget://two.html");
232
233     RUNNER_ASSERT_MSG(!result.empty(), "No result");
234     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
235 }
236
237 RUNNER_TEST(test16_getFilePathInWidgetPackageFromUrl2)
238 {
239     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "widget://two.html?a=1#b");
240
241     RUNNER_ASSERT_MSG(!result.empty(), "No result");
242     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html?a=1#b");
243 }
244
245 RUNNER_TEST(test17_getFilePathInWidgetPackageFromUrl2)
246 {
247     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "widget://two.html#a?b");
248
249     RUNNER_ASSERT_MSG(!result.empty(), "No result");
250     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html#a?b");
251 }
252
253 RUNNER_TEST(test18_getFilePathInWidgetPackageFromUrl2)
254 {
255     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "file://two.html");
256
257     RUNNER_ASSERT_MSG(!result.empty(), "No result");
258     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
259 }
260
261 RUNNER_TEST(test19_getFilePathInWidgetPackageFromUrl2)
262 {
263     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2,
264             "file:///opt/share/widget/tests/localization/widget2/res/wgt/two.html");
265
266     RUNNER_ASSERT_MSG(!result.empty(), "No result");
267     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
268 }
269
270 RUNNER_TEST(test20_getFilePathInWidgetPackageFromUrl2)
271 {
272     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2,
273             "file:///opt/share/widget/tests/localization/widget2/res/wgt/locales/pl-en/two.html");
274
275     RUNNER_ASSERT_MSG(!result.empty(), "No result");
276     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
277 }
278
279 RUNNER_TEST(test21_getFilePathInWidgetPackageFromUrl2)
280 {
281     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "app://two.html");
282
283     RUNNER_ASSERT(result.empty());
284 }
285
286 RUNNER_TEST(test22_getFilePathInWidgetPackageFromUrl2)
287 {
288     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "app://tizenid202/two.html");
289
290     RUNNER_ASSERT_MSG(!result.empty(), "No result");
291     RUNNER_ASSERT(result == "/opt/share/widget/tests/localization/widget2/res/wgt/locales/en-en/two.html");
292 }
293
294 RUNNER_TEST(test23_getFilePathInWidgetPackageFromUrl2)
295 {
296     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2, "dummy");
297
298     RUNNER_ASSERT(result.empty());
299 }
300
301 RUNNER_TEST(test24_getFilePathInWidgetPackageFromUrl2)
302 {
303     std::string result = W3CFileLocalization::getFilePathInWidgetPackageFromUrl(appId2,
304             "app://tizenid202/notExisingFIle");
305
306     RUNNER_ASSERT(result.empty());
307 }
308
309 RUNNER_TEST(test25_getFilePathInWidgetPackage)
310 {
311     WrtDB::TizenAppId name = L"tizenid201";
312     WrtDB::WidgetDAOReadOnly dao(name);
313
314     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackage(
315             name,
316             DPL::String(L"one"));
317
318     RUNNER_ASSERT_MSG(!!result, "No result");
319     RUNNER_ASSERT(*result == L"locales/pl-en/one");
320 }
321
322 RUNNER_TEST(test26_getFilePathInWidgetPackage)
323 {
324     WrtDB::TizenAppId name = L"tizenid202";
325     WrtDB::WidgetDAOReadOnly dao(name);
326
327     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackage(
328             name,
329             DPL::String(L"two.html"));
330
331     RUNNER_ASSERT_MSG(!!result, "No result");
332     RUNNER_ASSERT(*result == L"locales/en-en/two.html");
333 }
334
335 RUNNER_TEST(test27_getFilePathInWidgetPackage)
336 {
337     WrtDB::TizenAppId name = L"tizenid202";
338
339     DPL::OptionalString result = W3CFileLocalization::getFilePathInWidgetPackage(name, L"");
340     RUNNER_ASSERT(!result);
341
342     result = W3CFileLocalization::getFilePathInWidgetPackage(name, L"/");
343     RUNNER_ASSERT(!result);
344
345     result = W3CFileLocalization::getFilePathInWidgetPackage(name, L"//");
346     RUNNER_ASSERT(!result);
347
348     result = W3CFileLocalization::getFilePathInWidgetPackage(name, L"dummy");
349     RUNNER_ASSERT(!result);
350
351     result = W3CFileLocalization::getFilePathInWidgetPackage(name, L"/two.html/");
352     RUNNER_ASSERT_MSG(!!result, "No result");
353     RUNNER_ASSERT(*result == L"locales/en-en/two.html");
354 }
355
356 RUNNER_TEST(test28_getValidIconsList)
357 {
358     WrtDB::TizenAppId name = L"not existing";
359
360     bool exceptionCaught = false;
361
362     try {
363         W3CFileLocalization::WidgetIconList result = W3CFileLocalization::getValidIconsList(name);
364     } catch (WrtDB::WidgetDAOReadOnly::Exception::WidgetNotExist&) {
365         exceptionCaught = true;
366     }
367     RUNNER_ASSERT(exceptionCaught);
368 }
369
370 RUNNER_TEST(test29_getValidIconsList)
371 {
372     WrtDB::TizenAppId name = L"tizenid202";
373
374     W3CFileLocalization::WidgetIconList result = W3CFileLocalization::getValidIconsList(name);
375     RUNNER_ASSERT(result.empty());
376 }
377
378
379 RUNNER_TEST(test30_getValidIconsList)
380 {
381     WrtDB::TizenAppId name = L"tizenid201";
382
383     W3CFileLocalization::WidgetIconList result = W3CFileLocalization::getValidIconsList(name);
384     RUNNER_ASSERT(result.size() == 2);
385     W3CFileLocalization::WidgetIconList::iterator iter = result.begin();
386     RUNNER_ASSERT(iter->src == L"icon");
387     RUNNER_ASSERT(iter->height == 250);
388     RUNNER_ASSERT(iter->width == 251);
389     iter++;
390     RUNNER_ASSERT(iter->src == L"icon2");
391     RUNNER_ASSERT(iter->height == 252);
392     RUNNER_ASSERT(iter->width == 253);
393 }
394
395 RUNNER_TEST(test31_getStartFileInfo)
396 {
397     WrtDB::TizenAppId name = L"not existing";
398
399     bool exceptionCaught = false;
400
401     try {
402         OptionalWidgetStartFileInfo result = W3CFileLocalization::getStartFileInfo(name);
403     } catch (WrtDB::WidgetDAOReadOnly::Exception::WidgetNotExist&) {
404         exceptionCaught = true;
405     }
406     RUNNER_ASSERT(exceptionCaught);
407 }
408
409 RUNNER_TEST(test32_getStartFileInfo)
410 {
411     WrtDB::TizenAppId name = L"tizenid202";
412
413     OptionalWidgetStartFileInfo result = W3CFileLocalization::getStartFileInfo(name);
414     RUNNER_ASSERT(!result);
415 }
416
417
418 RUNNER_TEST(test33_getStartFileInfo)
419 {
420     WrtDB::TizenAppId name = L"tizenid201";
421
422     OptionalWidgetStartFileInfo result = W3CFileLocalization::getStartFileInfo(name);
423     RUNNER_ASSERT(!!result);
424     RUNNER_ASSERT(result->file == L"start_file");
425     RUNNER_ASSERT(result->localizedPath == L"locales/en-en/start_file");
426 }