Upstream version 11.39.260.0
[platform/framework/web/crosswalk.git] / src / xwalk / application / common / manifest_handlers / widget_handler_unittest.cc
index 17ab4aa..b750627 100644 (file)
@@ -52,10 +52,13 @@ const char* preferencesReadonly[] = {"true", "false", "false"};
 class WidgetHandlerTest: public testing::Test {
  public:
   scoped_refptr<ApplicationData> CreateApplication(
-    base::DictionaryValue &manifest) {
+    const base::DictionaryValue& manifest) {
     std::string error;
     scoped_refptr<ApplicationData> application = ApplicationData::Create(
-        base::FilePath(), Manifest::INVALID_TYPE, manifest, "", &error);
+        base::FilePath(), std::string(), ApplicationData::LOCAL_DIRECTORY,
+        make_scoped_ptr(new Manifest(make_scoped_ptr(manifest.DeepCopy()),
+                                     Manifest::TYPE_WIDGET)),
+        &error);
     return application;
   }
 
@@ -90,6 +93,8 @@ class WidgetHandlerTest: public testing::Test {
   // No Preferences and full other information
   void SetAllInfoToManifest(base::DictionaryValue* manifest) {
     // Insert some key-value pairs into manifest use full key
+    manifest->SetString(keys::kWidgetNamespaceKey,
+                        keys::kWidgetNamespacePrefix);
     manifest->SetString(keys::kAuthorKey,      author);
     manifest->SetString(keys::kDescriptionKey, decription);
     manifest->SetString(keys::kNameKey,        name);
@@ -120,11 +125,12 @@ class WidgetHandlerTest: public testing::Test {
 
 TEST_F(WidgetHandlerTest, ParseManifestWithOnlyNameAndVersion) {
   base::DictionaryValue manifest;
+  manifest.SetString(keys::kWidgetNamespaceKey, keys::kWidgetNamespacePrefix);
   manifest.SetString(keys::kNameKey, "no name");
   manifest.SetString(keys::kVersionKey, "0");
 
   scoped_refptr<ApplicationData> application = CreateApplication(manifest);
-  EXPECT_TRUE(application);
+  EXPECT_TRUE(application.get());
 
   WidgetInfo* info = GetWidgetInfo(application);
   int size = info->GetWidgetInfo()->size();
@@ -160,8 +166,8 @@ TEST_F(WidgetHandlerTest,
   // Create an application use this manifest.
   scoped_refptr<ApplicationData> application;
   application = CreateApplication(*(manifest.get()));
-  EXPECT_TRUE(application);
-  EXPECT_EQ(application->GetPackageType(), Package::WGT);
+  EXPECT_TRUE(application.get());
+  EXPECT_EQ(application->manifest_type(), Manifest::TYPE_WIDGET);
   // Get widget info from this application.
   WidgetInfo* info = GetWidgetInfo(application);
   EXPECT_TRUE(info);
@@ -192,8 +198,8 @@ TEST_F(WidgetHandlerTest,
   // Create an application use this manifest,
   scoped_refptr<ApplicationData> application;
   application = CreateApplication(*(manifest.get()));
-  EXPECT_TRUE(application);
-  EXPECT_EQ(application->GetPackageType(), Package::WGT);
+  EXPECT_TRUE(application.get());
+  EXPECT_EQ(application->manifest_type(), Manifest::TYPE_WIDGET);
   // Get widget info from this application.
   WidgetInfo* info = GetWidgetInfo(application);
   EXPECT_TRUE(info);
@@ -215,5 +221,23 @@ TEST_F(WidgetHandlerTest,
   EXPECT_TRUE(widget->Equals(widget_parsed_from_manifest));
 }
 
+TEST_F(WidgetHandlerTest,
+       ParseManifestWithInvalidAuthorHrefValue) {
+  scoped_ptr<base::DictionaryValue> manifest(new base::DictionaryValue);
+  SetAllInfoToManifest(manifest.get());
+  manifest->SetString(keys::kAuthorHrefKey, "INVALID_HREF");
+
+  // Create an application use this manifest,
+  scoped_refptr<ApplicationData> application;
+  application = CreateApplication(*(manifest.get()));
+  EXPECT_TRUE(application.get());
+  EXPECT_EQ(application->manifest_type(), Manifest::TYPE_WIDGET);
+  // Get widget info from this application.
+  WidgetInfo* info = GetWidgetInfo(application);
+  EXPECT_TRUE(info);
+  std::string authorhref;
+  info->GetWidgetInfo()->GetString(keys::kAuthorHrefKey, &authorhref);
+  EXPECT_TRUE(authorhref.empty());
+}
 }  // namespace application
 }  // namespace xwalk