#include <glib.h>
#include <gtest/gtest.h>
+#include <map>
#include <memory>
#include <string>
#include <vector>
ASSERT_FALSE(runner.Run());
}
+
TEST_F(ManifestTest, AppControlElement_Valid) {
StepParseRunner runner(GetMyName());
ASSERT_TRUE(runner.Run());
ASSERT_EQ(settings.screen_orientation(),
wgt::parse::SettingInfo::ScreenOrientation::AUTO);
}
+
+TEST_F(ManifestTest, MetadataElement_Valid) {
+ StepParseRunner runner(GetMyName());
+ ASSERT_TRUE(runner.Run());
+ manifest_x* m = runner.GetManifest();
+ ASSERT_NE(m, nullptr);
+ auto apps = GListRange<application_x*>(m->application);
+ application_x* app = *apps.begin();
+
+ std::map<std::string, std::string> meta_data_map;
+ for (metadata_x* meta_data : GListRange<metadata_x*>(app->metadata)) {
+ if (meta_data->value)
+ meta_data_map[meta_data->key] = meta_data->value;
+ else
+ meta_data_map[meta_data->key] = std::string();
+ }
+ ASSERT_EQ(meta_data_map.size(), 2);
+ ASSERT_CSTR_EQ(meta_data_map["key1"].c_str(), "");
+ ASSERT_CSTR_EQ(meta_data_map["key2"].c_str(), "value2");
+}
+
+TEST_F(ManifestTest, MetadataElement_DuplicateKey) {
+ StepParseRunner runner(GetMyName());
+ ASSERT_TRUE(runner.Run());
+ manifest_x* m = runner.GetManifest();
+ ASSERT_NE(m, nullptr);
+ auto apps = GListRange<application_x*>(m->application);
+ application_x* app = *apps.begin();
+
+ std::map<std::string, std::string> meta_data_map;
+ for (metadata_x* meta_data : GListRange<metadata_x*>(app->metadata)) {
+ meta_data_map[meta_data->key] = meta_data->value;
+ }
+ ASSERT_EQ(meta_data_map.size(), 2);
+ ASSERT_CSTR_EQ(meta_data_map["key1"].c_str(), "key1value");
+ ASSERT_CSTR_EQ(meta_data_map["key2"].c_str(), "key2value");
+}
+
+TEST_F(ManifestTest, MetadataElement_MissingValue) {
+ StepParseRunner runner(GetMyName());
+ ASSERT_TRUE(runner.Run());
+ manifest_x* m = runner.GetManifest();
+ ASSERT_NE(m, nullptr);
+ auto apps = GListRange<application_x*>(m->application);
+ application_x* app = *apps.begin();
+
+ std::map<std::string, std::string> meta_data_map;
+ for (metadata_x* meta_data : GListRange<metadata_x*>(app->metadata)) {
+ if (meta_data->value)
+ meta_data_map[meta_data->key] = meta_data->value;
+ else
+ meta_data_map[meta_data->key] = std::string();
+ }
+ ASSERT_EQ(meta_data_map.size(), 2);
+ ASSERT_CSTR_EQ(meta_data_map["key1"].c_str(), "");
+ ASSERT_CSTR_EQ(meta_data_map["key2"].c_str(), "");
+}
+
+TEST_F(ManifestTest, MetadataElement_MissingKey) {
+ StepParseRunner runner(GetMyName());
+ ASSERT_TRUE(runner.Run());
+ manifest_x* m = runner.GetManifest();
+ ASSERT_NE(m, nullptr);
+ auto apps = GListRange<application_x*>(m->application);
+ application_x* app = *apps.begin();
+
+ std::map<std::string, std::string> meta_data_map;
+ for (metadata_x* meta_data : GListRange<metadata_x*>(app->metadata)) {
+ if (meta_data->key && meta_data->value)
+ meta_data_map[meta_data->key] = meta_data->value;
+ }
+ ASSERT_EQ(meta_data_map.size(), 0);
+}
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:metadata key="key1" value="key1value"/>
+ <tizen:metadata key="key2" value="key2value"/>
+ <tizen:metadata key="key1" value="key3value"/>
+</widget>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:metadata/>
+</widget>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:metadata key="key1"/>
+ <tizen:metadata key="key2"/>
+</widget>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:metadata key="key1"/>
+ <tizen:metadata key="key2" value="value2"/>
+</widget>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="disable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="disable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="enable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="disable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="disable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>
--- /dev/null
+<?xml version="1.0"?>
+<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets">
+ <tizen:application id="package0id.appid" package="package0id" required_version="3.0"/>
+ <tizen:setting background-support="enable" />
+ <tizen:setting context-menu="disable" />
+ <tizen:setting encryption="enable" />
+ <tizen:setting screen-orientation="landscape" />
+ <tizen:setting install-location="internal-only" />
+ <tizen:setting hwkey-event="enable" />
+ <tizen:setting background-vibration="enable" />
+</widget>