SET(PRJ_PATH ..)
SET(TESTS
- manifest_util_unittest
+ parser_manifest_util_unittest
service_handler_unittest
content_handler_unittest
+ appwidget_handler_unittest
)
SET(DESTINATION_DIR manifest-parser-ut)
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../)
-# Executables
-ADD_EXECUTABLE(manifest_util_unittest
- parser_manifest_util_unittest.cc)
-ADD_EXECUTABLE(service_handler_unittest
- service_handler_unittest.cc)
-ADD_EXECUTABLE(content_handler_unittest
- content_handler_unittest.cc)
-
INSTALL(DIRECTORY test_samples/ DESTINATION ${SHAREDIR}/${DESTINATION_DIR}/test_samples)
FOREACH(test ${TESTS})
-APPLY_PKG_CONFIG(${test} PUBLIC
- LIBXML_DEPS
- PKGMGR_INFO_DEPS
- PKGMGR_PARSER_DEPS
- VCONF_DEPS
- Boost
- GTEST
- MANIFEST_PARSER_DEPS
- MANIFEST_PARSER_UTILS_DEPS
-)
-
-ENDFOREACH(test)
+ ADD_EXECUTABLE(${test} "${test}.cc")
+
+ APPLY_PKG_CONFIG(${test} PUBLIC
+ LIBXML_DEPS
+ PKGMGR_INFO_DEPS
+ PKGMGR_PARSER_DEPS
+ VCONF_DEPS
+ Boost
+ GTEST
+ MANIFEST_PARSER_DEPS
+ MANIFEST_PARSER_UTILS_DEPS
+ )
-# FindGTest module do not sets all needed libraries in GTEST_LIBRARIES and
-# GTest main libraries is still missing, so additional linking of
-# GTEST_MAIN_LIBRARIES is needed.
-
-TARGET_LINK_LIBRARIES(manifest_util_unittest PUBLIC ${TARGET_LIBNAME_PARSER}
- ${TARGET_LIBNAME_WGT_MANIFEST_HANDLERS} ${GTEST_MAIN_LIBRARIES})
-TARGET_LINK_LIBRARIES(service_handler_unittest PUBLIC ${TARGET_LIBNAME_PARSER}
- ${TARGET_LIBNAME_WGT_MANIFEST_HANDLERS} ${GTEST_MAIN_LIBRARIES})
-TARGET_LINK_LIBRARIES(content_handler_unittest PUBLIC ${TARGET_LIBNAME_PARSER}
- ${TARGET_LIBNAME_WGT_MANIFEST_HANDLERS} ${GTEST_MAIN_LIBRARIES})
-
-FOREACH(test ${TESTS})
INSTALL(TARGETS ${test} DESTINATION ${BINDIR}/${DESTINATION_DIR})
+ # FindGTest module do not sets all needed libraries in GTEST_LIBRARIES and
+ # GTest main libraries is still missing, so additional linking of
+ # GTEST_MAIN_LIBRARIES is needed.
+ TARGET_LINK_LIBRARIES(${test} PUBLIC ${TARGET_LIBNAME_PARSER}
+ ${TARGET_LIBNAME_WGT_MANIFEST_HANDLERS} ${GTEST_MAIN_LIBRARIES})
ENDFOREACH(test)
--- /dev/null
+// Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by an apache 2.0 license that can be
+// found in the LICENSE file.
+
+#include <boost/filesystem/path.hpp>
+
+#include <gtest/gtest.h>
+
+#include <algorithm>
+#include <initializer_list>
+#include <vector>
+
+#include "manifest_parser/manifest.h"
+#include "manifest_parser/manifest_handler.h"
+#include "manifest_parser/manifest_parser_impl.h"
+#include "manifest_parser/manifest_parser.h"
+#include "manifest_parser/manifest_util.h"
+#include "wgt_manifest_handlers/application_manifest_constants.h"
+#include "wgt_manifest_handlers/appwidget_handler.h"
+#include "wgt_manifest_handlers/tizen_application_handler.h"
+
+namespace bf = boost::filesystem;
+
+namespace {
+
+const bf::path kXmlDirectory("/usr/share/manifest-parser-ut/test_samples/xmls");
+
+std::unique_ptr<parser::ManifestHandlerRegistry> GetRegistryForTest() {
+ std::unique_ptr<parser::ManifestHandlerRegistry> registry;
+ registry.reset(new parser::ManifestHandlerRegistry());
+ registry->RegisterManifestHandler(new wgt::parse::TizenApplicationHandler());
+ registry->RegisterManifestHandler(new wgt::parse::AppWidgetHandler());
+ return registry;
+}
+
+} // namespace
+
+namespace parser {
+
+class AppWidgetHandlerTest : public testing::Test {
+ public:
+ void SetUp() override {
+ parser_.reset(new ManifestParserImpl((GetRegistryForTest())));
+ }
+ void TearDown() override { parser_.reset(); }
+ void SetManifest(std::shared_ptr<Manifest> manifest) {
+ parser_->SetManifest(manifest);
+ }
+ bool ParseAppManifest() {
+ std::string error;
+ return parser_->ParseAppManifest(&error);
+ }
+ bool ValidateAppManifest() {
+ std::string error;
+ return parser_->ValidateAppManifest(&error);
+ }
+ std::shared_ptr<const ManifestData> GetManifestData(const std::string& key) {
+ return parser_->GetManifestData(key);
+ }
+
+ std::string GetMyName() const {
+ std::string suite =
+ testing::UnitTest::GetInstance()->current_test_info()->test_case_name();
+ std::string case_name =
+ testing::UnitTest::GetInstance()->current_test_info()->name();
+ return suite + '.' + case_name;
+ }
+
+ private:
+ std::unique_ptr<ManifestParserImpl> parser_;
+};
+
+TEST_F(AppWidgetHandlerTest, dbox1) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_TRUE(ParseAppManifest());
+ ASSERT_TRUE(ValidateAppManifest());
+ std::shared_ptr<const wgt::parse::AppWidgetInfo> data =
+ std::static_pointer_cast<const wgt::parse::AppWidgetInfo>(
+ GetManifestData(
+ wgt::application_widget_keys::kTizenAppWidgetFullKey));
+ ASSERT_EQ(data->app_widgets().size(), 1);
+ const wgt::parse::AppWidget& app_widget = *data->app_widgets().begin();
+ ASSERT_EQ(app_widget.auto_launch, true);
+ ASSERT_EQ(app_widget.content_mouse_event, true);
+ ASSERT_EQ(app_widget.content_touch_effect, false);
+ ASSERT_EQ(app_widget.content_src, "box/index.html");
+ ASSERT_EQ(app_widget.id, "aaaaaaa100.dbox1.default");
+ ASSERT_EQ(app_widget.primary, true);
+ ASSERT_EQ(app_widget.label.default_value, "dbox1 default label");
+ ASSERT_EQ(app_widget.label.lang_value_map.size(), 2);
+ ASSERT_EQ(app_widget.label.lang_value_map.count("pl"), 1);
+ ASSERT_EQ(app_widget.label.lang_value_map.find("pl")->second,
+ "dbox1 pl label");
+ ASSERT_EQ(app_widget.label.lang_value_map.count("en"), 1);
+ ASSERT_EQ(app_widget.label.lang_value_map.find("en")->second,
+ "dbox1 en label");
+ ASSERT_EQ(app_widget.icon_src, "icon.png");
+ ASSERT_EQ(app_widget.max_instance, 0);
+ ASSERT_EQ(app_widget.update_period.size(), 1);
+ ASSERT_EQ(app_widget.update_period.at(0), 2000.0);
+
+ ASSERT_EQ(app_widget.content_size.size(), 3);
+ auto size1 = std::find_if(app_widget.content_size.begin(),
+ app_widget.content_size.end(),
+ [](const wgt::parse::AppWidgetSize& size) {
+ return size.type == wgt::parse::k1x1;
+ });
+ auto size2 = std::find_if(app_widget.content_size.begin(),
+ app_widget.content_size.end(),
+ [](const wgt::parse::AppWidgetSize& size) {
+ return size.type == wgt::parse::k2x1;
+ });
+ auto size3 = std::find_if(app_widget.content_size.begin(),
+ app_widget.content_size.end(),
+ [](const wgt::parse::AppWidgetSize& size) {
+ return size.type == wgt::parse::k2x2;
+ });
+ ASSERT_NE(size1, app_widget.content_size.end());
+ ASSERT_NE(size2, app_widget.content_size.end());
+ ASSERT_NE(size3, app_widget.content_size.end());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_icon_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_TRUE(ParseAppManifest());
+ ASSERT_TRUE(ValidateAppManifest());
+ std::shared_ptr<const wgt::parse::AppWidgetInfo> data =
+ std::static_pointer_cast<const wgt::parse::AppWidgetInfo>(
+ GetManifestData(
+ wgt::application_widget_keys::kTizenAppWidgetFullKey));
+ ASSERT_EQ(data->app_widgets().size(), 1);
+ const wgt::parse::AppWidget& app_widget = *data->app_widgets().begin();
+ ASSERT_TRUE(app_widget.icon_src.empty());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox2) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_TRUE(ParseAppManifest());
+ ASSERT_TRUE(ValidateAppManifest());
+ std::shared_ptr<const wgt::parse::AppWidgetInfo> data =
+ std::static_pointer_cast<const wgt::parse::AppWidgetInfo>(
+ GetManifestData(
+ wgt::application_widget_keys::kTizenAppWidgetFullKey));
+ ASSERT_EQ(data->app_widgets().size(), 2);
+ auto result1 = std::find_if(data->app_widgets().begin(),
+ data->app_widgets().end(),
+ [](const wgt::parse::AppWidget& candidate) {
+ return candidate.id == "aaaaaaa200.dbox2.default";
+ });
+ auto result2 = std::find_if(data->app_widgets().begin(),
+ data->app_widgets().end(),
+ [](const wgt::parse::AppWidget& candidate) {
+ return candidate.id == "aaaaaaa200.dbox2.second";
+ });
+ ASSERT_NE(result1, data->app_widgets().end());
+ ASSERT_NE(result2, data->app_widgets().end());
+
+ const wgt::parse::AppWidget& app_widget1 = *result1;
+ ASSERT_EQ(app_widget1.auto_launch, true);
+ ASSERT_EQ(app_widget1.content_mouse_event, true);
+ ASSERT_EQ(app_widget1.content_touch_effect, false);
+ ASSERT_EQ(app_widget1.content_src, "box/index.html");
+ ASSERT_EQ(app_widget1.id, "aaaaaaa200.dbox2.default");
+ ASSERT_EQ(app_widget1.primary, true);
+ ASSERT_EQ(app_widget1.label.default_value, "dbox2 default label");
+ ASSERT_EQ(app_widget1.label.lang_value_map.size(), 2);
+ ASSERT_EQ(app_widget1.label.lang_value_map.count("pl"), 1);
+ ASSERT_EQ(app_widget1.label.lang_value_map.find("pl")->second,
+ "dbox2 pl label");
+ ASSERT_EQ(app_widget1.label.lang_value_map.count("en"), 1);
+ ASSERT_EQ(app_widget1.label.lang_value_map.find("en")->second,
+ "dbox2 en label");
+ ASSERT_EQ(app_widget1.icon_src, "icon.png");
+ ASSERT_EQ(app_widget1.max_instance, 0);
+ ASSERT_EQ(app_widget1.update_period.size(), 1);
+ ASSERT_EQ(app_widget1.update_period.at(0), 2000.0);
+
+ const wgt::parse::AppWidget& app_widget2 = *result2;
+ ASSERT_EQ(app_widget2.auto_launch, false);
+ ASSERT_EQ(app_widget2.content_mouse_event, false);
+ ASSERT_EQ(app_widget2.content_touch_effect, true);
+ ASSERT_EQ(app_widget2.content_src, "box/index2.html");
+ ASSERT_EQ(app_widget2.id, "aaaaaaa200.dbox2.second");
+ ASSERT_EQ(app_widget2.primary, false);
+ ASSERT_EQ(app_widget2.label.default_value, "dbox2 default label 2");
+ ASSERT_EQ(app_widget2.label.lang_value_map.size(), 2);
+ ASSERT_EQ(app_widget2.label.lang_value_map.count("pl"), 1);
+ ASSERT_EQ(app_widget2.label.lang_value_map.find("pl")->second,
+ "dbox2 pl label 2");
+ ASSERT_EQ(app_widget2.label.lang_value_map.count("en"), 1);
+ ASSERT_EQ(app_widget2.label.lang_value_map.find("en")->second,
+ "dbox2 en label 2");
+ ASSERT_EQ(app_widget2.icon_src, "icon2.png");
+ ASSERT_EQ(app_widget2.max_instance, 0);
+ ASSERT_EQ(app_widget2.update_period.size(), 1);
+ ASSERT_EQ(app_widget2.update_period.at(0), 4000.0);
+}
+
+TEST_F(AppWidgetHandlerTest, dbox2_app_widget_primary_two_true) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_TRUE(ParseAppManifest());
+ ASSERT_TRUE(ValidateAppManifest());
+ std::shared_ptr<const wgt::parse::AppWidgetInfo> data =
+ std::static_pointer_cast<const wgt::parse::AppWidgetInfo>(
+ GetManifestData(
+ wgt::application_widget_keys::kTizenAppWidgetFullKey));
+ ASSERT_EQ(data->app_widgets().size(), 2);
+ auto result1 = std::find_if(data->app_widgets().begin(),
+ data->app_widgets().end(),
+ [](const wgt::parse::AppWidget& candidate) {
+ return candidate.id == "aaaaaaa201.dbox2.default";
+ });
+ auto result2 = std::find_if(data->app_widgets().begin(),
+ data->app_widgets().end(),
+ [](const wgt::parse::AppWidget& candidate) {
+ return candidate.id == "aaaaaaa201.dbox2.second";
+ });
+ ASSERT_NE(result1, data->app_widgets().end());
+ ASSERT_NE(result2, data->app_widgets().end());
+
+ const wgt::parse::AppWidget& app_widget1 = *result1;
+ ASSERT_EQ(app_widget1.primary, true);
+
+ const wgt::parse::AppWidget& app_widget2 = *result2;
+ ASSERT_EQ(app_widget2.primary, true);
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_auto_launch_not_bool) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_box_size_invalid) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_box_size_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest,
+ dbox1_app_widget_box_content_box_size_use_decoration_invalid) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest,
+ dbox1_app_widget_box_content_mouse_event_not_bool) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_pd_height_invalid) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_pd_height_ood) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_pd_src_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_pd_width_invalid) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_src_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest,
+ dbox1_app_widget_box_content_touch_effect_not_bool) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_content_two) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_icon_src_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_icon_two) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_box_label_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_id_invalid_1) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_id_invalid_2) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_id_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_primary_none) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_primary_not_bool) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_update_period_invalid) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+TEST_F(AppWidgetHandlerTest, dbox1_app_widget_update_period_ood) {
+ std::string error;
+ bf::path xml = kXmlDirectory / GetMyName() / "config.xml";
+ std::shared_ptr<Manifest> manifest(LoadManifest(xml.string(), &error));
+ ASSERT_FALSE(!manifest);
+ SetManifest(manifest);
+ ASSERT_FALSE(ParseAppManifest() && ValidateAppManifest());
+}
+
+} // namespace parser
}
void TearDown() override { parser_.reset(); }
void SetManifest(std::shared_ptr<Manifest> manifest) {
- parser_->manifest_ = manifest;
+ parser_->SetManifest(manifest);
}
bool ParseAppManifest() {
std::string error;
}
void TearDown() override { parser_.reset(); }
void SetManifest(std::shared_ptr<Manifest> manifest) {
- parser_->manifest_ = manifest;
+ parser_->SetManifest(manifest);
}
bool ParseAppManifest() {
std::string error;
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa100.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa100.dbox1" package="aaaaaaa100" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa102.dbox1.default" primary="true" update-period="2000.0" auto-launch="ab12">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa102.dbox1" package="aaaaaaa102" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa106.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:box-size>3x3</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa106.dbox1" package="aaaaaaa106" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa108.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa108.dbox1" package="aaaaaaa108" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa110.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="ab12">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa110.dbox1" package="aaaaaaa110" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa111.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="ab12" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa111.dbox1" package="aaaaaaa111" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa103.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa103.dbox1" package="aaaaaaa103" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa112.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="abc"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa112.dbox1" package="aaaaaaa112" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa113.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="-500"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa113.dbox1" package="aaaaaaa113" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa114.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa114.dbox1" package="aaaaaaa114" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa115.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="abc" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa115.dbox1" package="aaaaaaa115" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa116.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa116.dbox1" package="aaaaaaa116" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa117.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="ab12">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa117.dbox1" package="aaaaaaa117" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa105.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ <tizen:box-content src="box/index.html" mouse-event="false" touch-effect="true">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="true">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="730" height="300"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa105.dbox1" package="aaaaaaa105" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa133.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa133.dbox1" package="aaaaaaa133" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa120.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa120.dbox1" package="aaaaaaa120" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa119.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa119.dbox1" package="aaaaaaa119" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa121.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa121.dbox1" package="aaaaaaa121" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="9999999123.dbox1.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa123.dbox1" package="aaaaaaa123" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa124.dbox1.the-default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa124.dbox1" package="aaaaaaa124" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa125.dbox1" package="aaaaaaa125" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa128.dbox1.default" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa128.dbox1" package="aaaaaaa128" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa129.dbox1.default" primary="ab12" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa129.dbox1" package="aaaaaaa129" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa130.dbox1.default" primary="true" update-period="ab12" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa130.dbox1" package="aaaaaaa130" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox1" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa131.dbox1.default" primary="true" update-period="1000.0" auto-launch="true">
+ <tizen:box-label>dbox1 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox1 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox1 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa131.dbox1" package="aaaaaaa131" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox1</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox2" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa200.dbox2.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox2 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox2 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox2 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:app-widget id="aaaaaaa200.dbox2.second" primary="false" update-period="4000.0" auto-launch="false">
+ <tizen:box-label>dbox2 default label 2</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox2 pl label 2</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox2 en label 2</tizen:box-label>
+ <tizen:box-icon src="icon2.png"/>
+ <tizen:box-content src="box/index2.html" mouse-event="false" touch-effect="true">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon2.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="true">2x2</tizen:box-size>
+ <tizen:pd src="pd/index2.html" width="740" height="300"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa200.dbox2" package="aaaaaaa200" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox2</name>
+</widget>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/dbox2" version="1.0.0">
+ <tizen:app-widget id="aaaaaaa201.dbox2.default" primary="true" update-period="2000.0" auto-launch="true">
+ <tizen:box-label>dbox2 default label</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox2 pl label</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox2 en label</tizen:box-label>
+ <tizen:box-icon src="icon.png"/>
+ <tizen:box-content src="box/index.html" mouse-event="true" touch-effect="false">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="false">2x2</tizen:box-size>
+ <tizen:pd src="pd/index.html" width="720" height="200"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:app-widget id="aaaaaaa201.dbox2.second" primary="true" update-period="4000.0" auto-launch="false">
+ <tizen:box-label>dbox2 default label 2</tizen:box-label>
+ <tizen:box-label xml:lang="pl">dbox2 pl label 2</tizen:box-label>
+ <tizen:box-label xml:lang="en">dbox2 en label 2</tizen:box-label>
+ <tizen:box-icon src="icon2.png"/>
+ <tizen:box-content src="box/index2.html" mouse-event="false" touch-effect="true">
+ <tizen:box-size>1x1</tizen:box-size>
+ <tizen:box-size preview="icon2.png">2x1</tizen:box-size>
+ <tizen:box-size use-decoration="true">2x2</tizen:box-size>
+ <tizen:pd src="pd/index2.html" width="740" height="300"/>
+ </tizen:box-content>
+ </tizen:app-widget>
+ <tizen:application id="aaaaaaa201.dbox2" package="aaaaaaa201" required_version="2.2"/>
+ <feature name="http://tizen.org/feature/screen.size.normal.720.1280"/>
+ <icon src="icon.png"/>
+ <name>dbox2</name>
+</widget>