| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" | 5 #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
| 6 | 6 |
| 7 #include "base/string_number_conversions.h" | 7 #include "base/string_number_conversions.h" |
| 8 #include "base/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "chrome/common/extensions/extension_error_utils.h" | 9 #include "chrome/common/extensions/extension_error_utils.h" |
| 10 #include "chrome/common/extensions/extension_manifest_constants.h" | 10 #include "chrome/common/extensions/extension_manifest_constants.h" |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 66 scoped_refptr<Extension> extension( | 66 scoped_refptr<Extension> extension( |
| 67 LoadAndExpectSuccess("intent_valid.json")); | 67 LoadAndExpectSuccess("intent_valid.json")); |
| 68 ASSERT_TRUE(extension.get() != NULL); | 68 ASSERT_TRUE(extension.get() != NULL); |
| 69 | 69 |
| 70 ASSERT_EQ(1u, extension->intents_services().size()); | 70 ASSERT_EQ(1u, extension->intents_services().size()); |
| 71 EXPECT_EQ("image/png", UTF16ToUTF8(extension->intents_services()[0].type)); | 71 EXPECT_EQ("image/png", UTF16ToUTF8(extension->intents_services()[0].type)); |
| 72 EXPECT_EQ("http://webintents.org/share", | 72 EXPECT_EQ("http://webintents.org/share", |
| 73 UTF16ToUTF8(extension->intents_services()[0].action)); | 73 UTF16ToUTF8(extension->intents_services()[0].action)); |
| 74 EXPECT_EQ("chrome-extension", | 74 EXPECT_EQ("chrome-extension", |
| 75 extension->intents_services()[0].service_url.scheme()); | 75 extension->intents_services()[0].service_url.scheme()); |
| 76 EXPECT_EQ("//services/share", | 76 EXPECT_EQ("/services/share", |
| 77 extension->intents_services()[0].service_url.path()); | 77 extension->intents_services()[0].service_url.path()); |
| 78 EXPECT_EQ("Sample Sharing Intent", | 78 EXPECT_EQ("Sample Sharing Intent", |
| 79 UTF16ToUTF8(extension->intents_services()[0].title)); | 79 UTF16ToUTF8(extension->intents_services()[0].title)); |
| 80 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE, | 80 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE, |
| 81 extension->intents_services()[0].disposition); | 81 extension->intents_services()[0].disposition); |
| 82 | 82 |
| 83 // Verify that optional fields are filled with defaults. | 83 // Verify that optional fields are filled with defaults. |
| 84 extension = LoadAndExpectSuccess("intent_valid_minimal.json"); | 84 extension = LoadAndExpectSuccess("intent_valid_minimal.json"); |
| 85 ASSERT_TRUE(extension.get() != NULL); | 85 ASSERT_TRUE(extension.get() != NULL); |
| 86 | 86 |
| 87 ASSERT_EQ(1u, extension->intents_services().size()); | 87 ASSERT_EQ(1u, extension->intents_services().size()); |
| 88 EXPECT_EQ("*", UTF16ToUTF8(extension->intents_services()[0].type)); | 88 EXPECT_EQ("*", UTF16ToUTF8(extension->intents_services()[0].type)); |
| 89 EXPECT_EQ("http://webintents.org/share", | 89 EXPECT_EQ("http://webintents.org/share", |
| 90 UTF16ToUTF8(extension->intents_services()[0].action)); | 90 UTF16ToUTF8(extension->intents_services()[0].action)); |
| 91 EXPECT_EQ("", UTF16ToUTF8(extension->intents_services()[0].title)); | 91 EXPECT_EQ("", UTF16ToUTF8(extension->intents_services()[0].title)); |
| 92 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_WINDOW, | 92 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_WINDOW, |
| 93 extension->intents_services()[0].disposition); | 93 extension->intents_services()[0].disposition); |
| 94 | 94 |
| 95 // Make sure we support href instead of path. | 95 // Make sure we support href instead of path. |
| 96 extension = LoadAndExpectSuccess("intent_valid_using_href.json"); | 96 extension = LoadAndExpectSuccess("intent_valid_using_href.json"); |
| 97 ASSERT_TRUE(extension.get() != NULL); | 97 ASSERT_TRUE(extension.get() != NULL); |
| 98 ASSERT_EQ(1u, extension->intents_services().size()); | 98 ASSERT_EQ(1u, extension->intents_services().size()); |
| 99 EXPECT_EQ("//services/share", | 99 EXPECT_EQ("/services/share", |
| 100 extension->intents_services()[0].service_url.path()); | 100 extension->intents_services()[0].service_url.path()); |
| 101 } | 101 } |
| 102 | 102 |
| 103 TEST_F(ExtensionManifestTest, WebIntentsWithMultipleMimeTypes) { | 103 TEST_F(ExtensionManifestTest, WebIntentsWithMultipleMimeTypes) { |
| 104 scoped_refptr<Extension> extension( | 104 scoped_refptr<Extension> extension( |
| 105 LoadAndExpectSuccess("intent_valid_multitype.json")); | 105 LoadAndExpectSuccess("intent_valid_multitype.json")); |
| 106 ASSERT_TRUE(extension.get() != NULL); | 106 ASSERT_TRUE(extension.get() != NULL); |
| 107 | 107 |
| 108 ASSERT_EQ(2u, extension->intents_services().size()); | 108 ASSERT_EQ(2u, extension->intents_services().size()); |
| 109 | 109 |
| 110 // One registration with multiple types generates a separate service for | 110 // One registration with multiple types generates a separate service for |
| 111 // each MIME type. | 111 // each MIME type. |
| 112 for (int i = 0; i < 2; ++i) { | 112 for (int i = 0; i < 2; ++i) { |
| 113 EXPECT_EQ("http://webintents.org/share", | 113 EXPECT_EQ("http://webintents.org/share", |
| 114 UTF16ToUTF8(extension->intents_services()[i].action)); | 114 UTF16ToUTF8(extension->intents_services()[i].action)); |
| 115 EXPECT_EQ("chrome-extension", | 115 EXPECT_EQ("chrome-extension", |
| 116 extension->intents_services()[i].service_url.scheme()); | 116 extension->intents_services()[i].service_url.scheme()); |
| 117 EXPECT_EQ("//services/share", | 117 EXPECT_EQ("/services/share", |
| 118 extension->intents_services()[i].service_url.path()); | 118 extension->intents_services()[i].service_url.path()); |
| 119 EXPECT_EQ("Sample Sharing Intent", | 119 EXPECT_EQ("Sample Sharing Intent", |
| 120 UTF16ToUTF8(extension->intents_services()[i].title)); | 120 UTF16ToUTF8(extension->intents_services()[i].title)); |
| 121 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE, | 121 EXPECT_EQ(webkit_glue::WebIntentServiceData::DISPOSITION_INLINE, |
| 122 extension->intents_services()[i].disposition); | 122 extension->intents_services()[i].disposition); |
| 123 } | 123 } |
| 124 EXPECT_EQ("image/jpeg", UTF16ToUTF8(extension->intents_services()[0].type)); | 124 EXPECT_EQ("image/jpeg", UTF16ToUTF8(extension->intents_services()[0].type)); |
| 125 EXPECT_EQ("image/bmp", UTF16ToUTF8(extension->intents_services()[1].type)); | 125 EXPECT_EQ("image/bmp", UTF16ToUTF8(extension->intents_services()[1].type)); |
| 126 | 126 |
| 127 LoadAndExpectError("intent_invalid_type_element.json", | 127 LoadAndExpectError("intent_invalid_type_element.json", |
| (...skipping 29 matching lines...) Expand all Loading... |
| 157 TEST_F(ExtensionManifestTest, WebIntentsMultiHref) { | 157 TEST_F(ExtensionManifestTest, WebIntentsMultiHref) { |
| 158 scoped_refptr<Extension> extension( | 158 scoped_refptr<Extension> extension( |
| 159 LoadAndExpectSuccess("intent_valid_multi_href.json")); | 159 LoadAndExpectSuccess("intent_valid_multi_href.json")); |
| 160 ASSERT_TRUE(extension.get() != NULL); | 160 ASSERT_TRUE(extension.get() != NULL); |
| 161 ASSERT_EQ(2u, extension->intents_services().size()); | 161 ASSERT_EQ(2u, extension->intents_services().size()); |
| 162 | 162 |
| 163 const std::vector<webkit_glue::WebIntentServiceData> &intents = | 163 const std::vector<webkit_glue::WebIntentServiceData> &intents = |
| 164 extension->intents_services(); | 164 extension->intents_services(); |
| 165 | 165 |
| 166 EXPECT_EQ("chrome-extension", intents[0].service_url.scheme()); | 166 EXPECT_EQ("chrome-extension", intents[0].service_url.scheme()); |
| 167 EXPECT_EQ("//services/sharelink.html",intents[0].service_url.path()); | 167 EXPECT_EQ("/services/sharelink.html",intents[0].service_url.path()); |
| 168 EXPECT_EQ("text/uri-list",UTF16ToUTF8(intents[0].type)); | 168 EXPECT_EQ("text/uri-list",UTF16ToUTF8(intents[0].type)); |
| 169 | 169 |
| 170 EXPECT_EQ("chrome-extension", intents[1].service_url.scheme()); | 170 EXPECT_EQ("chrome-extension", intents[1].service_url.scheme()); |
| 171 EXPECT_EQ("//services/shareimage.html",intents[1].service_url.path()); | 171 EXPECT_EQ("/services/shareimage.html",intents[1].service_url.path()); |
| 172 EXPECT_EQ("image/*",UTF16ToUTF8(intents[1].type)); | 172 EXPECT_EQ("image/*",UTF16ToUTF8(intents[1].type)); |
| 173 } | 173 } |
| 174 | 174 |
| 175 TEST_F(ExtensionManifestTest, WebIntentsBlankHref) { | 175 TEST_F(ExtensionManifestTest, WebIntentsBlankHref) { |
| 176 LoadAndExpectError("intent_invalid_blank_action_extension.json", | 176 LoadAndExpectError("intent_invalid_blank_action_extension.json", |
| 177 errors::kInvalidIntentHrefEmpty); | 177 errors::kInvalidIntentHrefEmpty); |
| 178 | 178 |
| 179 scoped_refptr<Extension> extension( | 179 scoped_refptr<Extension> extension( |
| 180 LoadAndExpectSuccess("intent_valid_blank_action_hosted.json")); | 180 LoadAndExpectSuccess("intent_valid_blank_action_hosted.json")); |
| 181 ASSERT_TRUE(extension.get() != NULL); | 181 ASSERT_TRUE(extension.get() != NULL); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 EXPECT_TYPE_ERROR); | 225 EXPECT_TYPE_ERROR); |
| 226 | 226 |
| 227 LoadAndExpectSuccess("web_urls_has_port.json"); | 227 LoadAndExpectSuccess("web_urls_has_port.json"); |
| 228 | 228 |
| 229 scoped_refptr<Extension> extension( | 229 scoped_refptr<Extension> extension( |
| 230 LoadAndExpectSuccess("web_urls_default.json")); | 230 LoadAndExpectSuccess("web_urls_default.json")); |
| 231 ASSERT_EQ(1u, extension->web_extent().patterns().size()); | 231 ASSERT_EQ(1u, extension->web_extent().patterns().size()); |
| 232 EXPECT_EQ("*://www.google.com/*", | 232 EXPECT_EQ("*://www.google.com/*", |
| 233 extension->web_extent().patterns().begin()->GetAsString()); | 233 extension->web_extent().patterns().begin()->GetAsString()); |
| 234 } | 234 } |
| OLD | NEW |