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..476641674d008d53f7722dad9e85e789f1639962 100644 |
--- a/chrome/common/extensions/extension_manifests_unittest.cc |
+++ b/chrome/common/extensions/extension_manifests_unittest.cc |
@@ -747,6 +747,50 @@ TEST_F(ExtensionManifestTest, TtsEngine) { |
EXPECT_EQ(3U, extension->tts_voices()[0].event_types.size()); |
} |
+TEST_F(ExtensionManifestTest, WebIntents) { |
+ CommandLine::ForCurrentProcess()->AppendSwitch("--enable-web-intents"); |
+ |
+ 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::kInvalidIntentPath); |
+ 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); |
+ |
+ 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", |
+ UTF16ToUTF8(extension->intents()[0].action)); |
James Hawkins
2011/09/19 18:51:40
Line up params. HAE
groby-ooo-7-16
2011/09/19 21:33:59
Done.
|
+ EXPECT_EQ("chrome-extension", extension->intents()[0].service_url.scheme()); |
+ EXPECT_EQ("///services/share", extension->intents()[0].service_url.path()); |
+ 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", UTF16ToUTF8(extension->intents()[0].action)); |
James Hawkins
2011/09/19 18:51:40
80 cols.
groby-ooo-7-16
2011/09/19 21:33:59
Done.
|
+ EXPECT_TRUE(extension->intents()[0].service_url.is_empty()); |
+ 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"); |