Index: chrome/common/extensions/extension_manifests_unittest.cc |
diff --git a/chrome/common/extensions/extension_manifests_unittest.cc b/chrome/common/extensions/extension_manifests_unittest.cc |
index 3d7ed442e37b205ffb8d3ed33955a1c77a871fdf..75ddafcf9030cb54e11d716558da4fea8c6c8d67 100644 |
--- a/chrome/common/extensions/extension_manifests_unittest.cc |
+++ b/chrome/common/extensions/extension_manifests_unittest.cc |
@@ -747,6 +747,49 @@ TEST_F(ExtensionManifestTest, TtsEngine) { |
EXPECT_EQ(3U, extension->tts_voices()[0].event_types.size()); |
} |
+TEST_F(ExtensionManifestTest, WebIntents) { |
+ LoadAndExpectError("intent_invalid_1.json", |
+ extension_manifest_errors::kInvalidIntents); |
+ LoadAndExpectError("intent_invalid_2.json", |
+ extension_manifest_errors::kInvalidIntent); |
+ LoadAndExpectError("intent_invalid_3.json", |
+ extension_manifest_errors::kInvalidIntentAction); |
+ LoadAndExpectError("intent_invalid_4.json", |
+ extension_manifest_errors::kInvalidIntentDisposition); |
+ LoadAndExpectError("intent_invalid_5.json", |
+ extension_manifest_errors::kInvalidIntentType); |
+ LoadAndExpectError("intent_invalid_6.json", |
+ extension_manifest_errors::kInvalidIntentTitle); |
+ LoadAndExpectError("intent_invalid_action_missing.json", |
+ extension_manifest_errors::kInvalidIntentAction); |
+ |
+ scoped_refptr<Extension> extension( |
+ LoadAndExpectSuccess("intent_valid.json")); |
+ ASSERT_TRUE(extension.get() != NULL); |
+ |
+ ASSERT_EQ(1u, extension->intents().size()); |
+ EXPECT_EQ("image/png", UTF16ToUTF8(extension->intents()[0].type)); |
+ EXPECT_EQ("http://webintents.org/share", extension->intents()[0].service_url.spec()); |
+ EXPECT_EQ("/services/share", UTF16ToUTF8(extension->intents()[0].action)); |
+ EXPECT_EQ("Sample Sharing Intent", |
+ UTF16ToUTF8(extension->intents()[0].title)); |
+ EXPECT_EQ(WebIntentData::DISPOSITION_INLINE, |
+ extension->intents()[0].disposition); |
+ |
+ // Verify that optional fields are filled with defaults. |
+ extension = LoadAndExpectSuccess("intent_valid_minimal.json"); |
+ ASSERT_TRUE(extension.get() != NULL); |
+ |
+ ASSERT_EQ(1u, extension->intents().size()); |
+ EXPECT_EQ("", UTF16ToUTF8(extension->intents()[0].type)); |
+ EXPECT_EQ("http://webintents.org/share", extension->intents()[0].service_url.spec()); |
+ EXPECT_EQ("/services/edit", |
+ UTF16ToUTF8(extension->intents()[0].action)); |
+ EXPECT_EQ("", UTF16ToUTF8(extension->intents()[0].title)); |
+ EXPECT_EQ(WebIntentData::DISPOSITION_WINDOW, |
+ extension->intents()[0].disposition); |
+} |
+ |
TEST_F(ExtensionManifestTest, ForbidPortsInPermissions) { |
// Loading as a user would shoud not trigger an error. |
LoadAndExpectSuccess("forbid_ports_in_permissions.json"); |